我在BPMN 2.0可移植性方面遇到了障碍。我们一直在使用Activiti Eclipse插件来编辑方案,在某种程度上它工作得很好。然后我们遇到了一个问题,即不能在Activiti Eclipse插件编辑器中添加边界错误事件。所以,我们尝试使用Camunda Eclipse插件,我们能够添加错误边界事件。
我们使用Activiti引擎实际执行这些场景。
现在,使用这两个编辑器,我注意到它们表示用户任务表单的方式是不同的:
<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>
在我看来,Activiti引擎忽略了Camunda Eclipse插件编辑器保存的内容。
我很困惑,为什么有两种不同的表示用户表单?这不是标准化的吗?
用户表单不是BPMN标准的一部分。
您可以看到,与表单相关的标记位于extensionElements
标记下,并且属于带有前缀activiti
的特定名称空间。
extensionElements
标签是BPMN标准的一部分(参见BPMN标准2.0.2或XML模式的8.2.3节),其目的是允许供应商特定的标准扩展(如表单)。
Camunda是activity的一个分支,我猜想他们可能在那些特定的扩展点上做了一些修改,导致了一些不兼容。