Skip to content
Ralph Soika edited this page May 29, 2020 · 1 revision

The Imixs BPMN 2.0 extension

Imixs-BPMN is 100% compatible with the BPMN 2.0 standard. Imixs-BPMN extends the modeling standard with custom bpmn2:extensionElements. These elements are part of the BPMN 2.0 standard. Therefore any existing BPMN model can be extended to be runnable on the Imixs-Workflow engine.

##Processing information

The processing information for the Imixs-Workflow engine are described in the imixs:item elements which are subelements of a bpmn2:extensionElement. See the following example:

<bpmn2:extensionElements>
    <imixs:item name="txtworkflowmodelversion" type="xs:string">
        <imixs:value><![CDATA[1.0.0]]></imixs:value>
    </imixs:item>
    <imixs:item name="txtplugins" type="xs:string">
      <imixs:value><![CDATA[org.imixs.workflow.AccessPlugin]]></imixs:value>
      <imixs:value><![CDATA[org.imixs.workflow.MailPlugin]]></imixs:value>`
    </imixs:item>
</bpmn2:extensionElements>

The extensionElements can be part of a bpmn2:task or a bpmn2:intermediateCatchEvent. In Imixs-Workflow a BPMN task element describes the Process Entity. The Activity Entities are describes in intermediateCatchEvents. To identify Task and Event elements extended to the Imixs-Workflow these elements are annotated with the attributes imixs:processid and imixs:activityid. See the following example:

   <bpmn2:task id="Task_1" imixs:processid="1000" name="create new order">
      <bpmn2:extensionElements>
        <imixs:item name="txtworkflowsummary" type="xs:string">
          <imixs:value><![CDATA[Create a new Order]]></imixs:value>
        </imixs:item>
        <imixs:item name="txtworkflowabstract" type="CDATA">
          <imixs:value><![CDATA[Some order details....]]></imixs:value>
        </imixs:item>
      </bpmn2:extensionElements>
      <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
      <bpmn2:outgoing>SequenceFlow_9</bpmn2:outgoing>
    </bpmn2:task>
    <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_1" imixs:activityid="10" name="submit order">
      <bpmn2:extensionElements>
        <imixs:item name="txtactivityresult" type="CDATA">
          <imixs:value><![CDATA[/workflow/home/]]></imixs:value>
        </imixs:item>
        <imixs:item name="rtfresultlog" type="CDATA">
          <imixs:value><![CDATA[Order submitted by <username />]]></imixs:value>
        </imixs:item>
        <imixs:item name="txtsubject" type="xs:string">
          <imixs:value><![CDATA[Order-ID: 4711]]></imixs:value>
        </imixs:item>
        <imixs:item name="keyupdateacl" type="xs:boolean">
          <imixs:value>true</imixs:value>
        </imixs:item>
        <imixs:item name="keyownershipfields" type="xs:string">
          <imixs:value><![CDATA[nammanager]]></imixs:value>
        </imixs:item>
        <imixs:item name="keyaddreadfields" type="xs:string">
          <imixs:value><![CDATA[namteam]]></imixs:value>
        </imixs:item>
      </bpmn2:extensionElements>
      <bpmn2:incoming>SequenceFlow_9</bpmn2:incoming>
      <bpmn2:outgoing>SequenceFlow_14</bpmn2:outgoing>
    </bpmn2:intermediateCatchEvent>

The Imixs extensionElements are defined under the namespace xmlns:imixs="http://www.imixs.org/bpmn2".

With this concept any BPMN 2.0 model can be extended to be executable on the Imixs-Workflow engine.

Clone this wiki locally