Package: BPMN2Workflow
BPMN is a specification for describing processes. On base of such a definition this module creates a workflow with the defined tasks. The BPMN process needs to fullfill several condition so the generation of the workflow is possible.
Designation
- Name
- pm.ImportBPMN
- Aliases
- CreateBPMN, CreateFromBPMN, pm.PackageCreateBPMN
Configuration
- Ausgabe
- Optionen
- Object for structured documentation (
structured-docu
) - If given the information are stored in the structured documentation of the object
- empty structured documentation first (
structured-docu-reset
) - if set the structured documentation of the object is emptied first
- Name of structured documentation (
structured-docu-name
) - Defines the name of the tab of the structured documentation that should be used. If empty the first one is chosen.
- Mode (
mode
) - There two modes supported. The first one will clone the templates and put the input parameters in the object values. The second mode will use the templates as actions and use them in the workflow directly. The parameters are set as default values for promptsets.Mögliche Werte: Cloning (
clone
), Actions (action
)
- Package (
package
) - Name of the package
- BPMN file (
bpmn-file
) - Name of the BPMN file containing the specification of a workflow
- b4A Expression for object names (
object-name-expression
) - defines the b4A expression for creating the objects names
- Default Workflow Name (
default-workflow-name
) - If the BPM definition does not contain a name for the process this value is used for the workflow name
- Task State (
task-state
) - Task state to use for the dependencies to the successorsMögliche Werte: ANY_ABEND (
ANY_ABEND
), ANY_ABEND_EXCEPT_FAULT (ANY_ABEND_EXCEPT_FAULT
), ANY_EXCEPT_FAULT (ANY_EXCEPT_FAULT
), ANY_OK (ANY_OK
), ANY_OK_OR_UNBLOCKED (ANY_OK_OR_UNBLOCKED
), ANY_SKIPPED (ANY_SKIPPED
), ENDED_CANCEL (ENDED_CANCEL
), ENDED_EMPTY (ENDED_EMPTY
), ENDED_ESCALATED (ENDED_ESCALATED
), ENDED_INACTIVE (ENDED_INACTIVE
), ENDED_INACTIVE_MANUAL (ENDED_INACTIVE_MANUAL
), ENDED_NOT_OK (ENDED_NOT_OK
), ENDED_NOT_OK_SYNC (ENDED_NOT_OK_SYNC
), ENDED_OK (ENDED_OK
), ENDED_OK_OR_EMPTY (ENDED_OK_OR_EMPTY
), ENDED_OK_OR_INACTIV (ENDED_OK_OR_INACTIV
), ENDED_OK_OR_UNBLOCKED (ENDED_OK_OR_UNBLOCKED
), ENDED_SKIPPED (ENDED_SKIPPED
), ENDED_SKIPPED_CONDITIONS (ENDED_SKIPPED_CONDITIONS
), ENDED_SKIPPED_SYNC (ENDED_SKIPPED_SYNC
), ENDED_TIMEOUT (ENDED_TIMEOUT
), ENDED_TRUNCATE (ENDED_TRUNCATE
), ENDED_UNDEFINED (ENDED_UNDEFINED
), ENDED_VANISHED (ENDED_VANISHED
), FAULT_ALREADY_RUNNING (FAULT_ALREADY_RUNNING
), FAULT_NO_HOST (FAULT_NO_HOST
), FAULT_OTHER (FAULT_OTHER
), USER_100_200 (USER_100_200
), USER_147 (USER_147
), USER_201_299 (USER_201_299
), USER_300 (USER_300
), USER_500_600 (USER_500_600
)
Description
BPMN (Business Process Modeling Notation) is a specification for business processes. It contains the logical structure of the process as well as a description of a graphical representation. This module provides a function that makes it possible to create workflows from such definitions. Only the logical definition of the process is used for this. To make this possible, the BPMN definitions must adhere to a number of rules. These are described below.
When implementing the BPMN definition, the individual tasks are converted into executable objects in the Automic Automation platform. Each of the tasks is based on an Automic Automation Engine template, which must be noted in the task in the BPMN definition. For implementation, it is necessary for the tasks in the definition to have certain attributes. A correct definition of a task looks like this, for example.
<bpmn:serviceTask id="Task_08uxnpb" name="Generates SAP report 1 (variant 1)"
camunda:modelerTemplate="de.bestblu.automic.SapReportTask">
<bpmn:documentation>Generates the SAP report1 that will be transferred to a Windows share</bpmn:documentation>
<bpmn:extensionElements>
<camunda:inputOutput>
<camunda:inputParameter name="REPORT">report1</camunda:inputParameter>
<camunda:inputParameter name="VARIANT">variant1</camunda:inputParameter>
<camunda:inputParameter name="SAP_COPY_VARIANT">true</camunda:inputParameter>
</camunda:inputOutput>
<camunda:properties>
<camunda:property name="##TEMPLATE" value="BEST4AUTOMIC.BPMN.SAP_REPORT"/>
<camunda:property name="##NAME" value="%(REPORT)_%(VARIANT)"/>
<camunda:property name="$$SCHEDULE_CALE" value="MON_TO_FRI"/>
<camunda:property name="$$SCHEDULE_TIME" value="08:00"/>
</camunda:properties>
</bpmn:extensionElements>
<bpmn:incoming>SequenceFlow_0fhtdte</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_0n0l2bj</bpmn:outgoing>
<bpmn:outgoing>SequenceFlow_1xs1spy</bpmn:outgoing>
</bpmn:serviceTask>
Each task is represented by a ServiceTask or Task element. The attribute id must be unique as it is used to link the tasks. This procedure corresponds to the BPMN 2.0 standard.
How the tasks are mapped in detail depends on the selected mode. The details are described below.
Clone
In this mode, the specified templates are copied in order to create the tasks for the workflow. The attributes are written to the copied object. The templates must be registered as object templates in the respective client (UC_OBJECT_TEMPLATE). The name of the template and not the object name must be specified in the BPMN document (corresponds to the key in the variable).
The attribute name is used as the title of the object and should therefore be specified. The child element documentation is optional. If it exists, the documentation is transferred to the object.
Important details can be found in the child element extensionElements and the elements inputOutput and properties contained below it. The parameters for the task are defined in the inputOutput element. An object variable is generated from each inputParameter. The name attribute is used to define the name of the variable. For example, the REPORT parameter becomes the &REPORT# variable. The property elements define information that is necessary for the creation of the object. The property ##TEMPLATE defines the AE template that is used for the creation. The standard template objects can be used here or your own. Custom templates are generally used here as they can implement corresponding functions that evaluate the parameters. The ##NAME property is used to define a pattern that becomes part of the object name.
The entire object name is composed of the property ##NAME and the option b4A Expression for object names. Both values contain b4A expressions (Details). The following attributes are available for the part from the b4A expression for object names option:
- package
- object_type
- object_name
The value of the attribute object_name is determined by the value of the property ##NAME. All inputParameter elements are available as attributes for the b4A expression. The expression %(REPORT)_%(VARIANT) from the example thus becomes REPORT1_VARIANT1 (lower case letters are replaced by upper case letters).
property elements whose name begins with '$$' are referred to as user-defined properties. These are not required for the creation of the workflow. They can be used to transfer customer-specific information to the Automic Automation Engine. If the function is used to save the BPMN definition in structured documentation, these properties are saved as attributes under the CustmAttributes node. The prefix '$$' is removed beforehand.
In the values of the properties (property) and the input parameters (inputParameter), the values of the other parameters can be integrated by referencing them via b4A expressions. For example, a property VARIANT_COPY_NAME could be set to the value %(REPORT)_%(VARIANT)_COPY.
**Actions
In this mode, the templates are not copied, but integrated directly into the workflow as tasks. The attributes are appended to the prompt sets of the tasks using default values. This technique corresponds to the Automic Action Packs procedure. Therefore, these templates do not need to be registered as Automic Automation Engine templates, but must have a reference as actions under the PACKAGES/ACTIONS folder.
Structured documentation
Optionally, the generated workflow can be saved with the attributes from the BPMN file in an object's structured documentation. The following image shows an example of this.