Basically, the modeler is free to create a new implementation model from scratch. However, for a new implementation we recommend creating it by using the importer (as described before) and amend it as needed. The importer supports the modeler e.g. by creating the necessary derived classes, port type operations for process creation and user interventions, error handling etc.
The following explanations are based on the implementation model which is generated by the importer, but contains already some enhancements.

The newly generated implementation model is divided into two parts:

  • A read-only package (e.g. BPMNLoanApproval) containing the original BPMN model (for documentation purposes) in sub-package BPMN and the imported module with the abstract persistent state machine.
  • The service interface part (e.g. BPMNLoanApprovalServices) containing a persistent state class derived from the abstract definition.

The derived real persistent state class associates the abstract class with a generalization. For each overridable operation the real class has a corresponding operation to overwrite the default behavior. The modeler is free to enhance the real class with own properties as attributes, operations, etc. In the example the real class has been adorned with three additional attributes (approved, creditAmount and customerID) to store the information needed to complete the process.

The real persistent state class LoanApproval and its properties are linked to the realizing persistent state elements. Double-click an attribute to jump to the corresponding element.

The Generated BPMN State Machine

The BPMN Importer generates a root state machine that contains a dedicated substate machine for BPMN process LoanApproval:

The root state machine does the overall process handling like error and compensation handling and process retry (see BPMN Error Handling for more details). Also, there are log messages written to use the E2E Process Dashboard with the executable BPMN process, such as start process, end done, end aborted.

  • No labels