Flowable Modeler: Import Process or Import App ui modeler functionality is breaking processes by internally replacing <boundaryEvent> with <startEvent>

I figured out (flowable 6.5.0) - that processes with “boundaryEvent”-Elements will break, when you’ve imported them using the ‘Import App’ or ‘Import Process’ functionality of the ui-modeler.

Flowable then seem to replace the “boundaryEvent” Element in the bpmn with “startEvent”. This leads to an “multiple-none-start events not allowed” validation fault.

Since the process-modeler ui has no option to change a start event back into a boundary-event, this process cannot be repaired using the ui.

example:
before import:
<boundaryEvent id="boundaryFirstTask" name="boundary event listener" attachedToRef="sid-FAA642C8-A5ED-448D-87EB-60E17E2CA5C0"> <extensionElements> <flowable:eventType xmlns:flowable="http://flowable.org/bpmn"><![CDATA[boundaryEvent]]></flowable:eventType> <flowable:eventName xmlns:flowable="http://flowable.org/bpmn"><![CDATA[my boundary event]]></flowable:eventName> <flowable:eventOutParameter xmlns:flowable="http://flowable.org/bpmn" source="customerName" sourceType="string" target="customerName"></flowable:eventOutParameter> <flowable:eventCorrelationParameter xmlns:flowable="http://flowable.org/bpmn" name="customerId" type="string" value="${customerVar}"></flowable:eventCorrelationParameter> <flowable:channelKey xmlns:flowable="http://flowable.org/bpmn"><![CDATA[firstTaskQueue]]></flowable:channelKey> <flowable:channelName xmlns:flowable="http://flowable.org/bpmn"><![CDATA[first task Channel]]></flowable:channelName> <flowable:channelType xmlns:flowable="http://flowable.org/bpmn"><![CDATA[jms]]></flowable:channelType> <flowable:channelDestination xmlns:flowable="http://flowable.org/bpmn"><![CDATA[firstTaskQueue]]></flowable:channelDestination> <flowable:keyDetectionType xmlns:flowable="http://flowable.org/bpmn"><![CDATA[fixedValue]]></flowable:keyDetectionType> <flowable:keyDetectionValue xmlns:flowable="http://flowable.org/bpmn"><![CDATA[boundaryEvent]]></flowable:keyDetectionValue> </extensionElements> </boundaryEvent>

after import flowable replaced it to:

<startEvent id="boundaryFirstTask" name="boundary event listener"> <extensionElements> <flowable:eventType xmlns:flowable="http://flowable.org/bpmn"><![CDATA[boundaryEvent]]></flowable:eventType> <flowable:eventName xmlns:flowable="http://flowable.org/bpmn"><![CDATA[my boundary event]]></flowable:eventName> <flowable:eventOutParameter xmlns:flowable="http://flowable.org/bpmn" source="customerName" sourceType="string" target="customerName"></flowable:eventOutParameter> <flowable:eventCorrelationParameter xmlns:flowable="http://flowable.org/bpmn" name="customerId" type="null" value="${customerVar}"></flowable:eventCorrelationParameter> <flowable:channelKey xmlns:flowable="http://flowable.org/bpmn"><![CDATA[firstTaskQueue]]></flowable:channelKey> <flowable:channelName xmlns:flowable="http://flowable.org/bpmn"><![CDATA[first task Channel]]></flowable:channelName> <flowable:channelType xmlns:flowable="http://flowable.org/bpmn"><![CDATA[jms]]></flowable:channelType> <flowable:channelDestination xmlns:flowable="http://flowable.org/bpmn"><![CDATA[firstTaskQueue]]></flowable:channelDestination> <flowable:keyDetectionType xmlns:flowable="http://flowable.org/bpmn"><![CDATA[fixedValue]]></flowable:keyDetectionType> <flowable:keyDetectionValue xmlns:flowable="http://flowable.org/bpmn"><![CDATA[boundaryEvent]]></flowable:keyDetectionValue> </extensionElements> </startEvent>

this in fact is the root cause of this thread:

can anyone please respond, if this is something you can figure out as well !
thx
kai

Hi Kai,

Thanks for the post, there was something wrong with the app import logic for event registry boundary events, we’ve fixed this now on master. For now it’s best to remodel the event registry example or build the Flowable Modeler from master.

Thanks,

Tijs

Hi Tijs,
many thanks for the quick response and the solution.
I’ve tested it, using the master-branch and now it’s doing what it’s supposed to do.

cheers
kai