@5minds/node-red-contrib-processcube 1.1.4-feature-bc1698-m0kn1ci4 → 1.1.4

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.
@@ -16,6 +16,7 @@ services:
16
16
 
17
17
  engine:
18
18
  image: 5minds/processcube_engine:2024-1
19
+ #image: 5minds/processcube_engine:17.1.2
19
20
  ports:
20
21
  - 8000:8000
21
22
  volumes:
@@ -8,6 +8,7 @@
8
8
  },
9
9
  inputs: 1,
10
10
  outputs: 1,
11
+ align: 'right',
11
12
  icon: 'externaltask_error.svg',
12
13
  label: function () {
13
14
  return this.name || 'externaltask-error';
@@ -45,6 +45,11 @@ A node which listens for events triggered by externaltasks
45
45
 
46
46
  ## Outputs
47
47
 
48
+ : flowNodeInstanceId (string): The unique identifier for the flow node instance.
49
+ : externalTaskEvent (Object): An Object containing the event data returned by the engine.
50
+ : action (string): The event that occured.
51
+ : type (string): The target of the event.
52
+
48
53
  ### References
49
54
 
50
55
  - [The ProcessCube Developer Network](https://processcube.io) - All documentation for the ProcessCube© platform
@@ -31,27 +31,21 @@ module.exports = function (RED) {
31
31
  }
32
32
 
33
33
  async function subscribe() {
34
- const eventHandlers = {
35
- created: () =>
36
- client.notification.onExternalTaskCreated(externalTaskCallback('created'), {
34
+ switch (config.eventtype) {
35
+ case 'created':
36
+ return await client.notification.onExternalTaskCreated(externalTaskCallback(), {
37
37
  identity: currentIdentity,
38
- }),
39
- locked: () =>
40
- client.notification.onExternalTaskLocked(externalTaskCallback('locked'), {
38
+ });
39
+ case 'locked':
40
+ return await client.notification.onExternalTaskLocked(externalTaskCallback(), {
41
41
  identity: currentIdentity,
42
- }),
43
- unlocked: () =>
44
- client.notification.onExternalTaskUnlocked(externalTaskCallback('unlocked'), {
42
+ });
43
+ case 'unlocked':
44
+ return await client.notification.onExternalTaskUnlocked(externalTaskCallback(), {
45
45
  identity: currentIdentity,
46
- }),
47
- };
48
-
49
- const handler = eventHandlers[config.eventtype];
50
-
51
- if (handler) {
52
- return await handler();
53
- } else {
54
- console.error('No such event: ' + config.eventtype);
46
+ });
47
+ default:
48
+ console.error('no such event: ' + config.eventtype);
55
49
  }
56
50
  }
57
51
 
@@ -37,9 +37,9 @@ the connected ProcessCube Engine for processing.
37
37
 
38
38
  ## Outputs
39
39
 
40
- : payload (string) : Defines the input of the external task token
40
+ : payload (string) : The payload the external task was started with.
41
41
  : task (object) : The external task object
42
- : flowNodeInstanceId : The Id of the external task, which is needed to complete the task
42
+ : flowNodeInstanceId : The unique identifier of the external task, which is needed to complete the task
43
43
 
44
44
  ### Details
45
45
 
@@ -6,7 +6,6 @@
6
6
  name: { value: '' },
7
7
  engine: { value: '', type: 'processcube-engine-config' },
8
8
  messagename: { value: '', required: true },
9
- processInstanceId: { value: '' },
10
9
  },
11
10
  inputs: 1,
12
11
  outputs: 1,
@@ -30,24 +29,21 @@
30
29
  <label for="node-input-messagename"><i class="fa fa-tag"></i> Message Name</label>
31
30
  <input type="text" id="node-input-messagename" placeholder="Name of the Message-Event" />
32
31
  </div>
33
- <div class="form-row">
34
- <label for="node-input-processinstanceid"><i class="fa fa-tag"></i> Process Instance Id</label>
35
- <input type="text" id="node-input-processinstanceid" placeholder="Id of the recipient process instance" />
36
- </div>
37
32
  </script>
38
33
 
39
34
  <script type="text/markdown" data-help-name="externaltask-input">
40
- A Message event to an intermediate message event can be triggert.
35
+ A node to trigger an event that will be send to the corresponding intermediate message event in the connected ProcessCube Engine.
41
36
 
42
37
  From the config the `messagename` and the `processInstanceId` must be set.
43
38
 
44
39
  ## Inputs
45
40
 
46
- : payload (Object) : Will sent to the event and used an new token payload.
41
+ : payload (Object) : The payload will be sent to the message event and be used as a new token payload.
42
+ : processInstanceId (string) : The process instance where the message event should be triggered.
47
43
 
48
44
  ### References
49
45
 
50
46
  - [The ProcessCube Developer Network](https://processcube.io) - All documentation for the ProcessCube&copy; platform
51
47
  - [Node-RED Integration in ProcessCube&copy;](https://processcube.io/docs/node-red) - Node-RED integration in ProcessCube&copy;
52
-
48
+
53
49
  </script>
@@ -15,7 +15,7 @@ module.exports = function (RED) {
15
15
 
16
16
  engine.engineClient.events
17
17
  .triggerMessageEvent(config.messagename, {
18
- processInstanceId: config.processinstanceid,
18
+ processInstanceId: msg.processinstanceid,
19
19
  payload: msg.payload,
20
20
  identity: engine.identity,
21
21
  })
@@ -202,14 +202,14 @@
202
202
  "color": "#a4a4a4"
203
203
  },
204
204
  "nodes": [
205
- "f7a9604a17188737",
206
205
  "020d34cd4ab43900",
207
- "1db0ae57c1b8486b",
208
- "127bc6e092c5724e"
206
+ "127bc6e092c5724e",
207
+ "394bf2c574d29c0d",
208
+ "30354355d2a0eeb8"
209
209
  ],
210
210
  "x": 34,
211
211
  "y": 19,
212
- "w": 452,
212
+ "w": 532,
213
213
  "h": 202
214
214
  },
215
215
  {
@@ -226,17 +226,16 @@
226
226
  "color": "#a4a4a4"
227
227
  },
228
228
  "nodes": [
229
- "ae0583e83c762956",
230
229
  "f7c7682e3a6adaaa",
231
- "a2fb6369b16c12fa",
232
230
  "8ef39e83173d41e3",
233
231
  "f524b8cc35d56849",
234
- "9fb4017c1d0ac7c9"
232
+ "9fb4017c1d0ac7c9",
233
+ "fc23f271b106648f"
235
234
  ],
236
235
  "x": 34,
237
236
  "y": 259,
238
237
  "w": 652,
239
- "h": 262
238
+ "h": 202
240
239
  },
241
240
  {
242
241
  "id": "a71a168415778e2c",
@@ -353,14 +352,14 @@
353
352
  "color": "#a4a4a4"
354
353
  },
355
354
  "nodes": [
356
- "81a5b763cddfa482",
357
- "9bfd3131d8d4529e",
358
- "fcfec4ae86b4aec2",
359
- "c4f20aefe585bdad"
355
+ "c4f20aefe585bdad",
356
+ "451fc49b81cfe869",
357
+ "07e2258a732baddb",
358
+ "58202f3750a9762b"
360
359
  ],
361
360
  "x": 54,
362
361
  "y": 39,
363
- "w": 452,
362
+ "w": 432,
364
363
  "h": 202
365
364
  },
366
365
  {
@@ -377,17 +376,16 @@
377
376
  "color": "#a4a4a4"
378
377
  },
379
378
  "nodes": [
380
- "59f3d5ea3d920f94",
381
379
  "682a3e6e49c407c0",
382
- "30ac2bbbc0d63b17",
383
380
  "5c9668cbe4b31919",
384
381
  "693e6d63e82ee961",
385
- "c63cac30d2627c52"
382
+ "c63cac30d2627c52",
383
+ "771e1802a60ea5cc"
386
384
  ],
387
385
  "x": 54,
388
386
  "y": 279,
389
- "w": 652,
390
- "h": 262
387
+ "w": 632,
388
+ "h": 202
391
389
  },
392
390
  {
393
391
  "id": "e17f65347110575e",
@@ -1075,29 +1073,13 @@
1075
1073
  "y": 540,
1076
1074
  "wires": []
1077
1075
  },
1078
- {
1079
- "id": "f7a9604a17188737",
1080
- "type": "usertask-new-listener",
1081
- "z": "fd3c725340de4f74",
1082
- "g": "887f3fb69ad1d1fb",
1083
- "name": "New User Task",
1084
- "engine": "42e6796dddd9d4db",
1085
- "multisend": false,
1086
- "x": 160,
1087
- "y": 120,
1088
- "wires": [
1089
- [
1090
- "020d34cd4ab43900"
1091
- ]
1092
- ]
1093
- },
1094
1076
  {
1095
1077
  "id": "020d34cd4ab43900",
1096
1078
  "type": "debug",
1097
1079
  "z": "fd3c725340de4f74",
1098
1080
  "g": "887f3fb69ad1d1fb",
1099
1081
  "name": "Show User Task",
1100
- "active": true,
1082
+ "active": false,
1101
1083
  "tosidebar": true,
1102
1084
  "console": false,
1103
1085
  "tostatus": false,
@@ -1105,26 +1087,10 @@
1105
1087
  "targetType": "msg",
1106
1088
  "statusVal": "",
1107
1089
  "statusType": "auto",
1108
- "x": 360,
1090
+ "x": 440,
1109
1091
  "y": 120,
1110
1092
  "wires": []
1111
1093
  },
1112
- {
1113
- "id": "1db0ae57c1b8486b",
1114
- "type": "usertask-finished-listener",
1115
- "z": "fd3c725340de4f74",
1116
- "g": "887f3fb69ad1d1fb",
1117
- "name": "Finished User Task",
1118
- "engine": "42e6796dddd9d4db",
1119
- "multisend": false,
1120
- "x": 150,
1121
- "y": 180,
1122
- "wires": [
1123
- [
1124
- "020d34cd4ab43900"
1125
- ]
1126
- ]
1127
- },
1128
1094
  {
1129
1095
  "id": "127bc6e092c5724e",
1130
1096
  "type": "comment",
@@ -1136,22 +1102,6 @@
1136
1102
  "y": 60,
1137
1103
  "wires": []
1138
1104
  },
