| **Navigation:**  [[abc library reference.htm|ABC Library Reference]] > RuleManager >====== RuleManager - Overview ====== | [[rulemanager.htm|{{btn_prev_n.gif|Previous page}}]][[abc library reference.htm|{{btn_home_n.gif|Return to chapter overview}}]][[rulemanager concepts.htm|{{btn_next_n.gif|Next page}}]] | | || The Rule Manager classes work together to provide a central repository for business rules logic and a methodology for checking and responding to business rules in Clarion procedures. The Rule Manager classes also provide the option of visual indicators when a rule has been broken and conditional hiding or disabling of controls in the presence of broken rules. **Why Use RuleManager?** A primary requirement of a database system is the validation of data, or, more generally, enforcement of business rules. A common methodology is to put all validation code in the update procedure. However, the same tables may be handled by multiple procedures, //e.g.//, manual input and batch processes, and individual columns may also be updated by procedures primarily concerned with other tables. The result is that code for validating a particular column is repeated in multiple places throughout the application, providing opportunities for inconsistency and, as the system grows, creating a maintenance nightmare. The Rule Manager Classes and associated templates provide a mechanism for centralizing validation code so that validation, wherever it is needed, is always provided in exactly the same way by code which can be maintained in a single, central location. In addition, the Rule Manager Classes provide facilities for identifying broken rules in a convenient manner and enforcing rules through selective disabling or hiding of controls.