[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [mdt-bpmn2.dev] Question about BPMNPlanes

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.
You could consult the official samples at http://www.omg.org/spec/BPMN/2.0/examples/ZIP/ to see how it is intended to be done. I tested all of them and they load successfully.
 E.g http://www.omg.org/spec/BPMN/2.0/examples/ZIP/Diagram%20Interchange/Examples%20-%20DI%20-%20Lanes%20and%20Nested%20Lanes.bpmn uses a single plane and all lanes/shapes as siblings. I don't currently remember under which circumstances multiple planes are recommended. 

Regards,
 Reiner.

Am 22.08.2012 um 19:15 schrieb "Bob Brodt" <bbrodt@xxxxxxxxxx>:

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_903216

The 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

_______________________________________________
mdt-bpmn2.dev mailing list
mdt-bpmn2.dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/mdt-bpmn2.dev