Thank you for the response Mindaugas.
We have a constraint to stick with the BPMN 2.0 standard so XPDL is out.
Here is a snapshot showing my simple collaboration diagram example. The containment tree is expanded in case that helps.
Screen Shot 2015-03-03 at 4.24.22 PM.png
The exported BPMN2.0 file is below:
- Code: Select all
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:ns2="http://www.omg.org/spec/DD/20100524/DI" xmlns:ns3="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:ns4="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="eee_1045467100313_135436_1" name="Data" targetNamespace="http://www.omg.org/spec/BPMN/20100524/MODEL" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
<collaboration name="SimpleCollaboration" isClosed="false" id="_17_0_5_1_beb02fc_1425402973678_166075_15979">
<participant name="Greeter" id="_17_0_5_1_beb02fc_1425403028906_153566_16010">
<participantMultiplicity minimum="0" maximum="1"/>
</participant>
</collaboration>
<ns6:process xmlns:ns6="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns="" definitionalCollaborationRef="_17_0_5_1_beb02fc_1425402973678_166075_15979" name="SimpleCollaboration_collab_companion" id="_17_0_5_1_beb02fc_1425402973678_166075_15979_collab_companion">
<ns6:laneSet id="_17_0_5_1_beb02fc_1425403003110_391118_15995_Ref-1_laneSet">
<ns6:lane name="" partitionElementRef="ns6:_17_0_5_1_beb02fc_1425403028906_153566_16010" id="_17_0_5_1_beb02fc_1425403003110_391118_15995">
<ns6:flowNodeRef>_17_0_5_1_beb02fc_1425403049224_682612_16027</ns6:flowNodeRef>
<ns6:flowNodeRef>_17_0_5_1_beb02fc_1425403052892_456356_16045</ns6:flowNodeRef>
<ns6:flowNodeRef>_17_0_5_1_beb02fc_1425403057302_245255_16066</ns6:flowNodeRef>
</ns6:lane>
</ns6:laneSet>
<ns6:startEvent name="" id="_17_0_5_1_beb02fc_1425403049224_682612_16027">
<ns6:outgoing>ns6:_17_0_5_1_beb02fc_1425403062919_521575_16081</ns6:outgoing>
</ns6:startEvent>
<ns6:task isForCompensation="false" startQuantity="1" completionQuantity="1" name="Hello world" id="_17_0_5_1_beb02fc_1425403052892_456356_16045">
<ns6:incoming>ns6:_17_0_5_1_beb02fc_1425403062919_521575_16081</ns6:incoming>
<ns6:outgoing>ns6:_17_0_5_1_beb02fc_1425403065626_40311_16090</ns6:outgoing>
</ns6:task>
<ns6:endEvent name="" id="_17_0_5_1_beb02fc_1425403057302_245255_16066">
<ns6:incoming>ns6:_17_0_5_1_beb02fc_1425403065626_40311_16090</ns6:incoming>
</ns6:endEvent>
<ns6:sequenceFlow sourceRef="_17_0_5_1_beb02fc_1425403049224_682612_16027" targetRef="_17_0_5_1_beb02fc_1425403052892_456356_16045" name="" id="_17_0_5_1_beb02fc_1425403062919_521575_16081"/>
<ns6:sequenceFlow sourceRef="_17_0_5_1_beb02fc_1425403052892_456356_16045" targetRef="_17_0_5_1_beb02fc_1425403057302_245255_16066" name="" id="_17_0_5_1_beb02fc_1425403065626_40311_16090"/>
</ns6:process>
<ns3:BPMNDiagram name="SimpleCollaboration" id="_17_0_5_1_beb02fc_1425402973678_166075_15979_diagram_0">
<ns3:BPMNPlane bpmnElement="_17_0_5_1_beb02fc_1425402973678_166075_15979" id="_17_0_5_1_beb02fc_1425402998671_96518_15994">
<ns3:BPMNShape bpmnElement="_17_0_5_1_beb02fc_1425403003110_391118_15995" isHorizontal="true" id="_17_0_5_1_beb02fc_1425403003117_672529_16000">
<ns4:Bounds x="140.0" y="154.0" width="422.0" height="200.0"/>
</ns3:BPMNShape>
<ns3:BPMNShape bpmnElement="_17_0_5_1_beb02fc_1425403049224_682612_16027" id="_17_0_5_1_beb02fc_1425403049243_423024_16030">
<ns4:Bounds x="196.0" y="242.0" width="25.0" height="25.0"/>
</ns3:BPMNShape>
<ns3:BPMNShape bpmnElement="_17_0_5_1_beb02fc_1425403052892_456356_16045" id="_17_0_5_1_beb02fc_1425403052909_305415_16054">
<ns4:Bounds x="266.0" y="229.0" width="120.0" height="50.0"/>
</ns3:BPMNShape>
<ns3:BPMNShape bpmnElement="_17_0_5_1_beb02fc_1425403057302_245255_16066" id="_17_0_5_1_beb02fc_1425403057332_858895_16069">
<ns4:Bounds x="434.0" y="242.0" width="25.0" height="25.0"/>
</ns3:BPMNShape>
<ns3:BPMNEdge bpmnElement="_17_0_5_1_beb02fc_1425403062919_521575_16081" id="_17_0_5_1_beb02fc_1425403062120_701208_16080">
<ns2:waypoint x="221.0" y="254.0"/>
<ns2:waypoint x="266.0" y="254.0"/>
</ns3:BPMNEdge>
<ns3:BPMNEdge bpmnElement="_17_0_5_1_beb02fc_1425403065626_40311_16090" id="_17_0_5_1_beb02fc_1425403064798_407856_16089">
<ns2:waypoint x="386.0" y="254.0"/>
<ns2:waypoint x="434.0" y="254.0"/>
</ns3:BPMNEdge>
</ns3:BPMNPlane>
</ns3:BPMNDiagram>
</definitions>
And here is the BPMN2 from the Camunda modeler. Another tool, Yaoqiang BPM editor, produces a similar BPMN2 as well. In fact, this Camunda generated BPMN2 file loads fine on Yaoqiang and vice-versa.
- Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd" id="_hvkegLu3EeSF-_kqMayTlA" exporter="camunda modeler" exporterVersion="2.7.0" targetNamespace="http://activiti.org/bpmn">
<bpmn2:collaboration id="_Collaboration_15">
<bpmn2:participant id="_Participant_15" name="Greeter" processRef="Process_1"/>
</bpmn2:collaboration>
<bpmn2:process id="Process_1" isExecutable="false">
<bpmn2:laneSet id="LaneSet_1" name="Lane Set 1">
<bpmn2:lane id="Lane_1" name="">
<bpmn2:flowNodeRef>StartEvent_1</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>Task_1</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>EndEvent_1</bpmn2:flowNodeRef>
</bpmn2:lane>
</bpmn2:laneSet>
<bpmn2:startEvent id="StartEvent_1">
<bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
</bpmn2:startEvent>
<bpmn2:task id="Task_1" name="Hello World">
<bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:endEvent id="EndEvent_1">
<bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
</bpmn2:endEvent>
<bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_1" targetRef="Task_1"/>
<bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="Task_1" targetRef="EndEvent_1"/>
</bpmn2:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="_Collaboration_15">
<bpmndi:BPMNShape id="_BPMNShape_Participant_18" bpmnElement="_Participant_15" isHorizontal="true">
<dc:Bounds height="215.0" width="540.0" x="249.0" y="274.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_11" bpmnElement="StartEvent_1">
<dc:Bounds height="36.0" width="36.0" x="303.0" y="364.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="321.0" y="405.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_EndEvent_12" bpmnElement="EndEvent_1">
<dc:Bounds height="36.0" width="36.0" x="635.0" y="362.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="0.0" width="0.0" x="653.0" y="403.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_Task_14" bpmnElement="Task_1">
<dc:Bounds height="80.0" width="100.0" x="422.0" y="338.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_11" targetElement="_BPMNShape_Task_14">
<di:waypoint xsi:type="dc:Point" x="339.0" y="382.0"/>
<di:waypoint xsi:type="dc:Point" x="380.0" y="382.0"/>
<di:waypoint xsi:type="dc:Point" x="380.0" y="378.0"/>
<di:waypoint xsi:type="dc:Point" x="422.0" y="378.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="6.0" width="6.0" x="377.0" y="380.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_Task_14" targetElement="_BPMNShape_EndEvent_12">
<di:waypoint xsi:type="dc:Point" x="522.0" y="378.0"/>
<di:waypoint xsi:type="dc:Point" x="578.0" y="378.0"/>
<di:waypoint xsi:type="dc:Point" x="578.0" y="380.0"/>
<di:waypoint xsi:type="dc:Point" x="635.0" y="380.0"/>
<bpmndi:BPMNLabel>
<dc:Bounds height="6.0" width="6.0" x="575.0" y="380.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_Lane_16" bpmnElement="Lane_1" isHorizontal="true">
<dc:Bounds height="215.0" width="510.0" x="279.0" y="274.0"/>
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn2:definitions>
Here are the differences I noticed:
1. In the semantic model, the BPMN2 from Cameo/MagicDraw does not reference the process in the collaboration participant.
Camunda
- Code: Select all
<bpmn2:participant id="_Participant_15" name="Greeter" processRef="Process_1"/>
Cameo/MagicDraw
- Code: Select all
<participant name="Greeter" id="_17_0_5_1_beb02fc_1425403028906_153566_16010">
2. In the graphical model, the Cameo/MagicDraw seems to be missing a BPMNShape element to represent the participant/pool.
Camunda
- Code: Select all
<bpmndi:BPMNShape id="_BPMNShape_Participant_18" bpmnElement="_Participant_15" isHorizontal="true">
<dc:Bounds height="215.0" width="540.0" x="249.0" y="274.0"/>
</bpmndi:BPMNShape>
Cameo/MagicDraw
- Code: Select all
Missing???
Sorry for the long post. Any thoughts?
Thanks in advance.
You do not have the required permissions to view the files attached to this post.