Business Processes and Business Logic
This chapter describes the kinds of logic supported in business processes. It includes the following sections:
Business processes are the middle part of any production. They accept requests from host classes inside the production — business services or business processes — and then either process the requests or relay them to other host classes inside Ensemble for processing.
InterSystems recommends the following division of labor within a production: Use business services to receive input from outside of the production and simply forward it (as messages) into the production. Use business processes to handle any needed business logic. Use business operations to receive messages from within the production and simply generate output for destinations outside of the production. That is, centralize the business logic within the business processes.
Accordingly, Ensemble provides extensive support for complex logic within business processes, and this logic can be defined by nontechnical users.
First, a business process can contain its own complex logic. It can also use the following reusable items:
Data transformations calculate and apply changes to message contents.
Business rules change the behavior of business processes at decision points or send messages to specific destinations based on message type, message contents, or where the message came from.
Ensemble provides tools that enable nontechnical users to define business processes, data transformations, and business rules. These users can view and edit the logic visually without programming or diagramming skills.
Note that there is overlap among the lower-level options available in business processes, data transformations, and business rules. For a comparison, see “Comparison of Business Logic Tools” in Developing Ensemble Productions. It is worthwhile to review these options before deciding how to organize your logic.
Ensemble provides the following general types of business process:
BPL processes, which are based on the class Ens.BusinessProcessBPL. To create these processes, you use a graphical editor that is intended for use by nontechnical users. This editor is available in the Management Portal and Studio. See Developing BPL Processes.The name of these processes comes from BPL (Business Process Language), which is the XML-based language that Ensemble uses to represent their definitions.
Routing processes, which are based on the class EnsLib.MsgRouter.RoutingEngine or EnsLib.MsgRouter.VDocRoutingEngine.Ensemble provides a set of classes to route specific kinds of messages. The following books indicate the routing process to use for different kinds of messages:To use these classes, no coding is generally necessary. It is, however, necessary, to provide a set of business rules, introduced later in this chapter.
Custom business processes, which are based on the class Ens.BusinessProcess. Note that all the previously listed business process classes inherit from this class. In this case, it is necessary to use Studio.For information on defining custom business processes, see “Developing Business Processes” in Developing Ensemble Productions.
A production can include any mix of these business processes.
The following shows a partial example of a BPL business process, as displayed in the BPL editor:
A data transformation creates a new message that is a transformation of another message. You can invoke a data transformation from a business process, another data transformation, or a business rule.
When you transform a message, your data transformation swaps out the old message body object (the source) and exchanges it for a new one (the target). Some of the transformations that occur during this process can include:
Copying values from properties on the source to properties on the target.
Performing calculations using the values of properties on the source.
Copying the results of calculations to properties on the target.
Assigning literal values to properties on the target.
Ignoring any properties on the source that are not relevant to the target.
If you use Ens.DataTransformDTL, the transformation is called a DTL transformation. To create these transformations, you use a graphical editor that is intended for use by nontechnical users. This editor is available in the Management Portal and Studio. For details, see Developing DTL Transformations.The name of these transformations comes from DTL (Data Transformation Language), which is the XML-based language that Ensemble uses to represent their definitions.
The following shows an example DTL transformation, as seen in the DTL editor:
A business rule (also known as a business rule set) can return a value, transform data, or both. You can invoke a business rule from a business process or from another business rule.
A business rule is a class based on Ens.Rule.Definition. You define these in the Management Portal, which provides a visual editor for the benefit of nontechnical users. The following shows a partial example, as seen in this editor:
For details, see Developing Business Rules.