91c38241a269769d8a577122531fe208f9d1feaf
[so.git] / bpmn / MSOCommonBPMN / src / main / resources / subprocess / SDNCAdapterV1.bpmn
1 <?xml version="1.0" encoding="UTF-8"?>
2 <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:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_l2hJ8CccEeW3d--PaFJMbg" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.7.1" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
3   <bpmn2:process id="sdncAdapter" name="SDNC Adapter" isExecutable="true">
4     <bpmn2:exclusiveGateway id="isResponseOK" name="is Response Ok?" default="badSynchronousResponse">
5       <bpmn2:incoming>SequenceFlow_15</bpmn2:incoming>
6       <bpmn2:outgoing>badSynchronousResponse</bpmn2:outgoing>
7       <bpmn2:outgoing>goodSynchronousResponse</bpmn2:outgoing>
8     </bpmn2:exclusiveGateway>
9     <bpmn2:sequenceFlow id="badSynchronousResponse" name="Bad synchronous response" sourceRef="isResponseOK" targetRef="setBadResponse" />
10     <bpmn2:sequenceFlow id="goodSynchronousResponse" name="Good synchronous response" sourceRef="isResponseOK" targetRef="resetCallbackRequest">
11       <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("SDNCA_ResponseCode")=='200'}]]></bpmn2:conditionExpression>
12     </bpmn2:sequenceFlow>
13     <bpmn2:scriptTask id="setBadResponse" name="Set Bad Response&#10;&#10;Exception" scriptFormat="groovy">
14       <bpmn2:incoming>badSynchronousResponse</bpmn2:incoming>
15       <bpmn2:outgoing>Exception</bpmn2:outgoing>
16       <bpmn2:script><![CDATA[import org.onap.so.bpmn.common.scripts.*
17
18 int responseCode = execution.getVariable("SDNCA_ResponseCode")
19 ExceptionUtil exceptionUtil = new ExceptionUtil()
20 exceptionUtil.buildWorkflowException(execution, 7000, "Could not communicate with the SDNC Adapter" )]]></bpmn2:script>
21     </bpmn2:scriptTask>
22     <bpmn2:sequenceFlow id="Exception" name="Exception" sourceRef="setBadResponse" targetRef="badResponseEndFlow" />
23     <bpmn2:serviceTask id="invokeSDNCAdapter" name="Invoke SDNC Adapter" camunda:asyncAfter="true" camunda:class="">
24       <bpmn2:extensionElements>
25         <camunda:connector>
26           <camunda:inputOutput>
27             <camunda:inputParameter name="url"><![CDATA[${execution.getVariable("mso.adapters.sdnc.endpoint")}]]></camunda:inputParameter>
28             <camunda:inputParameter name="method">POST</camunda:inputParameter>
29             <camunda:inputParameter name="headers">
30               <camunda:map>
31                 <camunda:entry key="content-type">application/soap+xml</camunda:entry>
32                 <camunda:entry key="Authorization">#{BasicAuthHeaderValue}</camunda:entry>
33                 <camunda:entry key="X-ONAP-RequestID">#{mso-request-id}</camunda:entry>
34               </camunda:map>
35             </camunda:inputParameter>
36             <camunda:inputParameter name="payload">${sdncAdapterRequest}</camunda:inputParameter>
37             <camunda:outputParameter name="sdncAdapterWorkflowResponse">${response}</camunda:outputParameter>
38             <camunda:outputParameter name="SDNCA_ResponseCode">${statusCode}</camunda:outputParameter>
39           </camunda:inputOutput>
40           <camunda:connectorId>soap-http-connector</camunda:connectorId>
41         </camunda:connector>
42       </bpmn2:extensionElements>
43       <bpmn2:incoming>SequenceFlow_8</bpmn2:incoming>
44       <bpmn2:outgoing>SequenceFlow_15</bpmn2:outgoing>
45     </bpmn2:serviceTask>
46     <bpmn2:sequenceFlow id="SequenceFlow_15" sourceRef="invokeSDNCAdapter" targetRef="isResponseOK" />
47     <bpmn2:endEvent id="badResponseEndFlow" name="Bad Response End Flow">
48       <bpmn2:incoming>Exception</bpmn2:incoming>
49       <bpmn2:errorEventDefinition id="_ErrorEventDefinition_77" errorRef="Error_3" />
50     </bpmn2:endEvent>
51     <bpmn2:startEvent id="SDNCAdapter_Start" name="Incoming Message">
52       <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
53       <bpmn2:messageEventDefinition id="_MessageEventDefinition_3" messageRef="Message_1" />
54     </bpmn2:startEvent>
55     <bpmn2:sequenceFlow id="SequenceFlow_1" sourceRef="SDNCAdapter_Start" targetRef="processMessage" />
56     <bpmn2:scriptTask id="processMessage" name="Process message" scriptFormat="groovy">
57       <bpmn2:extensionElements>
58         <camunda:inputOutput>
59           <camunda:inputParameter name="ScriptObject">
60             <camunda:map>
61               <camunda:entry key="MethodName">massageSDNCRequestScript</camunda:entry>
62               <camunda:entry key="Params" />
63             </camunda:map>
64           </camunda:inputParameter>
65         </camunda:inputOutput>
66       </bpmn2:extensionElements>
67       <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
68       <bpmn2:outgoing>SequenceFlow_8</bpmn2:outgoing>
69       <bpmn2:script><![CDATA[import org.onap.so.bpmn.common.scripts.*
70 def sdnc= new SDNCAdapter()
71 sdnc.preProcessRequest(execution)]]></bpmn2:script>
72     </bpmn2:scriptTask>
73     <bpmn2:sequenceFlow id="SequenceFlow_8" sourceRef="processMessage" targetRef="invokeSDNCAdapter" />
74     <bpmn2:scriptTask id="returnWorkflowResult" name="Return workflow result" scriptFormat="groovy">
75       <bpmn2:incoming>SequenceFlow_9</bpmn2:incoming>
76       <bpmn2:incoming>SequenceFlow_11ah5pw</bpmn2:incoming>
77       <bpmn2:outgoing>SequenceFlow_14</bpmn2:outgoing>
78       <bpmn2:script><![CDATA[import org.onap.so.bpmn.common.scripts.*
79 def sdnc= new SDNCAdapter()
80 sdnc.postProcessResponse(execution)]]></bpmn2:script>
81     </bpmn2:scriptTask>
82     <bpmn2:sequenceFlow id="SequenceFlow_14" sourceRef="returnWorkflowResult" targetRef="timeoutError" />
83     <bpmn2:exclusiveGateway id="timeoutError" name="Did Timeout occur?" default="noTimeoutError">
84       <bpmn2:incoming>SequenceFlow_14</bpmn2:incoming>
85       <bpmn2:outgoing>noTimeoutError</bpmn2:outgoing>
86       <bpmn2:outgoing>SequenceFlow_19</bpmn2:outgoing>
87     </bpmn2:exclusiveGateway>
88     <bpmn2:sequenceFlow id="noTimeoutError" name="No Timeout" sourceRef="timeoutError" targetRef="ExclusiveGateway_1" />
89     <bpmn2:sequenceFlow id="SequenceFlow_19" name="Timeout" sourceRef="timeoutError" targetRef="endEventException">
90       <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("asynchronousResponseTimeout")==true}]]></bpmn2:conditionExpression>
91     </bpmn2:sequenceFlow>
92     <bpmn2:subProcess id="SubProcess" name="Wait for asynchronous message" camunda:asyncAfter="true">
93       <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
94       <bpmn2:outgoing>SequenceFlow_9</bpmn2:outgoing>
95       <bpmn2:startEvent id="StartEvent" name="Start Event">
96         <bpmn2:outgoing>SequenceFlow_1eciucn</bpmn2:outgoing>
97       </bpmn2:startEvent>
98       <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent" name="Catch Event">
99         <bpmn2:incoming>SequenceFlow_1eciucn</bpmn2:incoming>
100         <bpmn2:outgoing>SequenceFlow_16</bpmn2:outgoing>
101         <bpmn2:messageEventDefinition id="MessageEventDefinition_2" messageRef="Message_2" />
102       </bpmn2:intermediateCatchEvent>
103       <bpmn2:sequenceFlow id="SequenceFlow_16" sourceRef="IntermediateCatchEvent" targetRef="eEndEventSubprocess" />
104       <bpmn2:sequenceFlow id="SequenceFlow_1eciucn" sourceRef="StartEvent" targetRef="IntermediateCatchEvent" />
105       <bpmn2:endEvent id="eEndEventSubprocess" name="End Event Subprocess">
106         <bpmn2:incoming>SequenceFlow_16</bpmn2:incoming>
107       </bpmn2:endEvent>
108     </bpmn2:subProcess>
109     <bpmn2:sequenceFlow id="SequenceFlow_9" sourceRef="SubProcess" targetRef="returnWorkflowResult" />
110     <bpmn2:scriptTask id="setTimeoutEx" name="Set Timeout&#10;and Stop Listening for Callback" scriptFormat="groovy">
111       <bpmn2:incoming>SequenceFlow_0mzs1ze</bpmn2:incoming>
112       <bpmn2:outgoing>SequenceFlow_11ah5pw</bpmn2:outgoing>
113       <bpmn2:script><![CDATA[import org.onap.so.bpmn.common.scripts.*
114 def sdnc= new SDNCAdapter()
115 sdnc.setTimeout(execution)]]></bpmn2:script>
116     </bpmn2:scriptTask>
117     <bpmn2:scriptTask id="resetCallbackRequest" name="Reset callback request and set timer value" scriptFormat="groovy">
118       <bpmn2:incoming>goodSynchronousResponse</bpmn2:incoming>
119       <bpmn2:incoming>SequenceFlow_26</bpmn2:incoming>
120       <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
121       <bpmn2:script><![CDATA[import org.onap.so.bpmn.common.scripts.*
122 def sdnc= new SDNCAdapter()
123 sdnc.resetCallbackRequest(execution)]]></bpmn2:script>
124     </bpmn2:scriptTask>
125     <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="resetCallbackRequest" targetRef="SubProcess" />
126     <bpmn2:exclusiveGateway id="ExclusiveGateway_1" name="Check final indicator" default="Done">
127       <bpmn2:incoming>noTimeoutError</bpmn2:incoming>
128       <bpmn2:outgoing>Done</bpmn2:outgoing>
129       <bpmn2:outgoing>SequenceFlow_30</bpmn2:outgoing>
130     </bpmn2:exclusiveGateway>
131     <bpmn2:sequenceFlow id="Done" name="Done" sourceRef="ExclusiveGateway_1" targetRef="ResetInterimNotificationFlag" />
132     <bpmn2:sequenceFlow id="SequenceFlow_30" name="Not Done" sourceRef="ExclusiveGateway_1" targetRef="ParallelGateway_3">
133       <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("continueListening")==true}]]></bpmn2:conditionExpression>
134     </bpmn2:sequenceFlow>
135     <bpmn2:scriptTask id="toggleSuccessIndicator" name="Toggle Success Indicator" scriptFormat="groovy">
136       <bpmn2:incoming>SequenceFlow_1w1za5m</bpmn2:incoming>
137       <bpmn2:outgoing>SequenceFlow_17</bpmn2:outgoing>
138       <bpmn2:script><![CDATA[import org.onap.so.bpmn.common.scripts.*
139 def sdnc= new SDNCAdapter()
140 sdnc.toggleSuccessIndicator(execution)]]></bpmn2:script>
141     </bpmn2:scriptTask>
142     <bpmn2:sequenceFlow id="SequenceFlow_17" name="" sourceRef="toggleSuccessIndicator" targetRef="endEventFlow" />
143     <bpmn2:endEvent id="endEventFlow" name="End Event Flow">
144       <bpmn2:extensionElements>
145         <camunda:connector>
146           <camunda:inputOutput>
147             <camunda:outputParameter name="sdncAdapterResponse">${sdncAdapterWorkflowResponse}</camunda:outputParameter>
148           </camunda:inputOutput>
149         </camunda:connector>
150       </bpmn2:extensionElements>
151       <bpmn2:incoming>SequenceFlow_17</bpmn2:incoming>
152       <bpmn2:messageEventDefinition id="_MessageEventDefinition_6" />
153     </bpmn2:endEvent>
154     <bpmn2:parallelGateway id="ParallelGateway_3">
155       <bpmn2:incoming>SequenceFlow_30</bpmn2:incoming>
156       <bpmn2:outgoing>SequenceFlow_21</bpmn2:outgoing>
157       <bpmn2:outgoing>SequenceFlow_26</bpmn2:outgoing>
158     </bpmn2:parallelGateway>
159     <bpmn2:sequenceFlow id="SequenceFlow_21" name="" sourceRef="ParallelGateway_3" targetRef="ExclusiveGateway_2" />
160     <bpmn2:sequenceFlow id="SequenceFlow_26" name="Continue listening for asynchronous message" sourceRef="ParallelGateway_3" targetRef="resetCallbackRequest" />
161     <bpmn2:subProcess id="errorHandlingSubProcess" name="Error Handling Sub Process" triggeredByEvent="true">
162       <bpmn2:startEvent id="catchErrors" name="Catch">
163         <bpmn2:outgoing>SequenceFlow_22</bpmn2:outgoing>
164         <bpmn2:errorEventDefinition id="_ErrorEventDefinition_78" errorRef="Error_3" />
165       </bpmn2:startEvent>
166       <bpmn2:sequenceFlow id="SequenceFlow_22" name="" sourceRef="catchErrors" targetRef="assignError" />
167       <bpmn2:scriptTask id="assignError" name="Assign Error" scriptFormat="groovy">
168         <bpmn2:incoming>SequenceFlow_22</bpmn2:incoming>
169         <bpmn2:outgoing>SequenceFlow_27</bpmn2:outgoing>
170         <bpmn2:script><![CDATA[import org.onap.so.bpmn.common.scripts.*
171 def sdnc= new SDNCAdapter()
172 sdnc.assignError(execution)]]></bpmn2:script>
173       </bpmn2:scriptTask>
174       <bpmn2:sequenceFlow id="SequenceFlow_27" name="" sourceRef="assignError" targetRef="EndEvent_5" />
175       <bpmn2:endEvent id="EndEvent_5">
176         <bpmn2:incoming>SequenceFlow_27</bpmn2:incoming>
177       </bpmn2:endEvent>
178     </bpmn2:subProcess>
179     <bpmn2:exclusiveGateway id="ExclusiveGateway_2" name="Service Config Activate?" default="SequenceFlow_23">
180       <bpmn2:incoming>SequenceFlow_21</bpmn2:incoming>
181       <bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
182       <bpmn2:outgoing>SequenceFlow_23</bpmn2:outgoing>
183     </bpmn2:exclusiveGateway>
184     <bpmn2:sequenceFlow id="SequenceFlow_4" name="Yes" sourceRef="ExclusiveGateway_2" targetRef="SetInterimNotificationFlag">
185       <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("serviceConfigActivate")==true}]]></bpmn2:conditionExpression>
186     </bpmn2:sequenceFlow>
187     <bpmn2:sequenceFlow id="SequenceFlow_23" name="No" sourceRef="ExclusiveGateway_2" targetRef="EndEvent_1" />
188     <bpmn2:endEvent id="EndEvent_1">
189       <bpmn2:incoming>SequenceFlow_23</bpmn2:incoming>
190     </bpmn2:endEvent>
191     <bpmn2:boundaryEvent id="BoundaryEvent_1" name="Boundary Event" cancelActivity="false" attachedToRef="SubProcess">
192       <bpmn2:documentation>this is a non interupting time to prevent an Optimistic Locking Exception if timer expires the same time we correlate a message</bpmn2:documentation>
193       <bpmn2:outgoing>SequenceFlow_0mzs1ze</bpmn2:outgoing>
194       <bpmn2:timerEventDefinition>
195         <bpmn2:timeDuration xsi:type="bpmn2:tFormalExpression">${sdncTimeoutValue}</bpmn2:timeDuration>
196       </bpmn2:timerEventDefinition>
197     </bpmn2:boundaryEvent>
198     <bpmn2:endEvent id="endEventException" name="Timeout Exception">
199       <bpmn2:incoming>SequenceFlow_19</bpmn2:incoming>
200       <bpmn2:terminateEventDefinition />
201     </bpmn2:endEvent>
202     <bpmn2:sequenceFlow id="SequenceFlow_0mzs1ze" sourceRef="BoundaryEvent_1" targetRef="setTimeoutEx" />
203     <bpmn2:sequenceFlow id="SequenceFlow_11ah5pw" sourceRef="setTimeoutEx" targetRef="returnWorkflowResult" />
204     <bpmn2:callActivity id="CallActivity_11xgv33" name="Call Notification Service" calledElement="${UrnPropertiesReader.getVariable(&#34;mso.workflow.notification.name&#34;, execution)}">
205       <bpmn2:extensionElements>
206         <camunda:in source="mso-request-id" target="mso-request-id" />
207         <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
208         <camunda:in variables="all" />
209         <camunda:out variables="all" />
210       </bpmn2:extensionElements>
211       <bpmn2:incoming>SequenceFlow_193cb6p</bpmn2:incoming>
212       <bpmn2:outgoing>SequenceFlow_1em7gys</bpmn2:outgoing>
213     </bpmn2:callActivity>
214     <bpmn2:scriptTask id="SetInterimNotificationFlag" name="Set Interim Notification Flag" scriptFormat="groovy">
215       <bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
216       <bpmn2:outgoing>SequenceFlow_193cb6p</bpmn2:outgoing>
217       <bpmn2:script><![CDATA[execution.setVariable("SDNCA_InterimNotify", true)]]></bpmn2:script>
218     </bpmn2:scriptTask>
219     <bpmn2:sequenceFlow id="SequenceFlow_193cb6p" sourceRef="SetInterimNotificationFlag" targetRef="CallActivity_11xgv33" />
220     <bpmn2:endEvent id="EndEvent_18rq0b6">
221       <bpmn2:incoming>SequenceFlow_1em7gys</bpmn2:incoming>
222     </bpmn2:endEvent>
223     <bpmn2:sequenceFlow id="SequenceFlow_1em7gys" sourceRef="CallActivity_11xgv33" targetRef="EndEvent_18rq0b6" />
224     <bpmn2:scriptTask id="ResetInterimNotificationFlag" name="Reset Interim Notification Flag" scriptFormat="groovy">
225       <bpmn2:incoming>Done</bpmn2:incoming>
226       <bpmn2:outgoing>SequenceFlow_1w1za5m</bpmn2:outgoing>
227       <bpmn2:script><![CDATA[execution.setVariable("SDNCA_InterimNotify", false)]]></bpmn2:script>
228     </bpmn2:scriptTask>
229     <bpmn2:sequenceFlow id="SequenceFlow_1w1za5m" sourceRef="ResetInterimNotificationFlag" targetRef="toggleSuccessIndicator" />
230   </bpmn2:process>
231   <bpmn2:message id="Message_1" name="sdncAdapterWorkflowRequest" />
232   <bpmn2:message id="Message_2" name="sdncAdapterCallbackRequest" />
233   <bpmn2:error id="Error_3" name="MSO Workflow Exception" errorCode="MSOWorkflowException" />
234   <bpmn2:signal id="Signal_1" name="InterimStatus" />
235   <bpmn2:error id="Error_2" name="Java Lang Exception" errorCode="java.lang.Exception" />
236   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
237     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="sdncAdapter">
238       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_33" bpmnElement="SDNCAdapter_Start">
239         <dc:Bounds x="111" y="161" width="36" height="36" />
240         <bpmndi:BPMNLabel>
241           <dc:Bounds x="72" y="202" width="115" height="22" />
242         </bpmndi:BPMNLabel>
243       </bpmndi:BPMNShape>
244       <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_62" bpmnElement="invokeSDNCAdapter">
245         <dc:Bounds x="342" y="139" width="100" height="80" />
246       </bpmndi:BPMNShape>
247       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_29" bpmnElement="isResponseOK" isMarkerVisible="true">
248         <dc:Bounds x="519" y="153" width="50" height="50" />
249         <bpmndi:BPMNLabel>
250           <dc:Bounds x="569" y="182" width="106" height="22" />
251         </bpmndi:BPMNLabel>
252       </bpmndi:BPMNShape>
253       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_64" bpmnElement="endEventFlow">
254         <dc:Bounds x="1699" y="366" width="36" height="36" />
255         <bpmndi:BPMNLabel>
256           <dc:Bounds x="1743" y="373" width="77" height="13" />
257         </bpmndi:BPMNLabel>
258       </bpmndi:BPMNShape>
259       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_65" bpmnElement="badResponseEndFlow">
260         <dc:Bounds x="762" y="104" width="36" height="36" />
261         <bpmndi:BPMNLabel>
262           <dc:Bounds x="804" y="111" width="149" height="22" />
263         </bpmndi:BPMNLabel>
264       </bpmndi:BPMNShape>
265       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="badSynchronousResponse" sourceElement="_BPMNShape_ExclusiveGateway_29" targetElement="_BPMNShape_ScriptTask_24">
266         <di:waypoint xsi:type="dc:Point" x="544" y="153" />
267         <di:waypoint xsi:type="dc:Point" x="544" y="122" />
268         <di:waypoint xsi:type="dc:Point" x="600" y="122" />
269         <bpmndi:BPMNLabel>
270           <dc:Bounds x="441" y="99" width="164" height="22" />
271         </bpmndi:BPMNLabel>
272       </bpmndi:BPMNEdge>
273       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_33" targetElement="_BPMNShape_ScriptTask_3">
274         <di:waypoint xsi:type="dc:Point" x="147" y="179" />
275         <di:waypoint xsi:type="dc:Point" x="194" y="179" />
276         <bpmndi:BPMNLabel>
277           <dc:Bounds x="171" y="179" width="0" height="0" />
278         </bpmndi:BPMNLabel>
279       </bpmndi:BPMNEdge>
280       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="goodSynchronousResponse" sourceElement="_BPMNShape_ExclusiveGateway_29" targetElement="_BPMNShape_ScriptTask_27">
281         <di:waypoint xsi:type="dc:Point" x="544" y="203" />
282         <di:waypoint xsi:type="dc:Point" x="544" y="246" />
283         <bpmndi:BPMNLabel>
284           <dc:Bounds x="459" y="208" width="172" height="22" />
285         </bpmndi:BPMNLabel>
286       </bpmndi:BPMNEdge>
287       <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_68" bpmnElement="returnWorkflowResult">
288         <dc:Bounds x="1104" y="237" width="100" height="80" />
289       </bpmndi:BPMNShape>
290       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_3" bpmnElement="processMessage">
291         <dc:Bounds x="194" y="139" width="100" height="80" />
292       </bpmndi:BPMNShape>
293       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_8" bpmnElement="SequenceFlow_8" sourceElement="_BPMNShape_ScriptTask_3" targetElement="_BPMNShape_ServiceTask_62">
294         <di:waypoint xsi:type="dc:Point" x="294" y="179" />
295         <di:waypoint xsi:type="dc:Point" x="342" y="179" />
296         <bpmndi:BPMNLabel>
297           <dc:Bounds x="300" y="153" width="30" height="22" />
298         </bpmndi:BPMNLabel>
299       </bpmndi:BPMNEdge>
300       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_14" bpmnElement="SequenceFlow_14" sourceElement="_BPMNShape_ServiceTask_68" targetElement="_BPMNShape_ExclusiveGateway_53">
301         <di:waypoint xsi:type="dc:Point" x="1204" y="277" />
302         <di:waypoint xsi:type="dc:Point" x="1248" y="276" />
303         <bpmndi:BPMNLabel>
304           <dc:Bounds x="1211" y="251" width="37" height="22" />
305         </bpmndi:BPMNLabel>
306       </bpmndi:BPMNEdge>
307       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_15" bpmnElement="SequenceFlow_15" sourceElement="_BPMNShape_ServiceTask_62" targetElement="_BPMNShape_ExclusiveGateway_29">
308         <di:waypoint xsi:type="dc:Point" x="442" y="179" />
309         <di:waypoint xsi:type="dc:Point" x="480" y="179" />
310         <di:waypoint xsi:type="dc:Point" x="480" y="178" />
311         <di:waypoint xsi:type="dc:Point" x="519" y="178" />
312         <bpmndi:BPMNLabel>
313           <dc:Bounds x="468" y="153" width="37" height="22" />
314         </bpmndi:BPMNLabel>
315       </bpmndi:BPMNEdge>
316       <bpmndi:BPMNShape id="_BPMNShape_IntermediateCatchEvent_16" bpmnElement="IntermediateCatchEvent">
317         <dc:Bounds x="781" y="257" width="36" height="36" />
318         <bpmndi:BPMNLabel>
319           <dc:Bounds x="739" y="292" width="60" height="12" />
320         </bpmndi:BPMNLabel>
321       </bpmndi:BPMNShape>
322       <bpmndi:BPMNShape id="_BPMNShape_SubProcess_11" bpmnElement="SubProcess" isExpanded="true">
323         <dc:Bounds x="619" y="209" width="379" height="137" />
324       </bpmndi:BPMNShape>
325       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_38" bpmnElement="StartEvent">
326         <dc:Bounds x="655" y="257" width="36" height="36" />
327         <bpmndi:BPMNLabel>
328           <dc:Bounds x="630" y="292" width="54" height="12" />
329         </bpmndi:BPMNLabel>
330       </bpmndi:BPMNShape>
331       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_9" bpmnElement="SequenceFlow_9" sourceElement="_BPMNShape_SubProcess_11">
332         <di:waypoint xsi:type="dc:Point" x="998" y="278" />
333         <di:waypoint xsi:type="dc:Point" x="1104" y="277" />
334         <bpmndi:BPMNLabel>
335           <dc:Bounds x="1051" y="262.5" width="0" height="0" />
336         </bpmndi:BPMNLabel>
337       </bpmndi:BPMNEdge>
338       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_24" bpmnElement="setBadResponse">
339         <dc:Bounds x="600" y="82" width="100" height="80" />
340       </bpmndi:BPMNShape>
341       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="Exception" sourceElement="_BPMNShape_ScriptTask_24" targetElement="_BPMNShape_EndEvent_65">
342         <di:waypoint xsi:type="dc:Point" x="700" y="122" />
343         <di:waypoint xsi:type="dc:Point" x="762" y="122" />
344         <bpmndi:BPMNLabel>
345           <dc:Bounds x="699" y="99" width="64" height="22" />
346         </bpmndi:BPMNLabel>
347       </bpmndi:BPMNEdge>
348       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_25" bpmnElement="setTimeoutEx">
349         <dc:Bounds x="941" y="372" width="100" height="80" />
350       </bpmndi:BPMNShape>
351       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_16" bpmnElement="SequenceFlow_16" sourceElement="_BPMNShape_IntermediateCatchEvent_16">
352         <di:waypoint xsi:type="dc:Point" x="817" y="275" />
353         <di:waypoint xsi:type="dc:Point" x="926" y="275" />
354         <bpmndi:BPMNLabel>
355           <dc:Bounds x="872" y="260" width="0" height="0" />
356         </bpmndi:BPMNLabel>
357       </bpmndi:BPMNEdge>
358       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_53" bpmnElement="timeoutError" isMarkerVisible="true">
359         <dc:Bounds x="1248" y="251" width="50" height="50" />
360         <bpmndi:BPMNLabel>
361           <dc:Bounds x="1300" y="266" width="118" height="22" />
362         </bpmndi:BPMNLabel>
363       </bpmndi:BPMNShape>
364       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_17" bpmnElement="noTimeoutError" sourceElement="_BPMNShape_ExclusiveGateway_53" targetElement="_BPMNShape_ExclusiveGateway_54">
365         <di:waypoint xsi:type="dc:Point" x="1273" y="301" />
366         <di:waypoint xsi:type="dc:Point" x="1273" y="359" />
367         <bpmndi:BPMNLabel>
368           <dc:Bounds x="1280" y="324" width="72" height="22" />
369         </bpmndi:BPMNLabel>
370       </bpmndi:BPMNEdge>
371       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_19" bpmnElement="SequenceFlow_19" sourceElement="_BPMNShape_ExclusiveGateway_53" targetElement="_BPMNShape_ScriptTask_25">
372         <di:waypoint xsi:type="dc:Point" x="1273" y="251" />
373         <di:waypoint xsi:type="dc:Point" x="1273" y="95" />
374         <di:waypoint xsi:type="dc:Point" x="1560" y="95" />
375         <bpmndi:BPMNLabel>
376           <dc:Bounds x="1301" y="169.45283018867923" width="39" height="12" />
377         </bpmndi:BPMNLabel>
378       </bpmndi:BPMNEdge>
379       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_54" bpmnElement="ExclusiveGateway_1" isMarkerVisible="true">
380         <dc:Bounds x="1248" y="359" width="50" height="50" />
381         <bpmndi:BPMNLabel>
382           <dc:Bounds x="1194" y="372" width="57" height="24" />
383         </bpmndi:BPMNLabel>
384       </bpmndi:BPMNShape>
385       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_7" bpmnElement="Done" sourceElement="_BPMNShape_ExclusiveGateway_54" targetElement="_BPMNShape_ScriptTask_247">
386         <di:waypoint xsi:type="dc:Point" x="1298" y="384" />
387         <di:waypoint xsi:type="dc:Point" x="1386" y="385" />
388         <bpmndi:BPMNLabel>
389           <dc:Bounds x="1322" y="384.219838851959" width="27" height="13" />
390         </bpmndi:BPMNLabel>
391       </bpmndi:BPMNEdge>
392       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_27" bpmnElement="resetCallbackRequest">
393         <dc:Bounds x="494" y="246" width="100" height="80" />
394       </bpmndi:BPMNShape>
395       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_ScriptTask_27" targetElement="_BPMNShape_SubProcess_11">
396         <di:waypoint xsi:type="dc:Point" x="594" y="286" />
397         <di:waypoint xsi:type="dc:Point" x="607" y="286" />
398         <di:waypoint xsi:type="dc:Point" x="607" y="275" />
399         <di:waypoint xsi:type="dc:Point" x="619" y="275" />
400         <bpmndi:BPMNLabel>
401           <dc:Bounds x="622" y="280.5" width="0" height="0" />
402         </bpmndi:BPMNLabel>
403       </bpmndi:BPMNEdge>
404       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_38" bpmnElement="SequenceFlow_30" sourceElement="_BPMNShape_ExclusiveGateway_54" targetElement="_BPMNShape_ParallelGateway_14">
405         <di:waypoint xsi:type="dc:Point" x="1273" y="409" />
406         <di:waypoint xsi:type="dc:Point" x="1273" y="467" />
407         <bpmndi:BPMNLabel>
408           <dc:Bounds x="1273" y="423" width="60" height="22" />
409         </bpmndi:BPMNLabel>
410       </bpmndi:BPMNEdge>
411       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_55" bpmnElement="ExclusiveGateway_2" isMarkerVisible="true">
412         <dc:Bounds x="1248" y="552" width="50" height="50" />
413         <bpmndi:BPMNLabel>
414           <dc:Bounds x="1141" y="567" width="74" height="25" />
415         </bpmndi:BPMNLabel>
416       </bpmndi:BPMNShape>
417       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_13" bpmnElement="SequenceFlow_4" sourceElement="_BPMNShape_ExclusiveGateway_55" targetElement="CallActivity_11xgv33_di">
418         <di:waypoint xsi:type="dc:Point" x="1273" y="602" />
419         <di:waypoint xsi:type="dc:Point" x="1273" y="664" />
420         <bpmndi:BPMNLabel>
421           <dc:Bounds x="1237" y="635.9906427957554" width="18" height="13" />
422         </bpmndi:BPMNLabel>
423       </bpmndi:BPMNEdge>
424       <bpmndi:BPMNShape id="_BPMNShape_ParallelGateway_14" bpmnElement="ParallelGateway_3">
425         <dc:Bounds x="1248" y="467" width="50" height="50" />
426         <bpmndi:BPMNLabel>
427           <dc:Bounds x="1273" y="522" width="0" height="0" />
428         </bpmndi:BPMNLabel>
429       </bpmndi:BPMNShape>
430       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_28" bpmnElement="SequenceFlow_21" sourceElement="_BPMNShape_ParallelGateway_14">
431         <di:waypoint xsi:type="dc:Point" x="1272" y="516" />
432         <di:waypoint xsi:type="dc:Point" x="1273" y="552" />
433         <bpmndi:BPMNLabel>
434           <dc:Bounds x="1273" y="519" width="0" height="0" />
435         </bpmndi:BPMNLabel>
436       </bpmndi:BPMNEdge>
437       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_96" bpmnElement="EndEvent_1">
438         <dc:Bounds x="1440" y="559" width="36" height="36" />
439         <bpmndi:BPMNLabel>
440           <dc:Bounds x="1458" y="600" width="0" height="0" />
441         </bpmndi:BPMNLabel>
442       </bpmndi:BPMNShape>
443       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_30" bpmnElement="SequenceFlow_23" sourceElement="_BPMNShape_ExclusiveGateway_55" targetElement="_BPMNShape_EndEvent_96">
444         <di:waypoint xsi:type="dc:Point" x="1298" y="577" />
445         <di:waypoint xsi:type="dc:Point" x="1330" y="577" />
446         <di:waypoint xsi:type="dc:Point" x="1440" y="577" />
447         <bpmndi:BPMNLabel>
448           <dc:Bounds x="1309" y="590.5" width="14" height="13" />
449         </bpmndi:BPMNLabel>
450       </bpmndi:BPMNEdge>
451       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_33" bpmnElement="SequenceFlow_26" sourceElement="_BPMNShape_ParallelGateway_14" targetElement="_BPMNShape_ScriptTask_27">
452         <di:waypoint xsi:type="dc:Point" x="1248" y="492" />
453         <di:waypoint xsi:type="dc:Point" x="544" y="492" />
454         <di:waypoint xsi:type="dc:Point" x="544" y="326" />
455         <bpmndi:BPMNLabel>
456           <dc:Bounds x="782" y="467" width="73" height="48" />
457         </bpmndi:BPMNLabel>
458       </bpmndi:BPMNEdge>
459       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_247" bpmnElement="toggleSuccessIndicator">
460         <dc:Bounds x="1540" y="344" width="100" height="80" />
461       </bpmndi:BPMNShape>
462       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_26" bpmnElement="SequenceFlow_17" sourceElement="_BPMNShape_ScriptTask_247" targetElement="_BPMNShape_EndEvent_64">
463         <di:waypoint xsi:type="dc:Point" x="1640" y="384" />
464         <di:waypoint xsi:type="dc:Point" x="1699" y="384" />
465         <bpmndi:BPMNLabel>
466           <dc:Bounds x="1670" y="369" width="0" height="0" />
467         </bpmndi:BPMNLabel>
468       </bpmndi:BPMNEdge>
469       <bpmndi:BPMNShape id="_BPMNShape_SubProcess_19" bpmnElement="errorHandlingSubProcess" isExpanded="true">
470         <dc:Bounds x="207" y="692" width="353" height="193" />
471       </bpmndi:BPMNShape>
472       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_63" bpmnElement="catchErrors">
473         <dc:Bounds x="242" y="771" width="36" height="36" />
474         <bpmndi:BPMNLabel>
475           <dc:Bounds x="245" y="812" width="29" height="12" />
476         </bpmndi:BPMNLabel>
477       </bpmndi:BPMNShape>
478       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_213" bpmnElement="EndEvent_5">
479         <dc:Bounds x="482" y="771" width="36" height="36" />
480         <bpmndi:BPMNLabel>
481           <dc:Bounds x="455" y="812" width="90" height="0" />
482         </bpmndi:BPMNLabel>
483       </bpmndi:BPMNShape>
484       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_249" bpmnElement="assignError">
485         <dc:Bounds x="326" y="749" width="100" height="80" />
486       </bpmndi:BPMNShape>
487       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_29" bpmnElement="SequenceFlow_22" sourceElement="_BPMNShape_StartEvent_63" targetElement="_BPMNShape_ScriptTask_249">
488         <di:waypoint xsi:type="dc:Point" x="278" y="789" />
489         <di:waypoint xsi:type="dc:Point" x="326" y="789" />
490         <bpmndi:BPMNLabel>
491           <dc:Bounds x="263" y="789" width="90" height="0" />
492         </bpmndi:BPMNLabel>
493       </bpmndi:BPMNEdge>
494       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_34" bpmnElement="SequenceFlow_27" sourceElement="_BPMNShape_ScriptTask_249" targetElement="_BPMNShape_EndEvent_213">
495         <di:waypoint xsi:type="dc:Point" x="426" y="789" />
496         <di:waypoint xsi:type="dc:Point" x="482" y="789" />
497         <bpmndi:BPMNLabel>
498           <dc:Bounds x="409" y="789" width="90" height="0" />
499         </bpmndi:BPMNLabel>
500       </bpmndi:BPMNEdge>
501       <bpmndi:BPMNEdge id="SequenceFlow_1eciucn_di" bpmnElement="SequenceFlow_1eciucn">
502         <di:waypoint xsi:type="dc:Point" x="691" y="275" />
503         <di:waypoint xsi:type="dc:Point" x="781" y="275" />
504         <bpmndi:BPMNLabel>
505           <dc:Bounds x="736" y="260" width="0" height="0" />
506         </bpmndi:BPMNLabel>
507       </bpmndi:BPMNEdge>
508       <bpmndi:BPMNShape id="BoundaryEvent_1e5qjpm_di" bpmnElement="BoundaryEvent_1">
509         <dc:Bounds x="782" y="328" width="36" height="36" />
510         <bpmndi:BPMNLabel>
511           <dc:Bounds x="715" y="361" width="78" height="12" />
512         </bpmndi:BPMNLabel>
513       </bpmndi:BPMNShape>
514       <bpmndi:BPMNShape id="EndEvent_0vl0pvg_di" bpmnElement="endEventException">
515         <dc:Bounds x="1560" y="77" width="36" height="36" />
516         <bpmndi:BPMNLabel>
517           <dc:Bounds x="1607" y="84" width="90" height="12" />
518         </bpmndi:BPMNLabel>
519       </bpmndi:BPMNShape>
520       <bpmndi:BPMNEdge id="SequenceFlow_0mzs1ze_di" bpmnElement="SequenceFlow_0mzs1ze">
521         <di:waypoint xsi:type="dc:Point" x="800" y="364" />
522         <di:waypoint xsi:type="dc:Point" x="800" y="412" />
523         <di:waypoint xsi:type="dc:Point" x="941" y="412" />
524         <bpmndi:BPMNLabel>
525           <dc:Bounds x="815" y="388" width="0" height="0" />
526         </bpmndi:BPMNLabel>
527       </bpmndi:BPMNEdge>
528       <bpmndi:BPMNEdge id="SequenceFlow_11ah5pw_di" bpmnElement="SequenceFlow_11ah5pw">
529         <di:waypoint xsi:type="dc:Point" x="1041" y="412" />
530         <di:waypoint xsi:type="dc:Point" x="1154" y="412" />
531         <di:waypoint xsi:type="dc:Point" x="1154" y="317" />
532         <bpmndi:BPMNLabel>
533           <dc:Bounds x="1098" y="397" width="0" height="0" />
534         </bpmndi:BPMNLabel>
535       </bpmndi:BPMNEdge>
536       <bpmndi:BPMNShape id="EndEvent_0xhvk12_di" bpmnElement="eEndEventSubprocess">
537         <dc:Bounds x="926" y="257" width="36" height="36" />
538         <bpmndi:BPMNLabel>
539           <dc:Bounds x="905" y="292" width="59" height="24" />
540         </bpmndi:BPMNLabel>
541       </bpmndi:BPMNShape>
542       <bpmndi:BPMNShape id="CallActivity_11xgv33_di" bpmnElement="CallActivity_11xgv33">
543         <dc:Bounds x="1223" y="795" width="100" height="80" />
544       </bpmndi:BPMNShape>
545       <bpmndi:BPMNShape id="ScriptTask_1vhiyz5_di" bpmnElement="SetInterimNotificationFlag">
546         <dc:Bounds x="1223" y="666" width="100" height="80" />
547       </bpmndi:BPMNShape>
548       <bpmndi:BPMNEdge id="SequenceFlow_193cb6p_di" bpmnElement="SequenceFlow_193cb6p">
549         <di:waypoint xsi:type="dc:Point" x="1273" y="746" />
550         <di:waypoint xsi:type="dc:Point" x="1273" y="795" />
551         <bpmndi:BPMNLabel>
552           <dc:Bounds x="1288" y="770.5" width="0" height="0" />
553         </bpmndi:BPMNLabel>
554       </bpmndi:BPMNEdge>
555       <bpmndi:BPMNShape id="EndEvent_18rq0b6_di" bpmnElement="EndEvent_18rq0b6">
556         <dc:Bounds x="1255.3117870722433" y="919.4537389100127" width="36" height="36" />
557         <bpmndi:BPMNLabel>
558           <dc:Bounds x="1274" y="955.4537389100127" width="0" height="0" />
559         </bpmndi:BPMNLabel>
560       </bpmndi:BPMNShape>
561       <bpmndi:BPMNEdge id="SequenceFlow_1em7gys_di" bpmnElement="SequenceFlow_1em7gys">
562         <di:waypoint xsi:type="dc:Point" x="1273" y="875" />
563         <di:waypoint xsi:type="dc:Point" x="1273" y="920" />
564         <bpmndi:BPMNLabel>
565           <dc:Bounds x="1288" y="897.5" width="0" height="0" />
566         </bpmndi:BPMNLabel>
567       </bpmndi:BPMNEdge>
568       <bpmndi:BPMNShape id="ScriptTask_1ayq9yl_di" bpmnElement="ResetInterimNotificationFlag">
569         <dc:Bounds x="1386" y="345" width="100" height="80" />
570       </bpmndi:BPMNShape>
571       <bpmndi:BPMNEdge id="SequenceFlow_1w1za5m_di" bpmnElement="SequenceFlow_1w1za5m">
572         <di:waypoint xsi:type="dc:Point" x="1486" y="385" />
573         <di:waypoint xsi:type="dc:Point" x="1540" y="384" />
574         <bpmndi:BPMNLabel>
575           <dc:Bounds x="1513" y="369.5" width="0" height="0" />
576         </bpmndi:BPMNLabel>
577       </bpmndi:BPMNEdge>
578     </bpmndi:BPMNPlane>
579   </bpmndi:BPMNDiagram>
580 </bpmn2:definitions>