Build a Decision service
when you want a decision or condition in a business rule to determine which
process implementation is invoked. For example, when a certain condition
evaluates to true, IBM Process Designer is navigating to a specific task, after
the decision was further evaluated at a gateway.
IBM Process Designer
supports business rule authoring tasks as performed by business analysts and
business users who are rule designers rather than programmers. Business rule
designers can express business logic using rule syntax that resembles natural
human language. This rule syntax is called Business Action Language (BAL),
which is a declarative language that relates business concepts to business data
and actions.
Business rules are an
expression of business policy in a form that is understandable to business
users and that can be executed by a rule engine. Business rules formalize a
business policy into a series of “if-then” statements. In Process Designer,
business rules are included in a business process definition (BPD) by adding a
Decision service to the process. Add a Decision service to a Process
Application when the actions that should take place in your process depend upon
one or more conditions. For example, if a very expensive laptop is ordered,
management approval is required to proceed with the order. To support this
scenario, you can create a rule and set a variable in the rule, such as
approvalRequired, to route the process sequence flow into a specific approval
activity.
A Decision
service can contains one or more components. There are three types of
components:
BAL Rule - You can use the rule editor in this component
to author business rules using Business Action Language (BAL), a natural
language technology.
JRules Decision Service - IBM Business Process
Manager integrates with IBM WebSphere ILOG JRules using the JRules
Decision Service component. You can use this rule component to connect to
and implement rule applications that are available on a JRules Rule
Execution Server.
Decision Table - The Decision Table
component contains a rule table. Each row in the rule table represents a
Boolean condition that evaluates to true or false at run time. When a rule
evaluates to true, the JavaScript expression that you provide as the rule
action is executed.
In
this sample we will investigate how to define sets of BAL rules.
If
you are familiar with the available business data, and if you know what
business rules to define, then defining BAL rules is surprisingly simple.
In
this sample you will work with the Laptop Order scenario you might be familiar
with if you have done some of the v751 samples offered from the samples page.
The BPD – including the decision node – will look like that: