Community
Participate
Working Groups
Created attachment 206711 [details] sample process image Example BPMN generated by Eclipse editor for a simple process containing a boundary event (see attached image for process image): **************************************************************** <?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" xmlns:tns="http://www.jboss.org/drools" id="Definitions_1" name="Definitions 1"> <bpmn2:process id="Process_1" tns:version="1" tns:packageName="" name="Default Process"> <bpmn2:extensionElements> <tns:global identifier="" type=""/> </bpmn2:extensionElements> <bpmn2:extensionElements> <tns:import name=""/> </bpmn2:extensionElements> <bpmn2:startEvent id="StartEvent_1" name="Start Event"> <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing> </bpmn2:startEvent> <bpmn2:endEvent id="EndEvent_1" name="End Event"> <bpmn2:incoming>SequenceFlow_3</bpmn2:incoming> <bpmn2:incoming>SequenceFlow_4</bpmn2:incoming> </bpmn2:endEvent> <bpmn2:sequenceFlow id="SequenceFlow_2" tns:priority="1" name="" sourceRef="StartEvent_1" targetRef="Task_1"/> <bpmn2:task id="Task_1" tns:taskName="" tns:displayName="" tns:icon="" name="Task Name"> <bpmn2:extensionElements> <tns:onEntry-script scriptFormat=""> <tns:script></tns:script> </tns:onEntry-script> </bpmn2:extensionElements> <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing> </bpmn2:task> <bpmn2:sequenceFlow id="SequenceFlow_3" tns:priority="1" name="" sourceRef="Task_1" targetRef="EndEvent_1"/> <bpmn2:boundaryEvent id="BoundaryEvent_1" name="Boundary event" attachedToRef="Task_1"> <bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing> <bpmn2:timerEventDefinition id="TimerEventDefinition_1"/> </bpmn2:boundaryEvent> <bpmn2:sequenceFlow id="SequenceFlow_4" tns:priority="1" name="" sourceRef="BoundaryEvent_1" targetRef="EndEvent_1"/> </bpmn2:process> <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:BPMNShape> <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:BPMNShape id="BPMNShape_Task_1" bpmnElement="Task_1"> <dc:Bounds height="50.0" width="110.0" x="250.0" y="93.0"/> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="BPMNShape_BoundaryEvent_1" bpmnElement="BoundaryEvent_1"> <dc:Bounds height="36.0" width="36.0" x="302.0" y="125.0"/> </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="136.0" y="118.0"/> <di:waypoint xsi:type="dc:Point" x="250.0" y="118.0"/> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_3" sourceElement="BPMNShape_Task_1" targetElement="BPMNShape_2"> <di:waypoint xsi:type="dc:Point" x="360.0" y="118.0"/> <di:waypoint xsi:type="dc:Point" x="500.0" y="118.0"/> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_4" sourceElement="BPMNShape_BoundaryEvent_1" targetElement="BPMNShape_2"> <di:waypoint xsi:type="dc:Point" x="320.0" y="161.0"/> <di:waypoint xsi:type="dc:Point" x="338.0" y="213.0"/> <di:waypoint xsi:type="dc:Point" x="500.0" y="213.0"/> <di:waypoint xsi:type="dc:Point" x="518.0" y="136.0"/> </bpmndi:BPMNEdge> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> </bpmn2:definitions> **************************************************************** When is missing in the bpmndi is the point where the boundary event is docked. In order to fix, for each boundary event add an Edge to the bpmndi info, for example in the sample bpmn you would add: <bpmndi:BPMNEdge id="BPMNEdge_BoundaryEvent_1" bpmnElement="BoundaryEvent_1"> <di:waypoint xsi:type="dc:Point" x="53.0" y="49.0"/> </bpmndi:BPMNEdge>
Forgot to mention, this x,y point of the edge is relative to the x/y position of the shape of the objects boundary event is docked on..so 0,0 is the top-left corner of the parent shape. Hope this helps.
I can't find where this is described in the BPMN 2.0 specification - is this a jBPM Web Designer requirement? The x/y coordinates (relative to the BPMNPlane) of the boundary event are already contained in the related BPMNShape element, why do you need an additional set of coordinates to locate the figure relative to the attached activity?
Not BPMN 2.0 spec compliant.