@5minds/node-red-contrib-processcube 1.7.4-feature-0f7992-m6kko7d1 → 1.7.4-feature-5965fd-m6ksznqa

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -111,14 +111,6 @@
111
111
  "info": "",
112
112
  "env": []
113
113
  },
114
- {
115
- "id": "d2d4021c0003f913",
116
- "type": "tab",
117
- "label": "TokenTest",
118
- "disabled": false,
119
- "info": "",
120
- "env": []
121
- },
122
114
  {
123
115
  "id": "4c59118134081e05",
124
116
  "type": "group",
@@ -677,12 +669,7 @@
677
669
  "id": "b78932d162d8d468",
678
670
  "type": "processcube-engine-config",
679
671
  "name": "Engine Auth 8000",
680
- "url": "http://engine:8000",
681
- "urlType": "str",
682
- "clientId": "nodered",
683
- "clientIdType": "str",
684
- "clientSecret": "nodered",
685
- "clientSecretType": "str"
672
+ "url": "http://engine:8000"
686
673
  },
687
674
  {
688
675
  "id": "2991a5e6df2b87d2",
@@ -3112,122 +3099,5 @@
3112
3099
  "af52431420fa7e15"
3113
3100
  ]
3114
3101
  ]
3115
- },
3116
- {
3117
- "id": "6498965c90a69b52",
3118
- "type": "externaltask-input",
3119
- "z": "d2d4021c0003f913",
3120
- "name": "",
3121
- "engine": "b78932d162d8d468",
3122
- "topic": "TriggerPCNode",
3123
- "topicType": "str",
3124
- "workerConfig": "{}",
3125
- "workerConfigType": "json",
3126
- "x": 410,
3127
- "y": 200,
3128
- "wires": [
3129
- [
3130
- "04d89e4c96b9b2a6",
3131
- "718a8f661fef6590"
3132
- ]
3133
- ]
3134
- },
3135
- {
3136
- "id": "718a8f661fef6590",
3137
- "type": "externaltask-output",
3138
- "z": "d2d4021c0003f913",
3139
- "name": "",
3140
- "x": 910,
3141
- "y": 200,
3142
- "wires": []
3143
- },
3144
- {
3145
- "id": "04d89e4c96b9b2a6",
3146
- "type": "debug",
3147
- "z": "d2d4021c0003f913",
3148
- "name": "debug 3",
3149
- "active": true,
3150
- "tosidebar": true,
3151
- "console": false,
3152
- "tostatus": false,
3153
- "complete": "true",
3154
- "targetType": "full",
3155
- "statusVal": "",
3156
- "statusType": "auto",
3157
- "x": 660,
3158
- "y": 300,
3159
- "wires": []
3160
- },
3161
- {
3162
- "id": "5b61ceb915a981c1",
3163
- "type": "inject",
3164
- "z": "d2d4021c0003f913",
3165
- "name": "",
3166
- "props": [],
3167
- "repeat": "",
3168
- "crontab": "",
3169
- "once": false,
3170
- "onceDelay": 0.1,
3171
- "topic": "",
3172
- "x": 270,
3173
- "y": 420,
3174
- "wires": [
3175
- [
3176
- "b89a529a7e0b5f75"
3177
- ]
3178
- ]
3179
- },
3180
- {
3181
- "id": "b89a529a7e0b5f75",
3182
- "type": "function",
3183
- "z": "d2d4021c0003f913",
3184
- "name": "function 1",
3185
- "func": "msg = { \"_event\": { \"type\": \"click\", \"clientX\": 892, \"clientY\": 123, \"bbox\": { \"x\": 832.5, \"y\": 119, \"width\": 310, \"height\": 38, \"top\": 119, \"right\": 1142.5, \"bottom\": 157, \"left\": 832.5 } }, \"_client\": { \"user\": { \"id\": \"ca4ca3de-3e80-40f9-8233-453cf2233fc2\", \"displayName\": \"admin\", \"username\": \"admin\", \"profileUrl\": \"\", \"emails\": [{ \"value\": \"admin@admin.de\" }], \"claims\": { \"sub\": \"ca4ca3de-3e80-40f9-8233-453cf2233fc2\", \"profile\": \"\", \"email\": \"admin@admin.de\", \"locale\": \"\", \"nickname\": \"\", \"website\": \"\", \"middle_name\": \"\", \"zoneinfo\": \"\", \"given_name\": \"\", \"birthdate\": \"\", \"gender\": \"\", \"company\": \"\", \"family_name\": \"\", \"updated_at\": null, \"email_verified\": true, \"preferred_username\": \"\", \"picture\": \"\", \"name\": \"admin\", \"jti\": \"6CQecbRqFPnsTLKV_cbG9\", \"iat\": 1738242946, \"exp\": 1738246546, \"scope\": \"openid profile email lanes\", \"client_id\": \"PassportTestClient\", \"iss\": \"http://authority:11560/\", \"aud\": \"PassportTestClient\" }, \"accessToken\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6ImF0K2p3dCIsImtpZCI6IlA1RXlTLVFjem80Z2IxQUNiNmxadmhDQTBpdWVNUnpqTlRuNnVpRl94RkkifQ.eyJzdWIiOiJjYTRjYTNkZS0zZTgwLTQwZjktODIzMy00NTNjZjIyMzNmYzIiLCJwcm9maWxlIjoiIiwiZW1haWwiOiJhZG1pbkBhZG1pbi5kZSIsImxvY2FsZSI6IiIsIm5pY2tuYW1lIjoiIiwid2Vic2l0ZSI6IiIsIm1pZGRsZV9uYW1lIjoiIiwiem9uZWluZm8iOiIiLCJnaXZlbl9uYW1lIjoiIiwiYmlydGhkYXRlIjoiIiwiZ2VuZGVyIjoiIiwiY29tcGFueSI6IiIsImZhbWlseV9uYW1lIjoiIiwidXBkYXRlZF9hdCI6bnVsbCwiZW1haWxfdmVyaWZpZWQiOnRydWUsInByZWZlcnJlZF91c2VybmFtZSI6IiIsInBpY3R1cmUiOiIiLCJuYW1lIjoiYWRtaW4iLCJqdGkiOiI2Q1FlY2JScUZQbnNUTEtWX2NiRzkiLCJpYXQiOjE3MzgyNDI5NDYsImV4cCI6MTczODI0NjU0Niwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBlbWFpbCBsYW5lcyIsImNsaWVudF9pZCI6IlBhc3Nwb3J0VGVzdENsaWVudCIsImlzcyI6Imh0dHA6Ly9hdXRob3JpdHk6MTE1NjAvIiwiYXVkIjoiUGFzc3BvcnRUZXN0Q2xpZW50In0.sBPvFE38A1RX7bs_tjZf8IjOaMVmKqdCxlZo0r9YJvCRwC_kM6G-n4CQEYJkTkO4ZmNpCPk01vNasCsXPG-bUedHJzIPb1DxuHQX7N51jepjgf6SY_BOKhSftw0jJvnvTUfxzPBE4gb6a5VO02mPfTyt8Vqx54mM3tZgoA_OEg-T0Uv0PTYd4VT671TUwACVhFSN43njJ04jX...\" }, \"socketId\": \"RunwgKI4_c0wEvu3AAAB\", \"socketIp\": \"172.20.0.1\" }, \"topic\": \"\", \"payload\": \"\", \"_msgid\": \"98958041794d2d15\" }\nreturn msg;",
3186
- "outputs": 1,
3187
- "timeout": 0,
3188
- "noerr": 0,
3189
- "initialize": "",
3190
- "finalize": "",
3191
- "libs": [],
3192
- "x": 440,
3193
- "y": 420,
3194
- "wires": [
3195
- [
3196
- "4cc598063a38db82"
3197
- ]
3198
- ]
3199
- },
3200
- {
3201
- "id": "4cc598063a38db82",
3202
- "type": "process-start",
3203
- "z": "d2d4021c0003f913",
3204
- "name": "",
3205
- "engine": "b78932d162d8d468",
3206
- "processmodel": "StartProcessSample_Process",
3207
- "startevent": "StartEvent_1",
3208
- "x": 630,
3209
- "y": 420,
3210
- "wires": [
3211
- [
3212
- "da96fb5b9dfe8b66"
3213
- ]
3214
- ]
3215
- },
3216
- {
3217
- "id": "da96fb5b9dfe8b66",
3218
- "type": "debug",
3219
- "z": "d2d4021c0003f913",
3220
- "name": "debug 4",
3221
- "active": true,
3222
- "tosidebar": true,
3223
- "console": false,
3224
- "tostatus": false,
3225
- "complete": "true",
3226
- "targetType": "full",
3227
- "statusVal": "",
3228
- "statusType": "auto",
3229
- "x": 820,
3230
- "y": 420,
3231
- "wires": []
3232
3102
  }
