Search code examples
bpmn

BPMN 2.0 user task forms portability


I have hit a hurdle with BPMN 2.0 portability. We have been using Activiti Eclipse plug-in for editing the schemes and to some degree it worked fine. Then we have hit an issue that boundary error event cannot be added in the Activiti Eclipse plug-in editor. So, we have tried to use Camunda Eclipse plug-in and we were able to add the error boundary event.

We use the Activiti engine to actually execute these scenarios.

Now, using those two editors, I have noticed the way they represent user task forms are different:

<userTask id="usertask3" activiti:formKey="choice" name="handle error">
  <extensionElements>
    <!-- This is produced by Activiti Eclipse plug-in editor. -->
    <activiti:formProperty id="ut" name="ut" type="string" variable="ut">
      <activiti:value id="u0" name="u0"/>
      <activiti:value id="u1" name="u1"/>
      <activiti:value id="u2" name="u2"/>
    </activiti:formProperty>
    <!-- This is produced by Camunda Eclipse plug-in editor.  -->
    <activiti:formData>
      <activiti:formField id="nextAction" label="Next action" type="string">
        <activiti:properties>
          <activiti:property id="task1" value="task1"/>
          <activiti:property id="task2" value="task2"/>
          <activiti:property id="task3" value="task3"/>
        </activiti:properties>
      </activiti:formField>
    </activiti:formData>
  </extensionElements>
  <incoming>_5</incoming>
  <incoming>_10</incoming>
  <incoming>_12</incoming>
  <outgoing>_8</outgoing>
</userTask>

It seems to me that the Activiti engine ignores what Camunda Eclipse plug-in editor saves.

I am confused as to why are there two different representations for user forms? Is this not standardized?


Solution

  • User forms are not part of BPMN standard.

    As you can see tags related to forms are located under extensionElements tag and are belonging to the specific namespace used with the prefix activiti.

    extensionElements tag is part of BPMN standard (see section 8.2.3 of BPMN standard 2.0.2 or XML schema) and its purpose is to allow vendor specific extension to the standard (such as forms).

    A Camunda is a fork of Activiti I assume that they might have done some modification in those specific extensions points leading to some incompatibilities.