1139
- {
1140
- "id": "ae0583e83c762956",
1141
- "type": "usertask-new-listener",
1142
- "z": "fd3c725340de4f74",
1143
- "g": "72d3db13edc2486b",
1144
- "name": "",
1145
- "engine": "42e6796dddd9d4db",
1146
- "multisend": true,
1147
- "x": 160,
1148
- "y": 360,
1149
- "wires": [
1150
- [
1151
- "a2fb6369b16c12fa"
1152
- ]
1153
- ]
1154
- },
1155
1105
  {
1156
1106
  "id": "f7c7682e3a6adaaa",
1157
1107
  "type": "usertask-input",
@@ -1163,7 +1113,7 @@
1163
1113
  "query_type": "msg",
1164
1114
  "force_send_array": false,
1165
1115
  "multisend": false,
1166
- "x": 380,
1116
+ "x": 180,
1167
1117
  "y": 420,
1168
1118
  "wires": [
1169
1119
  [
@@ -1171,27 +1121,6 @@
1171
1121
  ]
1172
1122
  ]
1173
1123
  },
1174
- {
1175
- "id": "a2fb6369b16c12fa",
1176
- "type": "function",
1177
- "z": "fd3c725340de4f74",
1178
- "g": "72d3db13edc2486b",
1179
- "name": "query",
1180
- "func": "msg.payload = {\n flowNodeInstanceId: msg.payload.flowNodeInstanceId,\n flowNodeId: \"user_task\"\n};\n\nreturn msg;",
1181
- "outputs": 1,
1182
- "timeout": 0,
1183
- "noerr": 0,
1184
- "initialize": "",
1185
- "finalize": "",
1186
- "libs": [],
1187
- "x": 210,
1188
- "y": 420,
1189
- "wires": [
1190
- [
1191
- "f7c7682e3a6adaaa"
1192
- ]
1193
- ]
1194
- },
1195
1124
  {
1196
1125
  "id": "8ef39e83173d41e3",
1197
1126
  "type": "function",
@@ -1206,7 +1135,7 @@
1206
1135
  "finalize": "",
1207
1136
  "libs": [],
1208
1137
  "x": 390,
1209
- "y": 480,
1138
+ "y": 420,
1210
1139
  "wires": [
1211
1140
  [
1212
1141
  "f524b8cc35d56849"
@@ -1223,7 +1152,7 @@
1223
1152
  "result": "payload.result",
1224
1153
  "result_type": "msg",
1225
1154
  "x": 580,
1226
- "y": 480,
1155
+ "y": 420,
1227
1156
  "wires": [
1228
1157
  []
1229
1158
  ]
@@ -1240,52 +1169,59 @@
1240
1169
  "wires": []
1241
1170
  },
1242
1171
  {
1243
- "id": "81a5b763cddfa482",
1244
- "type": "usertask-new-listener",
1245
- "z": "90fa3991405c6248",
1246
- "g": "4f03c1eb4784b442",
1247
- "name": "New User Task",
1248
- "engine": "b78932d162d8d468",
1249
- "multisend": false,
1250
- "x": 180,
1251
- "y": 140,
1172
+ "id": "fc23f271b106648f",
1173
+ "type": "usertask-event-listener",
1174
+ "z": "fd3c725340de4f74",
1175
+ "g": "72d3db13edc2486b",
1176
+ "name": "",
1177
+ "engine": "42e6796dddd9d4db",
1178
+ "usertask": "user_task",
1179
+ "eventtype": "new",
1180
+ "query": "{}",
1181
+ "query_type": "json",
1182
+ "x": 160,
1183
+ "y": 360,
1252
1184
  "wires": [
1253
1185
  [
1254
- "9bfd3131d8d4529e"
1186
+ "f7c7682e3a6adaaa"
1255
1187
  ]
1256
1188
  ]
1257
1189
  },
1258
1190
  {
1259
- "id": "9bfd3131d8d4529e",
1260
- "type": "debug",
1261
- "z": "90fa3991405c6248",
1262
- "g": "4f03c1eb4784b442",
1263
- "name": "Show User Task",
1264
- "active": true,
1265
- "tosidebar": true,
1266
- "console": false,
1267
- "tostatus": false,
1268
- "complete": "payload",
1269
- "targetType": "msg",
1270
- "statusVal": "",
1271
- "statusType": "auto",
1272
- "x": 380,
1273
- "y": 140,
1274
- "wires": []
1191
+ "id": "394bf2c574d29c0d",
1192
+ "type": "usertask-event-listener",
1193
+ "z": "fd3c725340de4f74",
1194
+ "g": "887f3fb69ad1d1fb",
1195
+ "name": "",
1196
+ "engine": "42e6796dddd9d4db",
1197
+ "usertask": "user_task",
1198
+ "eventtype": "new",
1199
+ "query": "{}",
1200
+ "query_type": "json",
1201
+ "x": 160,
1202
+ "y": 120,
1203
+ "wires": [
1204
+ [
1205
+ "020d34cd4ab43900"
1206
+ ]
1207
+ ]
1275
1208
  },
1276
1209
  {
1277
- "id": "fcfec4ae86b4aec2",
1278
- "type": "usertask-finished-listener",
1279
- "z": "90fa3991405c6248",
1280
- "g": "4f03c1eb4784b442",
1281
- "name": "Finished User Task",
1282
- "engine": "b78932d162d8d468",
1283
- "multisend": false,
1284
- "x": 170,
1285
- "y": 200,
1210
+ "id": "30354355d2a0eeb8",
1211
+ "type": "usertask-event-listener",
1212
+ "z": "fd3c725340de4f74",
1213
+ "g": "887f3fb69ad1d1fb",
1214
+ "name": "",
1215
+ "engine": "42e6796dddd9d4db",
1216
+ "usertask": "user_task",
1217
+ "eventtype": "finished",
1218
+ "query": "{}",
1219
+ "query_type": "json",
1220
+ "x": 160,
1221
+ "y": 180,
1286
1222
  "wires": [
1287
1223
  [
1288
- "9bfd3131d8d4529e"
1224
+ "020d34cd4ab43900"
1289
1225
  ]
1290
1226
  ]
1291
1227
  },
@@ -1300,22 +1236,6 @@
1300
1236
  "y": 80,
1301
1237
  "wires": []
1302
1238
  },
1303
- {
1304
- "id": "59f3d5ea3d920f94",
1305
- "type": "usertask-new-listener",
1306
- "z": "90fa3991405c6248",
1307
- "g": "a135da7e3b76f6dd",
1308
- "name": "",
1309
- "engine": "b78932d162d8d468",
1310
- "multisend": true,
1311
- "x": 180,
1312
- "y": 380,
1313
- "wires": [
1314
- [
1315
- "30ac2bbbc0d63b17"
1316
- ]
1317
- ]
1318
- },
1319
1239
  {
1320
1240
  "id": "682a3e6e49c407c0",
1321
1241
  "type": "usertask-input",
@@ -1327,7 +1247,7 @@
1327
1247
  "query_type": "msg",
1328
1248
  "force_send_array": false,
1329
1249
  "multisend": false,
1330
- "x": 400,
1250
+ "x": 200,
1331
1251
  "y": 440,
1332
1252
  "wires": [
1333
1253
  [
@@ -1335,27 +1255,6 @@
1335
1255
  ]
1336
1256
  ]
1337
1257
  },
1338
- {
1339
- "id": "30ac2bbbc0d63b17",
1340
- "type": "function",
1341
- "z": "90fa3991405c6248",
1342
- "g": "a135da7e3b76f6dd",
1343
- "name": "query",
1344
- "func": "msg.payload = {\n flowNodeInstanceId: msg.payload.flowNodeInstanceId,\n flowNodeId: \"user_task_auth\"\n};\n\nreturn msg;",
1345
- "outputs": 1,
1346
- "timeout": 0,
1347
- "noerr": 0,
1348
- "initialize": "",
1349
- "finalize": "",
1350
- "libs": [],
1351
- "x": 230,
1352
- "y": 440,
1353
- "wires": [
1354
- [
1355
- "682a3e6e49c407c0"
1356
- ]
1357
- ]
1358
- },
1359
1258
  {
1360
1259
  "id": "5c9668cbe4b31919",
1361
1260
  "type": "function",
@@ -1369,8 +1268,8 @@
1369
1268
  "initialize": "",
1370
1269
  "finalize": "",
1371
1270
  "libs": [],
1372
- "x": 410,
1373
- "y": 500,
1271
+ "x": 390,
1272
+ "y": 440,
1374
1273
  "wires": [
1375
1274
  [
1376
1275
  "693e6d63e82ee961"
@@ -1386,8 +1285,8 @@
1386
1285
  "engine": "b78932d162d8d468",
1387
1286
  "result": "payload.result",
1388
1287
  "result_type": "msg",
1389
- "x": 600,
1390
- "y": 500,
1288
+ "x": 580,
1289
+ "y": 440,
1391
1290
  "wires": [
1392
1291
  []
1393
1292
  ]
@@ -1403,6 +1302,80 @@
1403
1302
  "y": 320,
1404
1303
  "wires": []
1405
1304
  },
1305
+ {
1306
+ "id": "771e1802a60ea5cc",
1307
+ "type": "usertask-event-listener",
1308
+ "z": "90fa3991405c6248",
1309
+ "g": "a135da7e3b76f6dd",
1310
+ "name": "",
1311
+ "engine": "b78932d162d8d468",
1312
+ "usertask": "user_task_auth",
1313
+ "eventtype": "new",
1314
+ "query": "{}",
1315
+ "query_type": "json",
1316
+ "x": 180,
1317
+ "y": 380,
1318
+ "wires": [
1319
+ [
1320
+ "682a3e6e49c407c0"
1321
+ ]
1322
+ ]
1323
+ },
1324
+ {
1325
+ "id": "451fc49b81cfe869",
1326
+ "type": "usertask-event-listener",
1327
+ "z": "90fa3991405c6248",
1328
+ "g": "4f03c1eb4784b442",
1329
+ "name": "",
1330
+ "engine": "b78932d162d8d468",
1331
+ "usertask": "user_task_auth",
1332
+ "eventtype": "new",
1333
+ "query": "{}",
1334
+ "query_type": "json",
1335
+ "x": 180,
1336
+ "y": 140,
1337
+ "wires": [
1338
+ [
1339
+ "58202f3750a9762b"
1340
+ ]
1341
+ ]
1342
+ },
1343
+ {
1344
+ "id": "07e2258a732baddb",
1345
+ "type": "usertask-event-listener",
1346
+ "z": "90fa3991405c6248",
1347
+ "g": "4f03c1eb4784b442",
1348
+ "name": "",
1349
+ "engine": "b78932d162d8d468",
1350
+ "usertask": "user_task_auth",
1351
+ "eventtype": "finished",
1352
+ "query": "{}",
1353
+ "query_type": "json",
1354
+ "x": 180,
1355
+ "y": 200,
1356
+ "wires": [
1357
+ [
1358
+ "58202f3750a9762b"
1359
+ ]
1360
+ ]
1361
+ },
1362
+ {
1363
+ "id": "58202f3750a9762b",
1364
+ "type": "debug",
1365
+ "z": "90fa3991405c6248",
1366
+ "g": "4f03c1eb4784b442",
1367
+ "name": "debug 31",
1368
+ "active": false,
1369
+ "tosidebar": true,
1370
+ "console": false,
1371
+ "tostatus": false,
1372
+ "complete": "false",
1373
+ "statusVal": "",
1374
+ "statusType": "auto",
1375
+ "x": 380,
1376
+ "y": 140,
1377
+ "wires": []
1378
+ },
1406
1379
  {
1407
1380
  "id": "baa5d814f2e1f1d8",
1408
1381
  "type": "processinstance-query",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@5minds/node-red-contrib-processcube",
3
- "version": "1.1.4-feature-bc1698-m0kn1ci4",
3
+ "version": "1.1.4",
4
4
  "license": "MIT",
5
5
  "description": "Node-RED nodes for ProcessCube",
6
6
  "scripts": {
@@ -41,6 +41,7 @@
41
41
  "externaltaskError": "externaltask-error.js",
42
42
  "externaltaskEventListener": "externaltask-event-listener.js",
43
43
  "processStart": "process-start.js",
44
+ "processTerminate": "process-terminate.js",
44
45
  "processEventListener": "process-event-listener.js",
45
46
  "processcubeEngineConfig": "processcube-engine-config.js",
46
47
  "ProcessinstanceQuery": "processinstance-query.js",
@@ -75,6 +75,95 @@ A node which listens for events triggered by processes
75
75
 
76
76
  ## Outputs
77
77
 
78
+ ### starting
79
+
80
+ : processInstanceId (string): The unique identifier for the process instance.
81
+ : processModelId (string): The id of the process model.
82
+ : processInstance (Object): An Object representing the process instance data.
83
+ : action (string): The event that occured.
84
+ : type (string): The target of the event.
85
+
86
+ ### started
87
+
88
+ : processInstanceId (string): The unique identifier for the process instance.
89
+ : processModelId (string): The id of the process model.
90
+ : flowNodeId (string): The id of the flowNode the process was started with.
91
+ : token (Object): The start token of the process instance.
92
+ : processInstance (Object): An Object representing the process instance data.
93
+ : action (string): The event that occured.
94
+ : type (string): The target of the event.
95
+
96
+ ### resumed
97
+
98
+ : processInstanceId (string): The unique identifier for the process instance.
99
+ : processModelId (string): The id of the process model.
100
+ : token (Object): The current token of the process instance.
101
+ : processInstance (Object): An Object representing the process instance data.
102
+ : action (string): The event that occured.
103
+ : type (string): The target of the event.
104
+
105
+ ### finished
106
+
107
+ : processInstanceId (string): The unique identifier for the process instance.
108
+ : processModelId (string): The id of the process model.
109
+ : flowNodeId (string): The id of the flowNode the process was finished with.
110
+ : token (Object): The end token of the process instance.
111
+ : processInstance (Object): An Object representing the process instance data.
112
+ : action (string): The event that occured.
113
+ : type (string): The target of the event.
114
+
115
+ ### terminated
116
+
117
+ : processInstanceId (string): The unique identifier for the process instance.
118
+ : processModelId (string): The id of the process model.
119
+ : token (Object): The current token of the process instance.
120
+ : processInstance (Object): An Object representing the process instance data.
121
+ : action (string): The event that occured.
122
+ : type (string): The target of the event.
123
+
124
+ ### error
125
+
126
+ : processInstanceId (string): The unique identifier for the process instance.
127
+ : processModelId (string): The id of the process model.
128
+ : token (Object): The current token of the process instance.
129
+ : processInstance (Object): An Object representing the process instance data.
130
+ : action (string): The event that occured.
131
+ : type (string): The target of the event.
132
+
133
+ ### owner-changed
134
+
135
+ : processInstanceId (string): The unique identifier for the process instance.
136
+ : processModelId (string): The id of the process model.
137
+ : processInstance (Object): An Object representing the process instance data.
138
+ : action (string): The event that occured.
139
+ : type (string): The target of the event.
140
+
141
+ ### instances-deleted
142
+
143
+ : processInstanceId (string): The unique identifier for the process instance.
144
+ : processModelId (string): The id of the process model.
145
+ : processInstance (Object): An Object representing the process instance data.
146
+ : action (string): The event that occured.
147
+ : type (string): The target of the event.
148
+
149
+ ### is-executable-changed
150
+
151
+ : processModelId (string): The id of the process model.
152
+ : action (string): The event that occured.
153
+ : type (string): The target of the event.
154
+
155
+ ### deployed
156
+
157
+ : processModelId (string): The id of the process model.
158
+ : action (string): The event that occured.
159
+ : type (string): The target of the event.
160
+
161
+ ### undeployed
162
+
163
+ : processModelId (string): The id of the process model.
164
+ : action (string): The event that occured.
165
+ : type (string): The target of the event.
166
+
78
167
  ### References
79
168
 
80
169
  - [The ProcessCube Developer Network](https://processcube.io) - All documentation for the ProcessCube&copy; platform
@@ -43,10 +43,15 @@ The `processModelId` and `startEventId` can be set in the message object to over
43
43
 
44
44
  ## Inputs
45
45
 
46
- : payload (Object) : Will be used as the input for the process.
46
+ : payload (Object) : Will be used as the start token for the process.
47
47
  : processModelId (String) : Will be used as the process model and override the configured `Processmodel`.
48
48
  : startEventId (String) : Will be used as the start event and override the configured `Startevent`.
49
49
 
50
+ ## Outputs
51
+
52
+ : processInstanceId (string) : The unique identifier of the started process instance.
53
+ : correlationId (string) : The unique correlation identifier of the started process instance.
54
+
50
55
  ### References
51
56
 
52
57
  - [The ProcessCube Developer Network](https://processcube.io) - All documentation for the ProcessCube&copy; platform
@@ -0,0 +1,45 @@
1
+ <script type="text/javascript">
2
+ RED.nodes.registerType('process-terminate', {
3
+ category: 'ProcessCube',
4
+ color: '#02AFD6',
5
+ defaults: {
6
+ name: { value: '' },
7
+ engine: { value: '', type: 'processcube-engine-config' },
8
+ },
9
+ inputs: 1,
10
+ outputs: 1,
11
+ icon: 'font-awesome/fa-sign-in',
12
+ label: function () {
13
+ return this.name || 'process-terminate';
14
+ },
15
+ });
16
+ </script>
17
+
18
+ <script type="text/html" data-template-name="process-terminate">
19
+ <div class="form-row">
20
+ <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
21
+ <input type="text" id="node-input-name" placeholder="Name" />
22
+ </div>
23
+ <div class="form-row">
24
+ <label for="node-input-engine"><i class="fa fa-tag"></i> Engine-URL</label>
25
+ <input type="text" id="node-input-engine" placeholder="Engine-URL" />
26
+ </div>
27
+ </script>
28
+
29
+ <script type="text/markdown" data-help-name="process-terminate">
30
+ Terminate an instance of a process model in the ProcessCube.
31
+
32
+ ## Inputs
33
+
34
+ : payload (string): The id of the processinstance that is going to be terminated.
35
+
36
+ ## Outputs
37
+
38
+ : payload (string): The id of the processinstance that was terminated.
39
+
40
+ ### References
41
+
42
+ - [The ProcessCube Developer Network](https://processcube.io) - All documentation for the ProcessCube&copy; platform
43
+ - [Node-RED Integration in ProcessCube&copy;](https://processcube.io/docs/node-red) - Node-RED integration in ProcessCube&copy;
44
+
45
+ </script>
@@ -0,0 +1,27 @@
1
+ module.exports = function (RED) {
2
+ function ProcessTerminate(config) {
3
+ RED.nodes.createNode(this, config);
4
+ var node = this;
5
+
6
+ node.on('input', function (msg) {
7
+ const engine = RED.nodes.getNode(config.engine);
8
+ const client = engine.engineClient;
9
+
10
+ if (!client) {
11
+ node.error('No engine configured.');
12
+ return;
13
+ }
14
+
15
+ client.processInstances
16
+ .terminateProcessInstance(msg.payload, engine.identity)
17
+ .then(() => {
18
+ node.send(msg);
19
+ })
20
+ .catch((error) => {
21
+ node.error(error);
22
+ });
23
+ });
24
+ }
25
+
26
+ RED.nodes.registerType('process-terminate', ProcessTerminate);
27
+ };
@@ -61,7 +61,7 @@
61
61
  </script>
62
62
 
63
63
  <script type="text/markdown" data-help-name="processdefinition-query">
64
- Query process definitions or process models from the ProcessCube engine.
64
+ A node to query process definition on the ProcessCube Engine.
65
65
 
66
66
  The `query` can be given a direkt query field from the configutation or a message property.
67
67
 
@@ -71,6 +71,11 @@ Only models can be queried by setting the `models_only` flag.
71
71
 
72
72
  : payload (Object | JSON) : Will be used as the input for the query or can be directly set as JSON.
73
73
 
74
+ ## Outputs
75
+
76
+ : processDefinitions / models (Array) : The processDefinitions / models that matched the query.
77
+ : totalCount (number) : The number of matches.
78
+
74
79
  ### References
75
80
 
76
81
  - [The ProcessCube Developer Network](https://processcube.io) - All documentation for the ProcessCube&copy; platform
@@ -0,0 +1,88 @@
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="Call-Activity-Sample_Definition" targetNamespace="http://bpmn.io/schema/bpmn" exporter="5Minds Studio" exporterVersion="1">
3
+ <bpmn:collaboration id="Collaboration_1cidyxu" name="">
4
+ <bpmn:participant id="Participant_0px403d" name="Call-Activity-Sample" processRef="Call-Activity-Sample_Process" />
5
+ </bpmn:collaboration>
6
+ <bpmn:process id="Call-Activity-Sample_Process" name="Call-Activity-Sample" isExecutable="true">
7
+ <bpmn:laneSet>
8
+ <bpmn:lane id="Lane_1xzf0d3" name="Lane">
9
+ <bpmn:flowNodeRef>StartEvent_1</bpmn:flowNodeRef>
10
+ <bpmn:flowNodeRef>Activity_1483lxt</bpmn:flowNodeRef>
11
+ <bpmn:flowNodeRef>Event_051opo1</bpmn:flowNodeRef>
12
+ <bpmn:flowNodeRef>Activity_1m883u3</bpmn:flowNodeRef>
13
+ </bpmn:lane>
14
+ </bpmn:laneSet>
15
+ <bpmn:startEvent id="StartEvent_1" name="Start">
16
+ <bpmn:outgoing>Flow_0jchwpf</bpmn:outgoing>
17
+ </bpmn:startEvent>
18
+ <bpmn:sequenceFlow id="Flow_0jchwpf" sourceRef="StartEvent_1" targetRef="Activity_1483lxt" />
19
+ <bpmn:scriptTask id="Activity_1483lxt" name="make multi">
20
+ <bpmn:incoming>Flow_0jchwpf</bpmn:incoming>
21
+ <bpmn:outgoing>Flow_1kbc11o</bpmn:outgoing>
22
+ <bpmn:script>const data = [
23
+ {
24
+ "uid": 14200
25
+ },
26
+ {
27
+ "uid": 14201
28
+ }
29
+ ];
30
+
31
+ return data;</bpmn:script>
32
+ </bpmn:scriptTask>
33
+ <bpmn:sequenceFlow id="Flow_1kbc11o" sourceRef="Activity_1483lxt" targetRef="Activity_1m883u3" />
34
+ <bpmn:endEvent id="Event_051opo1">
35
+ <bpmn:incoming>Flow_0pjaqpi</bpmn:incoming>
36
+ </bpmn:endEvent>
37
+ <bpmn:sequenceFlow id="Flow_0pjaqpi" sourceRef="Activity_1m883u3" targetRef="Event_051opo1" />
38
+ <bpmn:callActivity id="Activity_1m883u3" name="call sub" calledElement="External-Task-Sample_Process">
39
+ <bpmn:extensionElements>
40
+ <camunda:properties>
41
+ <camunda:property name="startEventId" value="StartEvent_1" />
42
+ </camunda:properties>
43
+ </bpmn:extensionElements>
44
+ <bpmn:incoming>Flow_1kbc11o</bpmn:incoming>
45
+ <bpmn:outgoing>Flow_0pjaqpi</bpmn:outgoing>
46
+ <bpmn:multiInstanceLoopCharacteristics />
47
+ </bpmn:callActivity>
48
+ </bpmn:process>
49
+ <bpmndi:BPMNDiagram id="BPMNDiagram_1">
50
+ <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_1cidyxu">
51
+ <bpmndi:BPMNShape id="Participant_0px403d_di" bpmnElement="Participant_0px403d" isHorizontal="true">
52
+ <dc:Bounds x="5" y="4" width="885" height="346" />
53
+ </bpmndi:BPMNShape>
54
+ <bpmndi:BPMNShape id="Lane_1xzf0d3_di" bpmnElement="Lane_1xzf0d3" isHorizontal="true">
55
+ <dc:Bounds x="35" y="4" width="855" height="346" />
56
+ </bpmndi:BPMNShape>
57
+ <bpmndi:BPMNShape id="StartEvent_1_di" bpmnElement="StartEvent_1">
58
+ <dc:Bounds x="92" y="152" width="36" height="36" />
59
+ <bpmndi:BPMNLabel>
60
+ <dc:Bounds x="98" y="195" width="24" height="14" />
61
+ </bpmndi:BPMNLabel>
62
+ </bpmndi:BPMNShape>
63
+ <bpmndi:BPMNShape id="Activity_0uc2tzt_di" bpmnElement="Activity_1483lxt">
64
+ <dc:Bounds x="180" y="130" width="100" height="80" />
65
+ <bpmndi:BPMNLabel />
66
+ </bpmndi:BPMNShape>
67
+ <bpmndi:BPMNShape id="Event_051opo1_di" bpmnElement="Event_051opo1">
68
+ <dc:Bounds x="502" y="152" width="36" height="36" />
69
+ </bpmndi:BPMNShape>
70
+ <bpmndi:BPMNShape id="Activity_0t5p0pc_di" bpmnElement="Activity_1m883u3">
71
+ <dc:Bounds x="340" y="130" width="100" height="80" />
72
+ <bpmndi:BPMNLabel />
73
+ </bpmndi:BPMNShape>
74
+ <bpmndi:BPMNEdge id="Flow_0jchwpf_di" bpmnElement="Flow_0jchwpf">
75
+ <di:waypoint x="128" y="170" />
76
+ <di:waypoint x="180" y="170" />
77
+ </bpmndi:BPMNEdge>
78
+ <bpmndi:BPMNEdge id="Flow_1kbc11o_di" bpmnElement="Flow_1kbc11o">
79
+ <di:waypoint x="280" y="170" />
80
+ <di:waypoint x="340" y="170" />
81
+ </bpmndi:BPMNEdge>
82
+ <bpmndi:BPMNEdge id="Flow_0pjaqpi_di" bpmnElement="Flow_0pjaqpi">
83
+ <di:waypoint x="440" y="170" />
84
+ <di:waypoint x="502" y="170" />
85
+ </bpmndi:BPMNEdge>
86
+ </bpmndi:BPMNPlane>
87
+ </bpmndi:BPMNDiagram>
88
+ </bpmn:definitions>
@@ -46,12 +46,17 @@
46
46
  </script>
47
47
 
48
48
  <script type="text/markdown" data-help-name="processinstance-query">
49
- Query a process instance in the ProcessCube.
49
+ A node to query process instances on the ProcessCube Engine.
50
50
 
51
51
  ## Inputs
52
52
 
53
53
  : payload (Object | JSON) : Will be used as the input for the query or can be directly set as JSON.
54
54
 
55
+ ## Outputs
56
+
57
+ : processInstances (Array) : The process instances that matched the query.
58
+ : totalCount (number) : The number of matches.
59
+
55
60
  ### References
56
61
 
57
62
  - [The ProcessCube Developer Network](https://processcube.io) - All documentation for the ProcessCube&copy; platform
@@ -6,7 +6,6 @@
6
6
  name: { value: '' },
7
7
  engine: { value: '', type: 'processcube-engine-config' },
8
8
  signalname: { value: '', required: true },
9
- processInstanceId: { value: '' },
10
9
  },
11
10
  inputs: 1,
12
11
  outputs: 1,
@@ -30,10 +29,7 @@
30
29
  <label for="node-input-signalname"><i class="fa fa-tag"></i> Signal Name</label>
31
30
  <input type="text" id="node-input-signalname" placeholder="Name of the Signal" />
32
31
  </div>
33
- <div class="form-row">
34
- <label for="node-input-processinstanceid"><i class="fa fa-tag"></i> Process Instance Id</label>
35
- <input type="text" id="node-input-processinstanceid" placeholder="Id of the recipient process instance" />
36
- </div>
32
+
37
33
  </script>
38
34
 
39
35
  <script type="text/markdown" data-help-name="signal-event-trigger">
@@ -44,6 +40,7 @@ From the config the `signalname` and the `processInstanceId` must be set.
44
40
  ## Inputs
45
41
 
46
42
  : payload (Object) : Will sent to the event and used an new token payload.
43
+ : processInstanceId (string) : The process instance where the signal event should be triggered.
47
44
 
48
45
  ### References
49
46
 
@@ -15,7 +15,7 @@ module.exports = function (RED) {
15
15
 
16
16
  client.events
17
17
  .triggerSignalEvent(config.signalname, {
18
- processInstanceId: config.processinstanceid,
18
+ processInstanceId: msg.processinstanceid,
19
19
  payload: msg.payload,
20
20
  identity: engine.identity,
21
21
  })
@@ -68,6 +68,12 @@ A node which listens for events triggered by usertasks
68
68
 
69
69
  ## Outputs
70
70
 
71
+ : flowNodeInstanceId (string): The unique identifier for the usertask instance.
72
+ : userTaskEvent (Object): An Object representing the event returned by the engine.
73
+ : processInstance (Object): An Object representing the process instance data.
74
+ : action (string): The event that occured.
75
+ : type (string): The target of the event.
76
+
71
77
  ### References
72
78
 
73
79
  - [The ProcessCube Developer Network](https://processcube.io) - All documentation for the ProcessCube&copy; platform
@@ -46,23 +46,25 @@ module.exports = function (RED) {
46
46
  }
47
47
 
48
48
  async function subscribe() {
49
- const eventHandlers = {
50
- new: () => client.userTasks.onUserTaskWaiting(userTaskCallback(), { identity: currentIdentity }),
51
- finished: () =>
52
- client.userTasks.onUserTaskFinished(userTaskCallback(), { identity: currentIdentity }),
53
- reserved: () =>
54
- client.userTasks.onUserTaskReserved(userTaskCallback(), { identity: currentIdentity }),
55
- 'reservation-canceled': () =>
56
- client.userTasks.onUserTaskReservationCanceled(userTaskCallback(), {
49
+ switch (config.eventtype) {
50
+ case 'new':
51
+ return await client.userTasks.onUserTaskWaiting(userTaskCallback(), {
57
52
  identity: currentIdentity,
58
- }),
59
- };
60
-
61
- const handler = eventHandlers[config.eventtype];
62
- if (handler) {
63
- return await handler();
64
- } else {
65
- console.error('no such event: ' + config.eventtype);
53
+ });
54
+ case 'finished':
55
+ return await client.userTasks.onUserTaskFinished(userTaskCallback(), {
56
+ identity: currentIdentity,
57
+ });
58
+ case 'reserved':
59
+ return await client.userTasks.onUserTaskReserved(userTaskCallback(), {
60
+ identity: currentIdentity,
61
+ });
62
+ case 'reservation-canceled':
63
+ return await client.userTasks.onUserTaskReservationCanceled(userTaskCallback(), {
64
+ identity: currentIdentity,
65
+ });
66
+ default:
67
+ console.error('no such event: ' + config.eventtype);
66
68
  }
67
69
  }
68
70
 
@@ -10,6 +10,7 @@
10
10
  },
11
11
  inputs: 1,
12
12
  outputs: 1,
13
+ align: 'right',
13
14
  icon: 'usertask_output.svg',
14
15
  label: function () {
15
16
  return this.name || 'usertask-output';
@@ -55,7 +56,6 @@ A node which sends the result of a usertask to the ProcessCube.
55
56
 
56
57
  ### References
57
58
 
58
- - [The ProcessCube Developer Network](https://processcube.io) - All documentation for the ProcessCube&copy; platform
59
- - [Node-RED Integration in ProcessCube&copy;](https://processcube.io/docs/node-red) - Node-RED integration in ProcessCube&copy;
60
-
59
+ - [The ProcessCube Developer Network](https://processcube.io) - All documentation for the ProcessCube&copy; platform
60
+ - [Node-RED Integration in ProcessCube&copy;](https://processcube.io/docs/node-red) - Node-RED integration in ProcessCube&copy;
61
61
  </script>