@5minds/node-red-contrib-processcube 1.5.4-develop-5e0b5a-m36zyoaj → 1.5.5-develop-9244da-m3hs2wpp
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.
- package/endevent-finished-listener.js +23 -15
- package/nodered/flows.json +104 -6
- package/package.json +1 -1
- package/process-event-listener.js +182 -148
- package/processdefinition-query.js +5 -1
- package/usertask-event-listener.js +20 -15
- package/wait-for-usertask.js +31 -23
@@ -13,29 +13,37 @@ module.exports = function (RED) {
|
|
13
13
|
}
|
14
14
|
|
15
15
|
let currentIdentity = node.engine.identity;
|
16
|
-
let subscription = await client.events.onEndEventFinished(
|
17
|
-
(endEventFinished) => {
|
18
|
-
node.send({
|
19
|
-
payload: endEventFinished,
|
20
|
-
});
|
21
|
-
},
|
22
|
-
{ identity: currentIdentity },
|
23
|
-
);
|
24
|
-
|
25
|
-
node.engine.registerOnIdentityChanged(async (identity) => {
|
26
|
-
client.events.removeSubscription(subscription, currentIdentity);
|
27
|
-
|
28
|
-
currentIdentity = identity;
|
29
16
|
|
17
|
+
let subscription = null;
|
18
|
+
|
19
|
+
try {
|
30
20
|
subscription = await client.events.onEndEventFinished(
|
31
21
|
(endEventFinished) => {
|
32
22
|
node.send({
|
33
|
-
payload: endEventFinished
|
23
|
+
payload: endEventFinished,
|
34
24
|
});
|
35
25
|
},
|
36
26
|
{ identity: currentIdentity },
|
37
27
|
);
|
38
|
-
|
28
|
+
|
29
|
+
node.engine.registerOnIdentityChanged(async (identity) => {
|
30
|
+
client.events.removeSubscription(subscription, currentIdentity);
|
31
|
+
|
32
|
+
currentIdentity = identity;
|
33
|
+
|
34
|
+
subscription = await client.events.onEndEventFinished(
|
35
|
+
(endEventFinished) => {
|
36
|
+
node.send({
|
37
|
+
payload: endEventFinished
|
38
|
+
});
|
39
|
+
},
|
40
|
+
{ identity: currentIdentity },
|
41
|
+
);
|
42
|
+
});
|
43
|
+
|
44
|
+
} catch (error) {
|
45
|
+
node.error(error);
|
46
|
+
}
|
39
47
|
|
40
48
|
node.on('close', async () => {
|
41
49
|
if (node.engine && node.engine.engineClient && client) {
|
package/nodered/flows.json
CHANGED
@@ -241,7 +241,7 @@
|
|
241
241
|
"fc23f271b106648f"
|
242
242
|
],
|
243
243
|
"x": 34,
|
244
|
-
"y":
|
244
|
+
"y": 239,
|
245
245
|
"w": 652,
|
246
246
|
"h": 202
|
247
247
|
},
|
@@ -467,6 +467,30 @@
|
|
467
467
|
"w": 572,
|
468
468
|
"h": 142
|
469
469
|
},
|
470
|
+
{
|
471
|
+
"id": "3f3c01daebb2d215",
|
472
|
+
"type": "group",
|
473
|
+
"z": "fd3c725340de4f74",
|
474
|
+
"style": {
|
475
|
+
"stroke": "#999999",
|
476
|
+
"stroke-opacity": "1",
|
477
|
+
"fill": "none",
|
478
|
+
"fill-opacity": "1",
|
479
|
+
"label": true,
|
480
|
+
"label-position": "nw",
|
481
|
+
"color": "#a4a4a4"
|
482
|
+
},
|
483
|
+
"nodes": [
|
484
|
+
"2fadb4c4667ecaf2",
|
485
|
+
"93331783b7ef3fc5",
|
486
|
+
"bc26f9821540f097",
|
487
|
+
"cc3fb9c2cb0edd3a"
|
488
|
+
],
|
489
|
+
"x": 34,
|
490
|
+
"y": 459,
|
491
|
+
"w": 552,
|
492
|
+
"h": 142
|
493
|
+
},
|
470
494
|
{
|
471
495
|
"id": "42e6796dddd9d4db",
|
472
496
|
"type": "processcube-engine-config",
|
@@ -487,6 +511,8 @@
|
|
487
511
|
"name": "Test",
|
488
512
|
"engine": "42e6796dddd9d4db",
|
489
513
|
"topic": "Test",
|
514
|
+
"workerConfig": "{}",
|
515
|
+
"workerConfigType": "json",
|
490
516
|
"x": 110,
|
491
517
|
"y": 180,
|
492
518
|
"wires": [
|
@@ -539,6 +565,8 @@
|
|
539
565
|
"name": "SampleError",
|
540
566
|
"engine": "42e6796dddd9d4db",
|
541
567
|
"topic": "SampleError",
|
568
|
+
"workerConfig": "{}",
|
569
|
+
"workerConfigType": "json",
|
542
570
|
"x": 130,
|
543
571
|
"y": 360,
|
544
572
|
"wires": [
|
@@ -798,6 +826,8 @@
|
|
798
826
|
"name": "Test_Auth",
|
799
827
|
"engine": "b78932d162d8d468",
|
800
828
|
"topic": "Test_Auth",
|
829
|
+
"workerConfig": "{}",
|
830
|
+
"workerConfigType": "json",
|
801
831
|
"x": 120,
|
802
832
|
"y": 180,
|
803
833
|
"wires": [
|
@@ -861,6 +891,8 @@
|
|
861
891
|
"name": "SampleError_Auth",
|
862
892
|
"engine": "b78932d162d8d468",
|
863
893
|
"topic": "SampleError_Auth",
|
894
|
+
"workerConfig": "{}",
|
895
|
+
"workerConfigType": "json",
|
864
896
|
"x": 150,
|
865
897
|
"y": 360,
|
866
898
|
"wires": [
|
@@ -1120,7 +1152,7 @@
|
|
1120
1152
|
"query": "payload",
|
1121
1153
|
"query_type": "msg",
|
1122
1154
|
"x": 180,
|
1123
|
-
"y":
|
1155
|
+
"y": 400,
|
1124
1156
|
"wires": [
|
1125
1157
|
[
|
1126
1158
|
"8ef39e83173d41e3"
|
@@ -1141,7 +1173,7 @@
|
|
1141
1173
|
"finalize": "",
|
1142
1174
|
"libs": [],
|
1143
1175
|
"x": 390,
|
1144
|
-
"y":
|
1176
|
+
"y": 400,
|
1145
1177
|
"wires": [
|
1146
1178
|
[
|
1147
1179
|
"f524b8cc35d56849"
|
@@ -1158,7 +1190,7 @@
|
|
1158
1190
|
"result": "payload.result",
|
1159
1191
|
"result_type": "msg",
|
1160
1192
|
"x": 580,
|
1161
|
-
"y":
|
1193
|
+
"y": 400,
|
1162
1194
|
"wires": [
|
1163
1195
|
[]
|
1164
1196
|
]
|
@@ -1171,7 +1203,7 @@
|
|
1171
1203
|
"name": "Demo to listen on a new usertask an finish them",
|
1172
1204
|
"info": "",
|
1173
1205
|
"x": 240,
|
1174
|
-
"y":
|
1206
|
+
"y": 280,
|
1175
1207
|
"wires": []
|
1176
1208
|
},
|
1177
1209
|
{
|
@@ -1186,7 +1218,7 @@
|
|
1186
1218
|
"query": "{}",
|
1187
1219
|
"query_type": "json",
|
1188
1220
|
"x": 160,
|
1189
|
-
"y":
|
1221
|
+
"y": 340,
|
1190
1222
|
"wires": [
|
1191
1223
|
[
|
1192
1224
|
"f7c7682e3a6adaaa"
|
@@ -1231,6 +1263,72 @@
|
|
1231
1263
|
]
|
1232
1264
|
]
|
1233
1265
|
},
|
1266
|
+
{
|
1267
|
+
"id": "2fadb4c4667ecaf2",
|
1268
|
+
"type": "usertask-input",
|
1269
|
+
"z": "fd3c725340de4f74",
|
1270
|
+
"g": "3f3c01daebb2d215",
|
1271
|
+
"name": "",
|
1272
|
+
"engine": "42e6796dddd9d4db",
|
1273
|
+
"query": "{\"flowNodeId\":\"gibt_es_nicht\"}",
|
1274
|
+
"query_type": "json",
|
1275
|
+
"sendtype": "array",
|
1276
|
+
"x": 300,
|
1277
|
+
"y": 560,
|
1278
|
+
"wires": [
|
1279
|
+
[
|
1280
|
+
"bc26f9821540f097"
|
1281
|
+
]
|
1282
|
+
]
|
1283
|
+
},
|
1284
|
+
{
|
1285
|
+
"id": "93331783b7ef3fc5",
|
1286
|
+
"type": "inject",
|
1287
|
+
"z": "fd3c725340de4f74",
|
1288
|
+
"g": "3f3c01daebb2d215",
|
1289
|
+
"name": "",
|
1290
|
+
"props": [],
|
1291
|
+
"repeat": "",
|
1292
|
+
"crontab": "",
|
1293
|
+
"once": false,
|
1294
|
+
"onceDelay": 0.1,
|
1295
|
+
"topic": "",
|
1296
|
+
"x": 130,
|
1297
|
+
"y": 560,
|
1298
|
+
"wires": [
|
1299
|
+
[
|
1300
|
+
"2fadb4c4667ecaf2"
|
1301
|
+
]
|
1302
|
+
]
|
1303
|
+
},
|
1304
|
+
{
|
1305
|
+
"id": "bc26f9821540f097",
|
1306
|
+
"type": "debug",
|
1307
|
+
"z": "fd3c725340de4f74",
|
1308
|
+
"g": "3f3c01daebb2d215",
|
1309
|
+
"name": "debug 34",
|
1310
|
+
"active": true,
|
1311
|
+
"tosidebar": true,
|
1312
|
+
"console": false,
|
1313
|
+
"tostatus": false,
|
1314
|
+
"complete": "false",
|
1315
|
+
"statusVal": "",
|
1316
|
+
"statusType": "auto",
|
1317
|
+
"x": 480,
|
1318
|
+
"y": 560,
|
1319
|
+
"wires": []
|
1320
|
+
},
|
1321
|
+
{
|
1322
|
+
"id": "cc3fb9c2cb0edd3a",
|
1323
|
+
"type": "comment",
|
1324
|
+
"z": "fd3c725340de4f74",
|
1325
|
+
"g": "3f3c01daebb2d215",
|
1326
|
+
"name": "Search UserTasks",
|
1327
|
+
"info": "",
|
1328
|
+
"x": 150,
|
1329
|
+
"y": 500,
|
1330
|
+
"wires": []
|
1331
|
+
},
|
1234
1332
|
{
|
1235
1333
|
"id": "c4f20aefe585bdad",
|
1236
1334
|
"type": "comment",
|
package/package.json
CHANGED
@@ -24,33 +24,38 @@ module.exports = function (RED) {
|
|
24
24
|
async (processNotification) => {
|
25
25
|
if (
|
26
26
|
config.processmodel != '' &&
|
27
|
-
config.processmodel != processNotification.processModelId
|
28
|
-
)
|
27
|
+
config.processmodel != processNotification.processModelId) {
|
29
28
|
return;
|
29
|
+
}
|
30
|
+
|
30
31
|
const newQuery = {
|
31
32
|
processInstanceId: processNotification.processInstanceId,
|
32
33
|
...query,
|
33
34
|
};
|
34
35
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
if (
|
40
|
-
matchingInstances.processInstances &&
|
41
|
-
matchingInstances.processInstances.length == 1
|
42
|
-
) {
|
43
|
-
const processInstance = matchingInstances.processInstances[0];
|
44
|
-
|
45
|
-
node.send({
|
46
|
-
payload: {
|
47
|
-
processInstanceId: processNotification.processInstanceId,
|
48
|
-
processModelId: processNotification.processModelId,
|
49
|
-
processInstance: processInstance,
|
50
|
-
action: 'starting',
|
51
|
-
type: 'processInstance',
|
52
|
-
},
|
36
|
+
try {
|
37
|
+
const matchingInstances = await client.processInstances.query(newQuery, {
|
38
|
+
identity: currentIdentity,
|
53
39
|
});
|
40
|
+
|
41
|
+
if (
|
42
|
+
matchingInstances.processInstances &&
|
43
|
+
matchingInstances.processInstances.length == 1
|
44
|
+
) {
|
45
|
+
const processInstance = matchingInstances.processInstances[0];
|
46
|
+
|
47
|
+
node.send({
|
48
|
+
payload: {
|
49
|
+
processInstanceId: processNotification.processInstanceId,
|
50
|
+
processModelId: processNotification.processModelId,
|
51
|
+
processInstance: processInstance,
|
52
|
+
action: 'starting',
|
53
|
+
type: 'processInstance',
|
54
|
+
},
|
55
|
+
});
|
56
|
+
}
|
57
|
+
} catch (error) {
|
58
|
+
node.error(error);
|
54
59
|
}
|
55
60
|
},
|
56
61
|
{ identity: currentIdentity }
|
@@ -60,34 +65,39 @@ module.exports = function (RED) {
|
|
60
65
|
async (processNotification) => {
|
61
66
|
if (
|
62
67
|
config.processmodel != '' &&
|
63
|
-
config.processmodel != processNotification.processModelId
|
64
|
-
)
|
68
|
+
config.processmodel != processNotification.processModelId) {
|
65
69
|
return;
|
70
|
+
}
|
71
|
+
|
66
72
|
const newQuery = {
|
67
73
|
processInstanceId: processNotification.processInstanceId,
|
68
74
|
...query,
|
69
75
|
};
|
70
76
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
if (
|
76
|
-
matchingInstances.processInstances &&
|
77
|
-
matchingInstances.processInstances.length == 1
|
78
|
-
) {
|
79
|
-
const processInstance = matchingInstances.processInstances[0];
|
80
|
-
node.send({
|
81
|
-
payload: {
|
82
|
-
processInstanceId: processNotification.processInstanceId,
|
83
|
-
processModelId: processNotification.processModelId,
|
84
|
-
flowNodeId: processNotification.flowNodeId,
|
85
|
-
token: processNotification.currentToken,
|
86
|
-
processInstance: processInstance,
|
87
|
-
action: 'started',
|
88
|
-
type: 'processInstance',
|
89
|
-
},
|
77
|
+
try {
|
78
|
+
const matchingInstances = await client.processInstances.query(newQuery, {
|
79
|
+
identity: currentIdentity,
|
90
80
|
});
|
81
|
+
|
82
|
+
if (
|
83
|
+
matchingInstances.processInstances &&
|
84
|
+
matchingInstances.processInstances.length == 1
|
85
|
+
) {
|
86
|
+
const processInstance = matchingInstances.processInstances[0];
|
87
|
+
node.send({
|
88
|
+
payload: {
|
89
|
+
processInstanceId: processNotification.processInstanceId,
|
90
|
+
processModelId: processNotification.processModelId,
|
91
|
+
flowNodeId: processNotification.flowNodeId,
|
92
|
+
token: processNotification.currentToken,
|
93
|
+
processInstance: processInstance,
|
94
|
+
action: 'started',
|
95
|
+
type: 'processInstance',
|
96
|
+
},
|
97
|
+
});
|
98
|
+
}
|
99
|
+
} catch (error) {
|
100
|
+
node.error(error);
|
91
101
|
}
|
92
102
|
},
|
93
103
|
{ identity: currentIdentity }
|
@@ -106,25 +116,29 @@ module.exports = function (RED) {
|
|
106
116
|
...query,
|
107
117
|
};
|
108
118
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
if (
|
114
|
-
matchingInstances.processInstances &&
|
115
|
-
matchingInstances.processInstances.length == 1
|
116
|
-
) {
|
117
|
-
const processInstance = matchingInstances.processInstances[0];
|
118
|
-
node.send({
|
119
|
-
payload: {
|
120
|
-
processInstanceId: processNotification.processInstanceId,
|
121
|
-
processModelId: processNotification.processModelId,
|
122
|
-
token: processNotification.currentToken,
|
123
|
-
processInstance: processInstance,
|
124
|
-
action: 'resumed',
|
125
|
-
type: 'processInstance',
|
126
|
-
},
|
119
|
+
try {
|
120
|
+
const matchingInstances = await client.processInstances.query(newQuery, {
|
121
|
+
identity: currentIdentity,
|
127
122
|
});
|
123
|
+
|
124
|
+
if (
|
125
|
+
matchingInstances.processInstances &&
|
126
|
+
matchingInstances.processInstances.length == 1
|
127
|
+
) {
|
128
|
+
const processInstance = matchingInstances.processInstances[0];
|
129
|
+
node.send({
|
130
|
+
payload: {
|
131
|
+
processInstanceId: processNotification.processInstanceId,
|
132
|
+
processModelId: processNotification.processModelId,
|
133
|
+
token: processNotification.currentToken,
|
134
|
+
processInstance: processInstance,
|
135
|
+
action: 'resumed',
|
136
|
+
type: 'processInstance',
|
137
|
+
},
|
138
|
+
});
|
139
|
+
}
|
140
|
+
} catch (error) {
|
141
|
+
node.error(error);
|
128
142
|
}
|
129
143
|
},
|
130
144
|
{ identity: currentIdentity }
|
@@ -143,26 +157,30 @@ module.exports = function (RED) {
|
|
143
157
|
...query,
|
144
158
|
};
|
145
159
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
if (
|
151
|
-
matchingInstances.processInstances &&
|
152
|
-
matchingInstances.processInstances.length == 1
|
153
|
-
) {
|
154
|
-
const processInstance = matchingInstances.processInstances[0];
|
155
|
-
node.send({
|
156
|
-
payload: {
|
157
|
-
processInstanceId: processNotification.processInstanceId,
|
158
|
-
processModelId: processNotification.processModelId,
|
159
|
-
flowNodeId: processNotification.flowNodeId,
|
160
|
-
token: processNotification.currentToken,
|
161
|
-
processInstance: processInstance,
|
162
|
-
action: 'finished',
|
163
|
-
type: 'processInstance',
|
164
|
-
},
|
160
|
+
try {
|
161
|
+
const matchingInstances = await client.processInstances.query(newQuery, {
|
162
|
+
identity: currentIdentity,
|
165
163
|
});
|
164
|
+
|
165
|
+
if (
|
166
|
+
matchingInstances.processInstances &&
|
167
|
+
matchingInstances.processInstances.length == 1
|
168
|
+
) {
|
169
|
+
const processInstance = matchingInstances.processInstances[0];
|
170
|
+
node.send({
|
171
|
+
payload: {
|
172
|
+
processInstanceId: processNotification.processInstanceId,
|
173
|
+
processModelId: processNotification.processModelId,
|
174
|
+
flowNodeId: processNotification.flowNodeId,
|
175
|
+
token: processNotification.currentToken,
|
176
|
+
processInstance: processInstance,
|
177
|
+
action: 'finished',
|
178
|
+
type: 'processInstance',
|
179
|
+
},
|
180
|
+
});
|
181
|
+
}
|
182
|
+
} catch (error) {
|
183
|
+
node.error(error);
|
166
184
|
}
|
167
185
|
},
|
168
186
|
{ identity: currentIdentity }
|
@@ -181,25 +199,28 @@ module.exports = function (RED) {
|
|
181
199
|
...query,
|
182
200
|
};
|
183
201
|
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
if (
|
189
|
-
matchingInstances.processInstances &&
|
190
|
-
matchingInstances.processInstances.length == 1
|
191
|
-
) {
|
192
|
-
const processInstance = matchingInstances.processInstances[0];
|
193
|
-
node.send({
|
194
|
-
payload: {
|
195
|
-
processInstanceId: processNotification.processInstanceId,
|
196
|
-
processModelId: processNotification.processModelId,
|
197
|
-
token: processNotification.currentToken,
|
198
|
-
processInstance: processInstance,
|
199
|
-
action: 'terminated',
|
200
|
-
type: 'processInstance',
|
201
|
-
},
|
202
|
+
try {
|
203
|
+
const matchingInstances = await client.processInstances.query(newQuery, {
|
204
|
+
identity: currentIdentity,
|
202
205
|
});
|
206
|
+
if (
|
207
|
+
matchingInstances.processInstances &&
|
208
|
+
matchingInstances.processInstances.length == 1
|
209
|
+
) {
|
210
|
+
const processInstance = matchingInstances.processInstances[0];
|
211
|
+
node.send({
|
212
|
+
payload: {
|
213
|
+
processInstanceId: processNotification.processInstanceId,
|
214
|
+
processModelId: processNotification.processModelId,
|
215
|
+
token: processNotification.currentToken,
|
216
|
+
processInstance: processInstance,
|
217
|
+
action: 'terminated',
|
218
|
+
type: 'processInstance',
|
219
|
+
},
|
220
|
+
});
|
221
|
+
}
|
222
|
+
} catch (error) {
|
223
|
+
node.error(error);
|
203
224
|
}
|
204
225
|
},
|
205
226
|
{ identity: currentIdentity }
|
@@ -218,25 +239,29 @@ module.exports = function (RED) {
|
|
218
239
|
...query,
|
219
240
|
};
|
220
241
|
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
if (
|
226
|
-
matchingInstances.processInstances &&
|
227
|
-
matchingInstances.processInstances.length == 1
|
228
|
-
) {
|
229
|
-
const processInstance = matchingInstances.processInstances[0];
|
230
|
-
node.send({
|
231
|
-
payload: {
|
232
|
-
processInstanceId: processNotification.processInstanceId,
|
233
|
-
processModelId: processNotification.processModelId,
|
234
|
-
token: processNotification.currentToken,
|
235
|
-
processInstance: processInstance,
|
236
|
-
action: 'error',
|
237
|
-
type: 'processInstance',
|
238
|
-
},
|
242
|
+
try {
|
243
|
+
const matchingInstances = await client.processInstances.query(newQuery, {
|
244
|
+
identity: currentIdentity,
|
239
245
|
});
|
246
|
+
|
247
|
+
if (
|
248
|
+
matchingInstances.processInstances &&
|
249
|
+
matchingInstances.processInstances.length == 1
|
250
|
+
) {
|
251
|
+
const processInstance = matchingInstances.processInstances[0];
|
252
|
+
node.send({
|
253
|
+
payload: {
|
254
|
+
processInstanceId: processNotification.processInstanceId,
|
255
|
+
processModelId: processNotification.processModelId,
|
256
|
+
token: processNotification.currentToken,
|
257
|
+
processInstance: processInstance,
|
258
|
+
action: 'error',
|
259
|
+
type: 'processInstance',
|
260
|
+
},
|
261
|
+
});
|
262
|
+
}
|
263
|
+
} catch (error) {
|
264
|
+
node.error(error);
|
240
265
|
}
|
241
266
|
},
|
242
267
|
{ identity: currentIdentity }
|
@@ -255,24 +280,28 @@ module.exports = function (RED) {
|
|
255
280
|
...query,
|
256
281
|
};
|
257
282
|
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
if (
|
263
|
-
matchingInstances.processInstances &&
|
264
|
-
matchingInstances.processInstances.length == 1
|
265
|
-
) {
|
266
|
-
const processInstance = matchingInstances.processInstances[0];
|
267
|
-
node.send({
|
268
|
-
payload: {
|
269
|
-
processInstanceId: processNotification.processInstanceId,
|
270
|
-
processModelId: processNotification.processModelId,
|
271
|
-
processInstance: processInstance,
|
272
|
-
action: 'owner-changed',
|
273
|
-
type: 'processInstance',
|
274
|
-
},
|
283
|
+
try {
|
284
|
+
const matchingInstances = await client.processInstances.query(newQuery, {
|
285
|
+
identity: currentIdentity,
|
275
286
|
});
|
287
|
+
|
288
|
+
if (
|
289
|
+
matchingInstances.processInstances &&
|
290
|
+
matchingInstances.processInstances.length == 1
|
291
|
+
) {
|
292
|
+
const processInstance = matchingInstances.processInstances[0];
|
293
|
+
node.send({
|
294
|
+
payload: {
|
295
|
+
processInstanceId: processNotification.processInstanceId,
|
296
|
+
processModelId: processNotification.processModelId,
|
297
|
+
processInstance: processInstance,
|
298
|
+
action: 'owner-changed',
|
299
|
+
type: 'processInstance',
|
300
|
+
},
|
301
|
+
});
|
302
|
+
}
|
303
|
+
} catch (error) {
|
304
|
+
node.error(error);
|
276
305
|
}
|
277
306
|
},
|
278
307
|
{ identity: currentIdentity }
|
@@ -291,24 +320,28 @@ module.exports = function (RED) {
|
|
291
320
|
...query,
|
292
321
|
};
|
293
322
|
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
if (
|
299
|
-
matchingInstances.processInstances &&
|
300
|
-
matchingInstances.processInstances.length == 1
|
301
|
-
) {
|
302
|
-
const processInstance = matchingInstances.processInstances[0];
|
303
|
-
node.send({
|
304
|
-
payload: {
|
305
|
-
processInstanceId: processNotification.processInstanceId,
|
306
|
-
processModelId: processNotification.processModelId,
|
307
|
-
processInstance: processInstance,
|
308
|
-
action: 'instances-deleted',
|
309
|
-
type: 'processInstance',
|
310
|
-
},
|
323
|
+
try {
|
324
|
+
const matchingInstances = await client.processInstances.query(newQuery, {
|
325
|
+
identity: currentIdentity,
|
311
326
|
});
|
327
|
+
|
328
|
+
if (
|
329
|
+
matchingInstances.processInstances &&
|
330
|
+
matchingInstances.processInstances.length == 1
|
331
|
+
) {
|
332
|
+
const processInstance = matchingInstances.processInstances[0];
|
333
|
+
node.send({
|
334
|
+
payload: {
|
335
|
+
processInstanceId: processNotification.processInstanceId,
|
336
|
+
processModelId: processNotification.processModelId,
|
337
|
+
processInstance: processInstance,
|
338
|
+
action: 'instances-deleted',
|
339
|
+
type: 'processInstance',
|
340
|
+
},
|
341
|
+
});
|
342
|
+
}
|
343
|
+
} catch (error) {
|
344
|
+
node.error(error);
|
312
345
|
}
|
313
346
|
},
|
314
347
|
{ identity: currentIdentity }
|
@@ -400,6 +433,7 @@ module.exports = function (RED) {
|
|
400
433
|
},
|
401
434
|
{ identity: currentIdentity }
|
402
435
|
);
|
436
|
+
|
403
437
|
});
|
404
438
|
|
405
439
|
node.on('close', () => {
|
@@ -17,9 +17,11 @@ module.exports = function (RED) {
|
|
17
17
|
|
18
18
|
query = {
|
19
19
|
...query,
|
20
|
-
identity:
|
20
|
+
identity: undefined,
|
21
21
|
};
|
22
22
|
|
23
|
+
node.log(`Querying process definitions with query: ${JSON.stringify(query)}`);
|
24
|
+
|
23
25
|
client.processDefinitions.getAll(query).then((matchingProcessDefinitions) => {
|
24
26
|
|
25
27
|
if (config.models_only && matchingProcessDefinitions.totalCount > 0) {
|
@@ -40,6 +42,8 @@ module.exports = function (RED) {
|
|
40
42
|
}
|
41
43
|
|
42
44
|
node.send(msg);
|
45
|
+
}).catch((error) => {
|
46
|
+
node.error(error);
|
43
47
|
});
|
44
48
|
});
|
45
49
|
}
|
@@ -20,27 +20,32 @@ module.exports = function (RED) {
|
|
20
20
|
function userTaskCallback() {
|
21
21
|
return async (userTaskNotification) => {
|
22
22
|
if (config.usertask != '' && config.usertask != userTaskNotification.flowNodeId) return;
|
23
|
+
|
23
24
|
const newQuery = {
|
24
25
|
flowNodeInstanceId: userTaskNotification.flowNodeInstanceId,
|
25
26
|
...query,
|
26
27
|
};
|
27
28
|
|
28
|
-
|
29
|
-
|
30
|
-
|
29
|
+
try {
|
30
|
+
const matchingFlowNodes = await client.userTasks.query(newQuery, {
|
31
|
+
identity: currentIdentity,
|
32
|
+
});
|
31
33
|
|
32
|
-
|
33
|
-
|
34
|
+
if (matchingFlowNodes.userTasks && matchingFlowNodes.userTasks.length == 1) {
|
35
|
+
const userTask = matchingFlowNodes.userTasks[0];
|
34
36
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
37
|
+
node.send({
|
38
|
+
payload: {
|
39
|
+
flowNodeInstanceId: userTaskNotification.flowNodeInstanceId,
|
40
|
+
userTaskEvent: userTaskNotification,
|
41
|
+
userTask: userTask,
|
42
|
+
action: config.eventtype,
|
43
|
+
type: 'usertask',
|
44
|
+
},
|
45
|
+
});
|
46
|
+
}
|
47
|
+
} catch (error) {
|
48
|
+
node.error(error);
|
44
49
|
}
|
45
50
|
};
|
46
51
|
}
|
@@ -79,7 +84,7 @@ module.exports = function (RED) {
|
|
79
84
|
currentIdentity = identity;
|
80
85
|
|
81
86
|
subscription = subscribe();
|
82
|
-
})
|
87
|
+
})
|
83
88
|
|
84
89
|
node.on('close', async () => {
|
85
90
|
if (node.engine && node.engine.engineClient && client) {
|
package/wait-for-usertask.js
CHANGED
@@ -27,23 +27,27 @@ module.exports = function (RED) {
|
|
27
27
|
...query
|
28
28
|
};
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
30
|
+
try {
|
31
|
+
const matchingFlowNodes = await client.userTasks.query(newQuery, { identity: currentIdentity });
|
32
|
+
|
33
|
+
if (matchingFlowNodes.userTasks && matchingFlowNodes.userTasks.length == 1) {
|
34
|
+
// remove subscription
|
35
|
+
client.userTasks.removeSubscription(subscription, currentIdentity);
|
36
|
+
|
37
|
+
const userTask = matchingFlowNodes.userTasks[0];
|
38
|
+
|
39
|
+
msg.payload = { userTask: userTask };
|
40
|
+
node.send(msg);
|
41
|
+
} else {
|
42
|
+
// nothing todo - wait for next notification
|
43
|
+
}
|
44
|
+
} catch (error) {
|
45
|
+
node.error(error);
|
42
46
|
}
|
43
47
|
|
44
48
|
}, { identity: currentIdentity });
|
45
49
|
|
46
|
-
node.log({"Handling old userTasks config.only_for_new": config.only_for_new});
|
50
|
+
node.log({ "Handling old userTasks config.only_for_new": config.only_for_new });
|
47
51
|
|
48
52
|
if (config.only_for_new === false) {
|
49
53
|
// only check suspended user tasks
|
@@ -52,18 +56,22 @@ module.exports = function (RED) {
|
|
52
56
|
...query
|
53
57
|
};
|
54
58
|
|
55
|
-
|
59
|
+
try {
|
60
|
+
const matchingFlowNodes = await client.userTasks.query(suspendedQuery, { identity: currentIdentity });
|
56
61
|
|
57
|
-
|
58
|
-
|
62
|
+
if (matchingFlowNodes.userTasks && matchingFlowNodes.userTasks.length >= 1) {
|
63
|
+
const userTask = matchingFlowNodes.userTasks[0];
|
59
64
|
|
60
|
-
|
61
|
-
|
65
|
+
msg.payload = { userTask: userTask };
|
66
|
+
node.send(msg);
|
62
67
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
68
|
+
// remove subscription
|
69
|
+
client.userTasks.removeSubscription(subscription, currentIdentity);
|
70
|
+
} else {
|
71
|
+
// let the *currentIdentity* be active
|
72
|
+
}
|
73
|
+
} catch (error) {
|
74
|
+
node.error(error);
|
67
75
|
}
|
68
76
|
}
|
69
77
|
};
|
@@ -84,7 +92,7 @@ module.exports = function (RED) {
|
|
84
92
|
|
85
93
|
node.on("close", async () => {
|
86
94
|
if (client != null && subscription != null) {
|
87
|
-
client.userTasks.removeSubscription(subscription, currentIdentity);
|
95
|
+
client.userTasks.removeSubscription(subscription, currentIdentity);
|
88
96
|
}
|
89
97
|
});
|
90
98
|
}
|