3233
3103
  ]
@@ -6,6 +6,8 @@ module.exports = function (RED) {
6
6
  node.on('input', function (msg) {
7
7
  node.engine = RED.nodes.getNode(config.engine);
8
8
  const client = node.engine.engineClient;
9
+ const isUser = !!msg._client?.user
10
+ const userIdentity = isUser ? { userId: msg._client.user.id, token: msg._client.user.accessToken } : null;
9
11
 
10
12
  if (!client) {
11
13
  node.error('No engine configured.', msg);
@@ -16,6 +18,7 @@ module.exports = function (RED) {
16
18
  .triggerMessageEvent(config.messagename, {
17
19
  processInstanceId: msg.processinstanceid,
18
20
  payload: msg.payload,
21
+ identity: userIdentity
19
22
  })
20
23
  .then((result) => {
21
24
  msg.payload = result;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@5minds/node-red-contrib-processcube",
3
- "version": "1.7.4-feature-0f7992-m6kko7d1",
3
+ "version": "1.7.4-feature-5965fd-m6ksznqa",
4
4
  "license": "MIT",
5
5
  "description": "Node-RED nodes for ProcessCube",
6
6
  "scripts": {
package/process-start.js CHANGED
@@ -1,5 +1,3 @@
1
- const engine_client = require('@5minds/processcube_engine_client');
2
-
3
1
  module.exports = function (RED) {
4
2
  function ProcessStart(config) {
5
3
  RED.nodes.createNode(this, config);
@@ -42,7 +40,7 @@ module.exports = function (RED) {
42
40
  return;
43
41
  }
44
42
 
45
- const isUser = !!msg._client.user
43
+ const isUser = !!msg._client?.user
46
44
  const identity = isUser ? { userId: msg._client.user.id, token: msg._client.user.accessToken } : null;
47
45
 
48
46
  client.processDefinitions
@@ -6,6 +6,8 @@ module.exports = function (RED) {
6
6
  node.on('input', function (msg) {
7
7
  node.engine = RED.nodes.getNode(config.engine);
8
8
  const client = node.engine.engineClient;
9
+ const isUser = !!msg._client?.user
10
+ const userIdentity = isUser ? { userId: msg._client.user.id, token: msg._client.user.accessToken } : null;
9
11
 
10
12
  if (!client) {
11
13
  node.error('No engine configured.', msg);
@@ -13,7 +15,7 @@ module.exports = function (RED) {
13
15
  }
14
16
 
15
17
  client.processInstances
16
- .terminateProcessInstance(msg.payload)
18
+ .terminateProcessInstance(msg.payload, userIdentity)
17
19
  .then(() => {
18
20
  node.send(msg);
19
21
  })
@@ -6,6 +6,8 @@ module.exports = function (RED) {
6
6
  node.on('input', function (msg) {
7
7
  node.engine = RED.nodes.getNode(config.engine);
8
8
  const client = node.engine.engineClient;
9
+ const isUser = !!msg._client?.user
10
+ const userIdentity = isUser ? { userId: msg._client.user.id, token: msg._client.user.accessToken } : null;
9
11
 
10
12
  if (!client) {
11
13
  node.error('No engine configured.');
@@ -13,7 +15,7 @@ module.exports = function (RED) {
13
15
  }
14
16
 
15
17
  client.processDefinitions
16
- .persistProcessDefinitions(msg.payload, { overwriteExisting: true })
18
+ .persistProcessDefinitions(msg.payload, { overwriteExisting: true, identity: userIdentity })
17
19
  .then(() => {
18
20
  node.send(msg);
19
21
  })
@@ -16,6 +16,10 @@ module.exports = function (RED) {
16
16
 
17
17
  node.log(`Querying process definitions with query: ${JSON.stringify(query)}`);
18
18
 
19
+ const isUser = !!msg._client?.user
20
+ const identity = isUser ? { userId: msg._client.user.id, token: msg._client.user.accessToken } : null;
21
+ query.identity = identity;
22
+
19
23
  client.processDefinitions
20
24
  .getAll(query)
21
25
  .then((matchingProcessDefinitions) => {
@@ -7,6 +7,9 @@ module.exports = function (RED) {
7
7
  node.engine = RED.nodes.getNode(config.engine);
8
8
  const client = node.engine ? node.engine.engineClient : null;
9
9
 
10
+ const isUser = !!msg._client?.user
11
+ const userIdentity = isUser ? { userId: msg._client.user.id, token: msg._client.user.accessToken } : null;
12
+
10
13
  if (!client || !client.processInstances) {
11
14
  node.error('No engine or processInstances API configured.', msg);
12
15
  return;
@@ -64,7 +67,10 @@ module.exports = function (RED) {
64
67
  state: ['finished', 'error', 'terminated'],
65
68
  limit: batchSize,
66
69
  },
67
- { includeXml: false }
70
+ {
71
+ includeXml: false,
72
+ identity: userIdentity
73
+ }
68
74
  );
69
75
 
70
76
  const processInstances = result.processInstances || [];
@@ -77,7 +83,7 @@ module.exports = function (RED) {
77
83
  const ids = processInstances.map((obj) => obj.processInstanceId);
78
84
 
79
85
  try {
80
- await client.processInstances.deleteProcessInstances(ids, true);
86
+ await client.processInstances.deleteProcessInstances(ids, true, userIdentity);
81
87
  msg.payload.successfulDeletions.push(...ids);
82
88
  sumSuccessful += ids.length;
83
89
  } catch (deleteError) {
@@ -8,6 +8,8 @@ module.exports = function (RED) {
8
8
 
9
9
  node.engine = RED.nodes.getNode(config.engine);
10
10
  const client = node.engine.engineClient;
11
+ const isUser = !!msg._client?.user
12
+ const userIdentity = isUser ? { userId: msg._client.user.id, token: msg._client.user.accessToken } : null;
11
13
 
12
14
  if (!client) {
13
15
  node.error('No engine configured.', msg);
@@ -15,7 +17,7 @@ module.exports = function (RED) {
15
17
  }
16
18
 
17
19
  client.processInstances
18
- .query(query)
20
+ .query(query, { identity: userIdentity })
19
21
  .then((matchingInstances) => {
20
22
  msg.payload = matchingInstances;
21
23
 
@@ -7,6 +7,8 @@ module.exports = function (RED) {
7
7
  node.engine = RED.nodes.getNode(config.engine);
8
8
 
9
9
  const client = node.engine.engineClient;
10
+ const isUser = !!msg._client?.user
11
+ const userIdentity = isUser ? { userId: msg._client.user.id, token: msg._client.user.accessToken } : null;
10
12
 
11
13
  if (!client) {
12
14
  node.error('No engine configured.', msg);
@@ -17,6 +19,7 @@ module.exports = function (RED) {
17
19
  .triggerSignalEvent(config.signalname, {
18
20
  processInstanceId: msg.processinstanceid,
19
21
  payload: msg.payload,
22
+ identity: userIdentity
20
23
  })
21
24
  .then((result) => {
22
25
  msg.payload = result;
package/usertask-input.js CHANGED
@@ -7,6 +7,8 @@ module.exports = function (RED) {
7
7
  node.engine = RED.nodes.getNode(config.engine);
8
8
 
9
9
  const client = node.engine.engineClient;
10
+ const isUser = !!msg._client?.user
11
+ const userIdentity = isUser ? { userId: msg._client.user.id, token: msg._client.user.accessToken } : null;
10
12
 
11
13
  if (!client) {
12
14
  node.error('No engine configured.', msg);
@@ -16,7 +18,7 @@ module.exports = function (RED) {
16
18
  let query = RED.util.evaluateNodeProperty(config.query, config.query_type, node, msg);
17
19
 
18
20
  client.userTasks
19
- .query(query)
21
+ .query(query, {identity: userIdentity})
20
22
  .then((matchingFlowNodes) => {
21
23
  if (config.sendtype === 'array') {
22
24
  msg.payload = { userTasks: matchingFlowNodes.userTasks || [] };
@@ -17,6 +17,8 @@ module.exports = function (RED) {
17
17
  node.engine = RED.nodes.getNode(config.engine);
18
18
 
19
19
  const client = node.engine.engineClient;
20
+ const isUser = !!msg._client?.user
21
+ const userIdentity = isUser ? { userId: msg._client.user.id, token: msg._client.user.accessToken } : null;
20
22
 
21
23
  if (!client) {
22
24
  node.error('No engine configured.', msg);
@@ -24,7 +26,7 @@ module.exports = function (RED) {
24
26
  }
25
27
 
26
28
  client.userTasks
27
- .finishUserTask(flowNodeInstanceId, userTaskResult)
29
+ .finishUserTask(flowNodeInstanceId, userTaskResult, userIdentity)
28
30
  .then(() => {
29
31
  node.send(msg);
30
32
  })
@@ -4,6 +4,8 @@ module.exports = function (RED) {
4
4
  var node = this;
5
5
 
6
6
  node.engine = RED.nodes.getNode(config.engine);
7
+ const isUser = !!msg._client?.user
8
+ const userIdentity = isUser ? { userId: msg._client.user.id, token: msg._client.user.accessToken } : null;
7
9
 
8
10
  let subscription = null;
9
11
  let subscribe = null;
@@ -25,11 +27,11 @@ module.exports = function (RED) {
25
27
  };
26
28
 
27
29
  try {
28
- const matchingFlowNodes = await client.userTasks.query(newQuery);
30
+ const matchingFlowNodes = await client.userTasks.query(newQuery, {identity: userIdentity});
29
31
 
30
32
  if (matchingFlowNodes.userTasks && matchingFlowNodes.userTasks.length == 1) {
31
33
  // remove subscription
32
- client.userTasks.removeSubscription(subscription);
34
+ client.userTasks.removeSubscription(subscription, userIdentity);
33
35
 
34
36
  const userTask = matchingFlowNodes.userTasks[0];
35
37
 
@@ -41,6 +43,8 @@ module.exports = function (RED) {
41
43
  } catch (error) {
42
44
  node.error(error, msg);
43
45
  }
46
+ },{
47
+ identity: userIdentity,
44
48
  });
45
49
 
46
50
  node.log({ 'Handling old userTasks config.only_for_new': config.only_for_new });
@@ -53,7 +57,7 @@ module.exports = function (RED) {
53
57
  };
54
58
 
55
59
  try {
56
- const matchingFlowNodes = await client.userTasks.query(suspendedQuery);
60
+ const matchingFlowNodes = await client.userTasks.query(suspendedQuery, {identity: userIdentity});
57
61
 
58
62
  if (matchingFlowNodes.userTasks && matchingFlowNodes.userTasks.length >= 1) {
59
63
  const userTask = matchingFlowNodes.userTasks[0];
@@ -62,7 +66,7 @@ module.exports = function (RED) {
62
66
  node.send(msg);
63
67
 
64
68
  // remove subscription
65
- client.userTasks.removeSubscription(subscription);
69
+ client.userTasks.removeSubscription(subscription, userIdentity);
66
70
  } else {
67
71
  // let the *currentIdentity* be active
68
72
  }
@@ -77,7 +81,7 @@ module.exports = function (RED) {
77
81
 
78
82
  node.on('close', () => {
79
83
  if (client != null && subscription != null) {
80
- client.userTasks.removeSubscription(subscription);
84
+ client.userTasks.removeSubscription(subscription, );
81
85
  }
82
86
  });
83
87
  }
@@ -1,58 +0,0 @@
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:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="TokenTest_Definition" targetNamespace="http://bpmn.io/schema/bpmn" exporter="5Minds Studio" exporterVersion="1">
3
- <bpmn:collaboration id="Collaboration_1cidyxu" name="">
4
- <bpmn:participant id="Participant_0qqs1cu" name="Token-Test" processRef="Token-Test_Process" />
5
- </bpmn:collaboration>
6
- <bpmn:process id="Token-Test_Process" name="Token-Test" isExecutable="true">
7
- <bpmn:laneSet id="LaneSet_1aqtpqs">
8
- <bpmn:lane id="Lane_1mo8jcc" name="Lane">
9
- <bpmn:flowNodeRef>Event_1ptmb8y</bpmn:flowNodeRef>
10
- <bpmn:flowNodeRef>Event_03og9pn</bpmn:flowNodeRef>
11
- <bpmn:flowNodeRef>Activity_1ce0pce</bpmn:flowNodeRef>
12
- </bpmn:lane>
13
- </bpmn:laneSet>
14
- <bpmn:startEvent id="Event_1ptmb8y" name="Start">
15
- <bpmn:outgoing>Flow_14x1t60</bpmn:outgoing>
16
- </bpmn:startEvent>
17
- <bpmn:endEvent id="Event_03og9pn">
18
- <bpmn:incoming>Flow_09xp1ep</bpmn:incoming>
19
- </bpmn:endEvent>
20
- <bpmn:serviceTask id="Activity_1ce0pce" name="TriggerPCNode" camunda:type="external" camunda:topic="TriggerPCNode">
21
- <bpmn:incoming>Flow_14x1t60</bpmn:incoming>
22
- <bpmn:outgoing>Flow_09xp1ep</bpmn:outgoing>
23
- </bpmn:serviceTask>
24
- <bpmn:sequenceFlow id="Flow_14x1t60" sourceRef="Event_1ptmb8y" targetRef="Activity_1ce0pce" />
25
- <bpmn:sequenceFlow id="Flow_09xp1ep" sourceRef="Activity_1ce0pce" targetRef="Event_03og9pn" />
26
- </bpmn:process>
27
- <bpmndi:BPMNDiagram id="BPMNDiagram_1">
28
- <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_1cidyxu">
29
- <bpmndi:BPMNShape id="BPMNShape_0cjotgc" bpmnElement="Participant_0qqs1cu" isHorizontal="true">
30
- <dc:Bounds x="-80" y="-310" width="885" height="346" />
31
- </bpmndi:BPMNShape>
32
- <bpmndi:BPMNShape id="BPMNShape_1ib40km" bpmnElement="Lane_1mo8jcc" isHorizontal="true">
33
- <dc:Bounds x="-50" y="-310" width="855" height="346" />
34
- </bpmndi:BPMNShape>
35
- <bpmndi:BPMNShape id="BPMNShape_139q3mx" bpmnElement="Event_1ptmb8y">
36
- <dc:Bounds x="7" y="-162" width="36" height="36" />
37
- <bpmndi:BPMNLabel>
38
- <dc:Bounds x="13" y="-119" width="25" height="14" />
39
- </bpmndi:BPMNLabel>
40
- </bpmndi:BPMNShape>
41
- <bpmndi:BPMNShape id="Event_03og9pn_di" bpmnElement="Event_03og9pn">
42
- <dc:Bounds x="247" y="-162" width="36" height="36" />
43
- </bpmndi:BPMNShape>
44
- <bpmndi:BPMNShape id="Activity_1rdy3md_di" bpmnElement="Activity_1ce0pce">
45
- <dc:Bounds x="95" y="-184" width="100" height="80" />
46
- <bpmndi:BPMNLabel />
47
- </bpmndi:BPMNShape>
48
- <bpmndi:BPMNEdge id="Flow_14x1t60_di" bpmnElement="Flow_14x1t60">
49
- <di:waypoint x="43" y="-144" />
50
- <di:waypoint x="95" y="-144" />
51
- </bpmndi:BPMNEdge>
52
- <bpmndi:BPMNEdge id="Flow_09xp1ep_di" bpmnElement="Flow_09xp1ep">
53
- <di:waypoint x="195" y="-144" />
54
- <di:waypoint x="247" y="-144" />
55
- </bpmndi:BPMNEdge>
56
- </bpmndi:BPMNPlane>
57
- </bpmndi:BPMNDiagram>
58
- </bpmn:definitions>