Developing Rules
Developers can develop business rules using the Software AG Designer Business Rules Development perspective. Rules can be expressed as decision tables, decision trees, or event rules. Rules can invoke services. Rules can operate on processes (for example, rules can start or stop, or suspend or resume processes) and tasks (for example, rules can assign tasks to users). Rule expressions can contain function calls, literals, parameter references, the mathematical operators + - * /, and groups of parentheses.
A decision table is made up of rows and columns, and each row defines a rule. A rule includes one or more condition columns and one or more result columns. For example, a decision table for health care insurance premiums could include a rule that specifies condition columns for gender, age, and smoker/non-smoker, and a result column that contains premiums to be paid. Result columns can also contain lists such as string or document lists. For every column, you can specify a REST service that checks whether the actual cell content is valid from a business perspective.
A decision tree displays conditions and results in a tree-like structure that consists of nodes that are linked to each other. A node can represent the root, a condition (the IF part), or a result (the THEN part) of a rule. A link can be a root link or a condition link. A root node can be linked to one or more condition nodes, and a condition node can be linked to one or more condition nodes or result nodes.
An event rule consists of an event and one or more results. A result can assign a value or execute an action. For example, an event rule for an automobile parts distributor could specify that when inventory on parts decreases to certain levels, the event rule creates a data action. This data action creates data that is evaluated by rules in a decision table. Depending on the content of the new data, one of the rules in the decision table fires. Some of the rules launch a business process to replenish the stock in a result column.
You can group multiple decision tables and event rules into a rule set, and invoke the rule set from a process step or task. The rules in a rule set interact with each other, so that the conclusion drawn from one rule (the result) is used as input information (the condition) for a second rule. This is called forward chaining. In the example above for the automobile parts distributor, the event rule and the decision table could be grouped into a rule set. The illustration below shows the decision table and event rule in the rule set named LowInventoryRuleSet.
After you develop rules in Software AG Designer, you can drag and drop them onto the business process model design canvas. In a collaborative design environment, you can also drag and drop assets from CentraSite. CentraSite operates as a shared SOA registry/repository of metadata about assets that were developed in Software AG Designer and that are stored on run-time servers such as Integration Server and My webMethods Server.
You export rules developed in Software AG Designer to Integration Servers equipped with a Rules Engine. Each Rules Engine execute the rules that it hosts when those rules are invoked by process steps or tasks.
Software AG offers a browser-based user interface that allows business administrators to make simple changes to rules you develop. You make business rules available to business administrators by exporting them to the My webMethods Server content repository. You export rules projects to My webMethods Server using the Business Rules RESTful API. Business administrators use the browser-based user interface call the Rules Management Console to edit the rules and then to redeploy the rules to the appropriate Rules Engines, and also to customize the dates and times when rules are to take effect. The Rules Management Console has been separated into several independent portlets, and can be customized using CSS stylesheets.