d123153932516e709d302c20b0a1ee7cd9280cbc
[so.git] / bpmn / so-bpmn-building-blocks / src / main / resources / subprocess / BuildingBlock / SDNCHandler.bpmn
1 <?xml version="1.0" encoding="UTF-8"?>
2 <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.10.0">
3   <bpmn:process id="SDNCHandler" name="SDNC" isExecutable="true">
4     <bpmn:startEvent id="SDNC_Start">
5       <bpmn:outgoing>SequenceFlow_1n0j3hz</bpmn:outgoing>
6     </bpmn:startEvent>
7     <bpmn:endEvent id="SDNC_End">
8       <bpmn:incoming>SequenceFlow_0i4u8g4</bpmn:incoming>
9       <bpmn:incoming>SequenceFlow_0puiqga</bpmn:incoming>
10     </bpmn:endEvent>
11     <bpmn:serviceTask id="Call_SDNC" name="Call SDNC" camunda:expression="${SDNCRequestTasks.callSDNC(execution)}">
12       <bpmn:incoming>SequenceFlow_0flbj8a</bpmn:incoming>
13       <bpmn:outgoing>SequenceFlow_07vnhri</bpmn:outgoing>
14     </bpmn:serviceTask>
15     <bpmn:boundaryEvent id="BoundaryEvent_1lv4854" attachedToRef="Call_SDNC">
16       <bpmn:outgoing>SequenceFlow_0valp88</bpmn:outgoing>
17       <bpmn:errorEventDefinition camunda:errorCodeVariable="SDNCSyncError" />
18     </bpmn:boundaryEvent>
19     <bpmn:sequenceFlow id="SequenceFlow_0valp88" sourceRef="BoundaryEvent_1lv4854" targetRef="Task_1o29lpk" />
20     <bpmn:subProcess id="SubProcess_0y8yozw" name="Wait for Callback" camunda:asyncAfter="true" camunda:exclusive="false">
21       <bpmn:incoming>SequenceFlow_0rh24pq</bpmn:incoming>
22       <bpmn:incoming>SequenceFlow_0yve6l6</bpmn:incoming>
23       <bpmn:outgoing>SequenceFlow_1ecej8g</bpmn:outgoing>
24       <bpmn:intermediateCatchEvent id="IntermediateCatchEvent_0a9exm4" name="Catch Event" camunda:asyncBefore="true" camunda:asyncAfter="true">
25         <bpmn:incoming>SequenceFlow_1qxm8ot</bpmn:incoming>
26         <bpmn:outgoing>SequenceFlow_05eggbt</bpmn:outgoing>
27         <bpmn:messageEventDefinition messageRef="Message_06oc4iz" />
28       </bpmn:intermediateCatchEvent>
29       <bpmn:startEvent id="Start_Async">
30         <bpmn:outgoing>SequenceFlow_1qxm8ot</bpmn:outgoing>
31       </bpmn:startEvent>
32       <bpmn:endEvent id="EndEvent_1qoir9i">
33         <bpmn:incoming>SequenceFlow_0oh3ye4</bpmn:incoming>
34       </bpmn:endEvent>
35       <bpmn:sequenceFlow id="SequenceFlow_1qxm8ot" name="" sourceRef="Start_Async" targetRef="IntermediateCatchEvent_0a9exm4" />
36       <bpmn:sequenceFlow id="SequenceFlow_05eggbt" name="" sourceRef="IntermediateCatchEvent_0a9exm4" targetRef="Task_14bzc51" />
37       <bpmn:sequenceFlow id="SequenceFlow_0oh3ye4" sourceRef="Task_14bzc51" targetRef="EndEvent_1qoir9i" />
38       <bpmn:serviceTask id="Task_14bzc51" name="Process Callback" camunda:expression="${SDNCRequestTasks.processCallback(execution)}">
39         <bpmn:incoming>SequenceFlow_05eggbt</bpmn:incoming>
40         <bpmn:outgoing>SequenceFlow_0oh3ye4</bpmn:outgoing>
41       </bpmn:serviceTask>
42     </bpmn:subProcess>
43     <bpmn:boundaryEvent id="BoundaryEvent_1quvxva" name="Timeout" attachedToRef="SubProcess_0y8yozw">
44       <bpmn:outgoing>SequenceFlow_1yifu46</bpmn:outgoing>
45       <bpmn:timerEventDefinition>
46         <bpmn:timeDuration xsi:type="bpmn:tFormalExpression"><![CDATA[${execution.getVariable("sdncTimeout")}]]></bpmn:timeDuration>
47       </bpmn:timerEventDefinition>
48     </bpmn:boundaryEvent>
49     <bpmn:sequenceFlow id="SequenceFlow_1ecej8g" sourceRef="SubProcess_0y8yozw" targetRef="ExclusiveGateway_09ehhaf" />
50     <bpmn:exclusiveGateway id="ExclusiveGateway_09ehhaf">
51       <bpmn:incoming>SequenceFlow_1ecej8g</bpmn:incoming>
52       <bpmn:outgoing>SequenceFlow_0rh24pq</bpmn:outgoing>
53       <bpmn:outgoing>SequenceFlow_0i4u8g4</bpmn:outgoing>
54     </bpmn:exclusiveGateway>
55     <bpmn:sequenceFlow id="SequenceFlow_0rh24pq" name="Final Ack = N" sourceRef="ExclusiveGateway_09ehhaf" targetRef="SubProcess_0y8yozw">
56       <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[${execution.getVariable("isCallbackCompleted")}]]></bpmn:conditionExpression>
57     </bpmn:sequenceFlow>
58     <bpmn:sequenceFlow id="SequenceFlow_1yifu46" sourceRef="BoundaryEvent_1quvxva" targetRef="Task_1un0flc" />
59     <bpmn:sequenceFlow id="SequenceFlow_1n0j3hz" sourceRef="SDNC_Start" targetRef="SNDC_SetupCallback" />
60     <bpmn:exclusiveGateway id="isAsync_Gateway" default="SequenceFlow_0yve6l6">
61       <bpmn:incoming>SequenceFlow_07vnhri</bpmn:incoming>
62       <bpmn:outgoing>SequenceFlow_0yve6l6</bpmn:outgoing>
63       <bpmn:outgoing>SequenceFlow_0puiqga</bpmn:outgoing>
64     </bpmn:exclusiveGateway>
65     <bpmn:sequenceFlow id="SequenceFlow_0yve6l6" name="Final Ack = N" sourceRef="isAsync_Gateway" targetRef="SubProcess_0y8yozw" />
66     <bpmn:sequenceFlow id="SequenceFlow_07vnhri" sourceRef="Call_SDNC" targetRef="isAsync_Gateway" />
67     <bpmn:sequenceFlow id="SequenceFlow_0flbj8a" sourceRef="SNDC_SetupCallback" targetRef="Call_SDNC" />
68     <bpmn:sequenceFlow id="SequenceFlow_0i4u8g4" name="Final Ack = Y" sourceRef="ExclusiveGateway_09ehhaf" targetRef="SDNC_End" />
69     <bpmn:sequenceFlow id="SequenceFlow_0puiqga" name="Final Ack = Y" sourceRef="isAsync_Gateway" targetRef="SDNC_End">
70       <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[${execution.getVariable("isSDNCCompleted")}]]></bpmn:conditionExpression>
71     </bpmn:sequenceFlow>
72     <bpmn:serviceTask id="SNDC_SetupCallback" name="Setup Callback Variables" camunda:expression="${SDNCRequestTasks.createCorrelationVariables(execution)}">
73       <bpmn:incoming>SequenceFlow_1n0j3hz</bpmn:incoming>
74       <bpmn:outgoing>SequenceFlow_0flbj8a</bpmn:outgoing>
75     </bpmn:serviceTask>
76     <bpmn:serviceTask id="Task_1un0flc" name="Handle Timeout" camunda:expression="${SDNCRequestTasks.handleTimeOutException(execution)}">
77       <bpmn:incoming>SequenceFlow_1yifu46</bpmn:incoming>
78     </bpmn:serviceTask>
79     <bpmn:serviceTask id="Task_1o29lpk" name="Handle Error" camunda:expression="${SDNCRequestTasks.handleSyncError(execution)}">
80       <bpmn:incoming>SequenceFlow_0valp88</bpmn:incoming>
81     </bpmn:serviceTask>
82   </bpmn:process>
83   <bpmn:message id="Message_06oc4iz" name="SDNCCallbackMessage" />
84   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
85     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="SDNCHandler">
86       <bpmndi:BPMNShape id="StartEvent_0kxwniy_di" bpmnElement="SDNC_Start">
87         <dc:Bounds x="-267" y="134" width="36" height="36" />
88         <bpmndi:BPMNLabel>
89           <dc:Bounds x="-294" y="170" width="90" height="12" />
90         </bpmndi:BPMNLabel>
91       </bpmndi:BPMNShape>
92       <bpmndi:BPMNShape id="EndEvent_0qdq7wj_di" bpmnElement="SDNC_End">
93         <dc:Bounds x="780" y="174" width="36" height="36" />
94         <bpmndi:BPMNLabel>
95           <dc:Bounds x="753" y="214" width="90" height="12" />
96         </bpmndi:BPMNLabel>
97       </bpmndi:BPMNShape>
98       <bpmndi:BPMNShape id="ServiceTask_1i5x1m6_di" bpmnElement="Call_SDNC">
99         <dc:Bounds x="15" y="112" width="100" height="80" />
100       </bpmndi:BPMNShape>
101       <bpmndi:BPMNShape id="BoundaryEvent_1wxlsn8_di" bpmnElement="BoundaryEvent_1lv4854">
102         <dc:Bounds x="97" y="174" width="36" height="36" />
103         <bpmndi:BPMNLabel>
104           <dc:Bounds x="452" y="520" width="90" height="13" />
105         </bpmndi:BPMNLabel>
106       </bpmndi:BPMNShape>
107       <bpmndi:BPMNEdge id="SequenceFlow_0valp88_di" bpmnElement="SequenceFlow_0valp88">
108         <di:waypoint xsi:type="dc:Point" x="115" y="210" />
109         <di:waypoint xsi:type="dc:Point" x="115" y="278" />
110         <di:waypoint xsi:type="dc:Point" x="115" y="278" />
111         <di:waypoint xsi:type="dc:Point" x="115" y="312" />
112         <bpmndi:BPMNLabel>
113           <dc:Bounds x="85" y="271.5" width="90" height="13" />
114         </bpmndi:BPMNLabel>
115       </bpmndi:BPMNEdge>
116       <bpmndi:BPMNShape id="SubProcess_0y8yozw_di" bpmnElement="SubProcess_0y8yozw" isExpanded="true">
117         <dc:Bounds x="278" y="-144" width="340" height="153" />
118       </bpmndi:BPMNShape>
119       <bpmndi:BPMNShape id="BoundaryEvent_1quvxva_di" bpmnElement="BoundaryEvent_1quvxva">
120         <dc:Bounds x="600" y="-162" width="36" height="36" />
121         <bpmndi:BPMNLabel>
122           <dc:Bounds x="669" y="-169" width="40" height="13" />
123         </bpmndi:BPMNLabel>
124       </bpmndi:BPMNShape>
125       <bpmndi:BPMNShape id="IntermediateCatchEvent_0a9exm4_di" bpmnElement="IntermediateCatchEvent_0a9exm4">
126         <dc:Bounds x="376" y="-90" width="36" height="36" />
127         <bpmndi:BPMNLabel>
128           <dc:Bounds x="364" y="-49" width="60" height="13" />
129         </bpmndi:BPMNLabel>
130       </bpmndi:BPMNShape>
131       <bpmndi:BPMNShape id="StartEvent_0z0iy13_di" bpmnElement="Start_Async">
132         <dc:Bounds x="311" y="-90" width="36" height="36" />
133         <bpmndi:BPMNLabel>
134           <dc:Bounds x="194" y="-49" width="90" height="13" />
135         </bpmndi:BPMNLabel>
136       </bpmndi:BPMNShape>
137       <bpmndi:BPMNShape id="EndEvent_1qoir9i_di" bpmnElement="EndEvent_1qoir9i">
138         <dc:Bounds x="562" y="-90" width="36" height="36" />
139         <bpmndi:BPMNLabel>
140           <dc:Bounds x="445" y="-49" width="90" height="13" />
141         </bpmndi:BPMNLabel>
142       </bpmndi:BPMNShape>
143       <bpmndi:BPMNEdge id="SequenceFlow_1qxm8ot_di" bpmnElement="SequenceFlow_1qxm8ot">
144         <di:waypoint xsi:type="dc:Point" x="347" y="-72" />
145         <di:waypoint xsi:type="dc:Point" x="376" y="-72" />
146         <bpmndi:BPMNLabel>
147           <dc:Bounds x="316.5" y="-93.5" width="90" height="13" />
148         </bpmndi:BPMNLabel>
149       </bpmndi:BPMNEdge>
150       <bpmndi:BPMNEdge id="SequenceFlow_05eggbt_di" bpmnElement="SequenceFlow_05eggbt">
151         <di:waypoint xsi:type="dc:Point" x="412" y="-72" />
152         <di:waypoint xsi:type="dc:Point" x="438" y="-72" />
153         <bpmndi:BPMNLabel>
154           <dc:Bounds x="380" y="-93.5" width="90" height="13" />
155         </bpmndi:BPMNLabel>
156       </bpmndi:BPMNEdge>
157       <bpmndi:BPMNEdge id="SequenceFlow_1ecej8g_di" bpmnElement="SequenceFlow_1ecej8g">
158         <di:waypoint xsi:type="dc:Point" x="618" y="-67" />
159         <di:waypoint xsi:type="dc:Point" x="798" y="-67" />
160         <di:waypoint xsi:type="dc:Point" x="798" y="28" />
161         <bpmndi:BPMNLabel>
162           <dc:Bounds x="663" y="-88.5" width="90" height="13" />
163         </bpmndi:BPMNLabel>
164       </bpmndi:BPMNEdge>
165       <bpmndi:BPMNShape id="ExclusiveGateway_09ehhaf_di" bpmnElement="ExclusiveGateway_09ehhaf" isMarkerVisible="true">
166         <dc:Bounds x="773" y="28" width="50" height="50" />
167         <bpmndi:BPMNLabel>
168           <dc:Bounds x="753" y="81" width="90" height="13" />
169         </bpmndi:BPMNLabel>
170       </bpmndi:BPMNShape>
171       <bpmndi:BPMNEdge id="SequenceFlow_0rh24pq_di" bpmnElement="SequenceFlow_0rh24pq">
172         <di:waypoint xsi:type="dc:Point" x="773" y="53" />
173         <di:waypoint xsi:type="dc:Point" x="449" y="53" />
174         <di:waypoint xsi:type="dc:Point" x="449" y="9" />
175         <bpmndi:BPMNLabel>
176           <dc:Bounds x="579.9877300613497" y="32" width="66" height="13" />
177         </bpmndi:BPMNLabel>
178       </bpmndi:BPMNEdge>
179       <bpmndi:BPMNEdge id="SequenceFlow_1yifu46_di" bpmnElement="SequenceFlow_1yifu46">
180         <di:waypoint xsi:type="dc:Point" x="636" y="-144" />
181         <di:waypoint xsi:type="dc:Point" x="748" y="-145" />
182         <bpmndi:BPMNLabel>
183           <dc:Bounds x="647" y="-166" width="90" height="13" />
184         </bpmndi:BPMNLabel>
185       </bpmndi:BPMNEdge>
186       <bpmndi:BPMNEdge id="SequenceFlow_1n0j3hz_di" bpmnElement="SequenceFlow_1n0j3hz">
187         <di:waypoint xsi:type="dc:Point" x="-231" y="152" />
188         <di:waypoint xsi:type="dc:Point" x="-171" y="152" />
189         <bpmndi:BPMNLabel>
190           <dc:Bounds x="-201" y="130.5" width="0" height="13" />
191         </bpmndi:BPMNLabel>
192       </bpmndi:BPMNEdge>
193       <bpmndi:BPMNShape id="ExclusiveGateway_0gyjh0m_di" bpmnElement="isAsync_Gateway" isMarkerVisible="true">
194         <dc:Bounds x="228.4153846153846" y="127" width="50" height="50" />
195         <bpmndi:BPMNLabel>
196           <dc:Bounds x="253.4153846153846" y="180" width="0" height="13" />
197         </bpmndi:BPMNLabel>
198       </bpmndi:BPMNShape>
199       <bpmndi:BPMNEdge id="SequenceFlow_0yve6l6_di" bpmnElement="SequenceFlow_0yve6l6">
200         <di:waypoint xsi:type="dc:Point" x="253" y="127" />
201         <di:waypoint xsi:type="dc:Point" x="253" y="92" />
202         <di:waypoint xsi:type="dc:Point" x="253" y="92" />
203         <di:waypoint xsi:type="dc:Point" x="253" y="-67" />
204         <di:waypoint xsi:type="dc:Point" x="278" y="-67" />
205         <bpmndi:BPMNLabel>
206           <dc:Bounds x="263" y="57" width="65" height="12" />
207         </bpmndi:BPMNLabel>
208       </bpmndi:BPMNEdge>
209       <bpmndi:BPMNEdge id="SequenceFlow_07vnhri_di" bpmnElement="SequenceFlow_07vnhri">
210         <di:waypoint xsi:type="dc:Point" x="115" y="152" />
211         <di:waypoint xsi:type="dc:Point" x="228" y="152" />
212         <bpmndi:BPMNLabel>
213           <dc:Bounds x="171.5" y="130" width="0" height="13" />
214         </bpmndi:BPMNLabel>
215       </bpmndi:BPMNEdge>
216       <bpmndi:BPMNEdge id="SequenceFlow_0flbj8a_di" bpmnElement="SequenceFlow_0flbj8a">
217         <di:waypoint xsi:type="dc:Point" x="-71" y="152" />
218         <di:waypoint xsi:type="dc:Point" x="15" y="152" />
219         <bpmndi:BPMNLabel>
220           <dc:Bounds x="-28" y="130.5" width="0" height="13" />
221         </bpmndi:BPMNLabel>
222       </bpmndi:BPMNEdge>
223       <bpmndi:BPMNEdge id="SequenceFlow_0i4u8g4_di" bpmnElement="SequenceFlow_0i4u8g4">
224         <di:waypoint xsi:type="dc:Point" x="798" y="78" />
225         <di:waypoint xsi:type="dc:Point" x="798" y="174" />
226         <bpmndi:BPMNLabel>
227           <dc:Bounds x="809" y="119" width="66" height="13" />
228         </bpmndi:BPMNLabel>
229       </bpmndi:BPMNEdge>
230       <bpmndi:BPMNEdge id="SequenceFlow_0puiqga_di" bpmnElement="SequenceFlow_0puiqga">
231         <di:waypoint xsi:type="dc:Point" x="253" y="177" />
232         <di:waypoint xsi:type="dc:Point" x="253" y="192" />
233         <di:waypoint xsi:type="dc:Point" x="780" y="192" />
234         <bpmndi:BPMNLabel>
235           <dc:Bounds x="310" y="161" width="66" height="13" />
236         </bpmndi:BPMNLabel>
237       </bpmndi:BPMNEdge>
238       <bpmndi:BPMNEdge id="SequenceFlow_0oh3ye4_di" bpmnElement="SequenceFlow_0oh3ye4">
239         <di:waypoint xsi:type="dc:Point" x="538" y="-72" />
240         <di:waypoint xsi:type="dc:Point" x="562" y="-72" />
241         <bpmndi:BPMNLabel>
242           <dc:Bounds x="550" y="-93.5" width="0" height="13" />
243         </bpmndi:BPMNLabel>
244       </bpmndi:BPMNEdge>
245       <bpmndi:BPMNShape id="ServiceTask_034ehsc_di" bpmnElement="SNDC_SetupCallback">
246         <dc:Bounds x="-171" y="112" width="100" height="80" />
247       </bpmndi:BPMNShape>
248       <bpmndi:BPMNShape id="ServiceTask_0ribmhb_di" bpmnElement="Task_14bzc51">
249         <dc:Bounds x="438" y="-112" width="100" height="80" />
250       </bpmndi:BPMNShape>
251       <bpmndi:BPMNShape id="ServiceTask_08b89dm_di" bpmnElement="Task_1un0flc">
252         <dc:Bounds x="748" y="-185" width="100" height="80" />
253       </bpmndi:BPMNShape>
254       <bpmndi:BPMNShape id="ServiceTask_1cyot3r_di" bpmnElement="Task_1o29lpk">
255         <dc:Bounds x="65" y="312" width="100" height="80" />
256       </bpmndi:BPMNShape>
257     </bpmndi:BPMNPlane>
258   </bpmndi:BPMNDiagram>
259 </bpmn:definitions>