Overview
Overview
The following diagram shows workflow elements in a production:
These components are as follows, from left to right:
-
A message request class carries the specific details of the workflow from its originator elsewhere in the production. This is a standard message request class that you define, that is, a subclass of Ens.RequestOpens in a new tab or some (less often) another persistent class.
-
A message response class carries the specific details of the workflow back to the originator, once the task has been completed or otherwise handled. This is a standard message response class that you define, that is, a subclass of Ens.ResponseOpens in a new tab or some (less often) another persistent class.
This book does not provide any special details on defining this class or the corresponding request class, because the implementation is completely dependent on your needs.
-
A workflow process that serves as the coordinator of the communications. To create this:
-
Use the Business Process Designer and create a business process based on the class Ens.BusinessProcess.BPL. It must contain the logic to receive the inbound messages and to call (asychronously) to business operations in the same production, as needed.
-
Add the business process to the production as usual.
-
-
A special message class EnsLib.Workflow.TaskRequestOpens in a new tab carries requests from the business process.
Likewise, the special message class EnsLib.Workflow.TaskResponseOpens in a new tab carries replies from the Workflow Engine.
You can create and use subclasses, but that is not generally necessary, because these classes are designed to carry information in a flexible manner.
-
Each workflow operation receives task requests and communicates with the Workflow Engine, which makes tasks visible to specific users. In particular, each workflow operation has exactly one associated workflow role. The workflow operation makes tasks visible to all users who belong to that workflow role; other users do not see these tasks.
To create each of these, you add a business operation based on EnsLib.Workflow.OperationOpens in a new tab. Little configuration is needed.
Or you can subclass EnsLib.Workflow.OperationOpens in a new tab and implement its callback methods to interact with the Workflow Engine in a custom way.