Hi Bob, I was one of the authors of chapter 12 of the BPMN spec. We decided to use the draft version of OMC Diagram Interchange as basis. We have also decided to preserve only the snapshot look and no "tool smart" (see introduction of chapter 12). As a consequence we also decided to remove any containment/hierarchy from the diagram spec. I know that Graphity is different in this aspect, but we have been sure, that a flat representation (like in Powerpoint) causes less troubles on interchange. It was always clear that tools must recreate shape hierarchies into there internal representation using the Semantic model's hierarchies - and vice versa flatten them on export. The fact that BPMNDiagram and BPMNPlane are two objects comes from DI: A diagram does not have a link to a semantic object. I don't remember why BPMNPlanes can be nested into BPMNPlanes. Anyway, a BPMNPlane is intend as a depiction of a whole Process, Collaboration etc. Quoting from the spec:
-
A BPMNPlane specializes DI::Plane and redefines its model element reference to be of type (BPMN) BaseElement. A
BPMNPlane can only reference a BaseElement of the types: Process, SubProcess, AdHocSubProcess, Transaction,
Collaboration, Choreography or SubChoreography.
- (sorry, I was writing nonsense in the last mail.)
- I would strongly recommend to use the same format (with a single plane) as the examples, as this strongly increases the likelyhood that your diagrams can be understood by other tools.
Best regards, Reiner.
Am 22.08.2012 um 23:04 schrieb "Bob Brodt" < bbrodt@xxxxxxxxxx>: Hi Reiner, All of the examples only use a single BPMNPlane which always contains all of the BPMNShapes and BPMNEdges, and is always the root of the BPMNDiagram element, so these are not much help. If the only valid use of a BPMNPlane is as the one and only child of a BPMNDiagram, then this element type does not make much sense to me; why not just get rid of it and use a BPMNDiagram instead? I was able to add a BPMNPlane as a child of another BPMNPlane, but this serializes using the xsi:type spec for DiagramElement, so... All this leads me to believe that the BPMN 2.0 specification is half baked and about as clear as mud. Thanks anyway, Bob
Hi Bob, as mentioned Planes can't be children of shapes.
Regards, As a follow-on test, I also tried this: <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="process_3">
...
<bpmndi:BPMNShape id="BPMNShape_Lane_1" bpmnElement="Lane_1" isHorizontal="true">
<dc:Bounds height="100.0" width="600.0" x="140.0" y="252.0"/> </bpmndi:BPMNShape>
<bpmndi:BPMNPlane id="BPMNPlane_BPMNShape_Lane_1">
<bpmndi:BPMNShape id="BPMNShape_Task_1" bpmnElement="Task_1">
<dc:Bounds height="50.0" width="110.0" x="380.0" y="278.0"/>
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
(a BPMNPlane as a sibling of the Lane shape) which does not work, but this does work: <bpmndi:BPMNShape id="BPMNShape_Lane_1" bpmnElement="Lane_1" isHorizontal="true">
<dc:Bounds height="100.0" width="600.0" x="140.0" y="252.0"/> </bpmndi:BPMNShape>
<di:DiagramElement xsi:type="bpmndi:BPMNPlane" id="BPMNPlane_BPMNShape_Lane_1">
<bpmndi:BPMNShape id="BPMNShape_Task_1" bpmnElement="Task_1">
<dc:Bounds height="50.0" width="110.0" x="380.0" y="278.0"/>
</bpmndi:BPMNShape>
</di:DiagramElement>
I then tried using the xsi:type element in the original like so: <bpmndi:BPMNShape id="BPMNShape_Lane_1" bpmnElement="Lane_1" isHorizontal="true">
<dc:Bounds height="100.0" width="600.0" x="140.0" y="252.0"/> <di:DiagramElement xsi:type="bpmndi:BPMNPlane" id="BPMNPlane_BPMNShape_Lane_1">
<bpmndi:BPMNShape id="BPMNShape_Task_1" bpmnElement="Task_1">
<dc:Bounds height="50.0" width="110.0" x="380.0" y="278.0"/>
</bpmndi:BPMNShape>
</di:DiagramElement>
</bpmndi:BPMNShape>
and this also did not work.
Hi Reiner, thanks for the quick reply! I have posted another observation on the eclipse forum about this problem, see here: http://www.eclipse.org/forums/index.php/m/903216/#msg_903216The complete BPMN2 doc is included here: <?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" id="Definitions_1" targetNamespace="http://sample.bpmn2.org/bpmn2/sample/process"> <bpmn2:process id="process_3" name="Default Process"> <bpmn2:laneSet id="LaneSet_1" name="Lane Set 1"> <bpmn2:lane id="Lane_1" name="Lane 1"> <bpmn2:flowNodeRef>StartEvent_1</bpmn2:flowNodeRef> <bpmn2:flowNodeRef>EndEvent_1</bpmn2:flowNodeRef> <bpmn2:flowNodeRef>Task_1</bpmn2:flowNodeRef> </bpmn2:lane> </bpmn2:laneSet> <bpmn2:startEvent id="StartEvent_1"> <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing> </bpmn2:startEvent> <bpmn2:endEvent id="EndEvent_1"> <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming> </bpmn2:endEvent> <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="StartEvent_1" targetRef="Task_1"/> <bpmn2:task id="Task_1" name="Task 1"> <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing> </bpmn2:task> <bpmn2:sequenceFlow id="SequenceFlow_1" sourceRef="Task_1" targetRef="EndEvent_1"/> </bpmn2:process> <bpmndi:BPMNDiagram id="BPMNDiagram_1" name="Default Process Diagram"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="process_3"> <bpmndi:BPMNShape id="BPMNShape_1" bpmnElement="StartEvent_1"> <dc:Bounds height="36.0" width="36.0" x="190.0" y="285.0"/> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="BPMNShape_2" bpmnElement="EndEvent_1"> <dc:Bounds height="36.0" width="36.0" x="640.0" y="285.0"/> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="BPMNShape_Task_1" targetElement="BPMNShape_2"> <di:waypoint xsi:type="dc:Point" x="490.0" y="303.0"/> <di:waypoint xsi:type="dc:Point" x="640.0" y="303.0"/> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="BPMNShape_Lane_1" bpmnElement="Lane_1" isHorizontal="true"> <dc:Bounds height="100.0" width="600.0" x="140.0" y="252.0"/> <bpmndi:BPMNPlane> <bpmndi:BPMNShape id="BPMNShape_Task_1" bpmnElement="Task_1"> <dc:Bounds height="50.0" width="110.0" x="380.0" y="278.0"/> </bpmndi:BPMNShape> </bpmndi:BPMNPlane> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_2" sourceElement="BPMNShape_1" targetElement="BPMNShape_Task_1"> <di:waypoint xsi:type="dc:Point" x="226.0" y="303.0"/> <di:waypoint xsi:type="dc:Point" x="380.0" y="303.0"/> </bpmndi:BPMNEdge> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> </bpmn2:definitions>
This is simply a Process with a single Lane, Start/End events and a Task; the Task should be contained in BPMNPlane which is a child of the Lane's BPMNShape. The whole thing looks like this: <1345654858910> Thanks again for your help! Bob
Hi Bob, yes, this is allowed and I have several examples that worked. Could you please provide the full sample? Thanks, Reiner. -----Original Message----- From: mdt-bpmn2.dev-bounces@xxxxxxxxxxx [mailto:mdt-bpmn2.dev-bounces@xxxxxxxxxxx] On Behalf Of Bob Brodt Sent: Mittwoch, 22. August 2012 16:25 To: BPMN2 Developers Mailing List Subject: [mdt-bpmn2.dev] Question about BPMNPlanes Hi all, I'm not sure I understand the relationship of BPMNPlane elements to other DI model elements. It seems to me that you should be able to have containment of a BPMNPlane in a BPMNShape, something like this: <bpmndi:BPMNDiagram id="BPMNDiagram_1" name="Default Process Diagram"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="process_1"> <bpmndi:BPMNShape id="BPMNShape_1" bpmnElement="StartEvent_1"> <dc:Bounds height="36.0" width="36.0" x="100.0" y="100.0"/> <bpmndi:BPMNPlane> <bpmndi:BPMNShape id="BPMNShape_2" bpmnElement="EndEvent_1"> <dc:Bounds height="36.0" width="36.0" x="500.0" y="100.0"/> </bpmndi:BPMNShape> </bpmndi:BPMNPlane> </bpmndi:BPMNShape> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> When I try this, the XML parser tells me that "Feature 'BPMNPlane' not found." What am I missing here? Is this even allowed? Thanks! ________________________ Robert ("Bob") Brodt Senior Software Engineer JBoss by Red Hat _______________________________________________ mdt-bpmn2.dev mailing list mdt-bpmn2.dev@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/mdt-bpmn2.dev _______________________________________________ mdt-bpmn2.dev mailing list mdt-bpmn2.dev@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/mdt-bpmn2.dev
_______________________________________________ mdt-bpmn2.dev mailing list mdt-bpmn2.dev@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/mdt-bpmn2.dev
_______________________________________________ mdt-bpmn2.dev mailing list mdt-bpmn2.dev@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/mdt-bpmn2.dev
|