@5minds/node-red-contrib-processcube 0.14.0-fix-error-in-process-instance-query-433395-lyzh0xul → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,45 +1,37 @@
1
- const process = require('process');
1
+ const process = require("process");
2
2
 
3
- const engine_client = require('@5minds/processcube_engine_client');
3
+ const engine_client = require("@5minds/processcube_engine_client");
4
4
 
5
- module.exports = function(RED) {
5
+ module.exports = function (RED) {
6
6
  function MessageEventTrigger(config) {
7
7
  RED.nodes.createNode(this, config);
8
8
  var node = this;
9
- var nodeContext = node.context();
10
9
 
11
10
  this.engine = this.server = RED.nodes.getNode(config.engine);
12
11
 
13
- const engineUrl = this.engine?.url || process.env.ENGINE_URL || 'http://engine:8000';
14
-
15
- var client = nodeContext.get('client');
16
-
17
- if (!client) {
18
- nodeContext.set('client', new engine_client.EngineClient(engineUrl));
19
- client = nodeContext.get('client');
20
- }
21
-
22
- node.on('input', function(msg) {
23
-
24
- client.events.triggerMessageEvent(
25
- config.messagename,
26
- {
27
- processInstanceId: config.processinstanceid,
28
- payload: msg.payload,
29
- identity: node.server.identity
30
- }
31
-
32
- ).then((result) => {
33
-
34
- msg.payload = result;
35
-
36
- node.send(msg);
37
- node.status({fill: "blue", shape: "dot", text: `message event triggered`});
38
-
39
- }).catch((error) => {
40
- node.error(error);
41
- });
12
+ const client = this.engine.getEngineClient();
13
+
14
+ node.on("input", function (msg) {
15
+ client.events
16
+ .triggerMessageEvent(config.messagename, {
17
+ processInstanceId: config.processinstanceid,
18
+ payload: msg.payload,
19
+ identity: node.server.identity,
20
+ })
21
+ .then((result) => {
22
+ msg.payload = result;
23
+
24
+ node.send(msg);
25
+ node.status({
26
+ fill: "blue",
27
+ shape: "dot",
28
+ text: `message event triggered`,
29
+ });
30
+ })
31
+ .catch((error) => {
32
+ node.error(error);
33
+ });
42
34
  });
43
35
  }
44
36
  RED.nodes.registerType("message-event-trigger", MessageEventTrigger);
45
- }
37
+ };
@@ -1,8 +1,16 @@
1
1
  [
2
+ {
3
+ "id": "3f916448523ed12b",
4
+ "type": "tab",
5
+ "label": "Node-Inspector",
6
+ "disabled": false,
7
+ "info": "",
8
+ "env": []
9
+ },
2
10
  {
3
11
  "id": "a23d2e782beb66f4",
4
12
  "type": "tab",
5
- "label": "ExternalTasks",
13
+ "label": "External Task Sample",
6
14
  "disabled": false,
7
15
  "info": "",
8
16
  "env": []
@@ -79,24 +87,176 @@
79
87
  "w": 572,
80
88
  "h": 142
81
89
  },
90
+ {
91
+ "id": "70d7a70e375b162a",
92
+ "type": "group",
93
+ "z": "a23d2e782beb66f4",
94
+ "style": {
95
+ "stroke": "#999999",
96
+ "stroke-opacity": "1",
97
+ "fill": "none",
98
+ "fill-opacity": "1",
99
+ "label": true,
100
+ "label-position": "nw",
101
+ "color": "#a4a4a4"
102
+ },
103
+ "nodes": [
104
+ "2991a5e6df2b87d2",
105
+ "911fde53bcbb7e3f",
106
+ "d56bb7cd73fd220c",
107
+ "15a5f64b9e2e05fc"
108
+ ],
109
+ "x": 34,
110
+ "y": 79,
111
+ "w": 512,
112
+ "h": 142
113
+ },
114
+ {
115
+ "id": "31cb6729aac0ba46",
116
+ "type": "group",
117
+ "z": "a23d2e782beb66f4",
118
+ "style": {
119
+ "stroke": "#999999",
120
+ "stroke-opacity": "1",
121
+ "fill": "none",
122
+ "fill-opacity": "1",
123
+ "label": true,
124
+ "label-position": "nw",
125
+ "color": "#a4a4a4"
126
+ },
127
+ "nodes": [
128
+ "18e05d562d48f32d",
129
+ "49aee03a7885fae8",
130
+ "e4555d9019cd3f47",
131
+ "bd68c4bdc53b8f80",
132
+ "fb87f79852b22e4a",
133
+ "1ba1e62c9935255f",
134
+ "b49f226ba865e164"
135
+ ],
136
+ "x": 34,
137
+ "y": 259,
138
+ "w": 812,
139
+ "h": 202
140
+ },
141
+ {
142
+ "id": "dd43902998ad7630",
143
+ "type": "group",
144
+ "z": "3f916448523ed12b",
145
+ "style": {
146
+ "stroke": "#999999",
147
+ "stroke-opacity": "1",
148
+ "fill": "none",
149
+ "fill-opacity": "1",
150
+ "label": true,
151
+ "label-position": "nw",
152
+ "color": "#a4a4a4"
153
+ },
154
+ "nodes": [
155
+ "3add02d7.7df60e",
156
+ "8cf9f9cd.1a6a88",
157
+ "4b2a8ca1.de70e4",
158
+ "97dbbfedba44a728"
159
+ ],
160
+ "x": 34,
161
+ "y": 59,
162
+ "w": 712,
163
+ "h": 202
164
+ },
82
165
  {
83
166
  "id": "42e6796dddd9d4db",
84
167
  "type": "processcube-engine-config",
85
168
  "url": "http://engine:8000"
86
169
  },
170
+ {
171
+ "id": "3add02d7.7df60e",
172
+ "type": "node-inspector",
173
+ "z": "3f916448523ed12b",
174
+ "g": "dd43902998ad7630",
175
+ "inputField": "payload",
176
+ "host": "0.0.0.0",
177
+ "portNumber": 9229,
178
+ "autoStart": false,
179
+ "name": "",
180
+ "x": 400,
181
+ "y": 160,
182
+ "wires": []
183
+ },
184
+ {
185
+ "id": "8cf9f9cd.1a6a88",
186
+ "type": "inject",
187
+ "z": "3f916448523ed12b",
188
+ "g": "dd43902998ad7630",
189
+ "name": "",
190
+ "props": [
191
+ {
192
+ "p": "payload"
193
+ }
194
+ ],
195
+ "repeat": "",
196
+ "crontab": "",
197
+ "once": false,
198
+ "onceDelay": 0.1,
199
+ "topic": "",
200
+ "payload": "open_inspector",
201
+ "payloadType": "str",
202
+ "x": 160,
203
+ "y": 160,
204
+ "wires": [
205
+ [
206
+ "3add02d7.7df60e"
207
+ ]
208
+ ]
209
+ },
210
+ {
211
+ "id": "4b2a8ca1.de70e4",
212
+ "type": "inject",
213
+ "z": "3f916448523ed12b",
214
+ "g": "dd43902998ad7630",
215
+ "name": "",
216
+ "props": [
217
+ {
218
+ "p": "payload"
219
+ }
220
+ ],
221
+ "repeat": "",
222
+ "crontab": "",
223
+ "once": false,
224
+ "onceDelay": 0.1,
225
+ "topic": "",
226
+ "payload": "close_inspector",
227
+ "payloadType": "str",
228
+ "x": 160,
229
+ "y": 220,
230
+ "wires": [
231
+ [
232
+ "3add02d7.7df60e"
233
+ ]
234
+ ]
235
+ },
236
+ {
237
+ "id": "97dbbfedba44a728",
238
+ "type": "comment",
239
+ "z": "3f916448523ed12b",
240
+ "g": "dd43902998ad7630",
241
+ "name": "Start Node-Inspector on Port 9229 - be sure, that you expose the port from the docker-container",
242
+ "info": "",
243
+ "x": 390,
244
+ "y": 100,
245
+ "wires": []
246
+ },
87
247
  {
88
248
  "id": "2991a5e6df2b87d2",
89
249
  "type": "externaltask-input",
90
250
  "z": "a23d2e782beb66f4",
251
+ "g": "70d7a70e375b162a",
91
252
  "name": "Test",
92
253
  "engine": "42e6796dddd9d4db",
93
254
  "topic": "Test",
94
- "x": 90,
95
- "y": 400,
255
+ "x": 110,
256
+ "y": 180,
96
257
  "wires": [
97
258
  [
98
- "d56bb7cd73fd220c",
99
- "75c7bb5cc34e354a"
259
+ "d56bb7cd73fd220c"
100
260
  ]
101
261
  ]
102
262
  },
@@ -104,15 +264,17 @@
104
264
  "id": "911fde53bcbb7e3f",
105
265
  "type": "externaltask-output",
106
266
  "z": "a23d2e782beb66f4",
267
+ "g": "70d7a70e375b162a",
107
268
  "name": "Test Ende",
108
- "x": 500,
109
- "y": 400,
269
+ "x": 460,
270
+ "y": 180,
110
271
  "wires": []
111
272
  },
112
273
  {
113
274
  "id": "d56bb7cd73fd220c",
114
275
  "type": "delay",
115
276
  "z": "a23d2e782beb66f4",
277
+ "g": "70d7a70e375b162a",
116
278
  "name": "",
117
279
  "pauseType": "delay",
118
280
  "timeout": "1",
@@ -127,56 +289,23 @@
127
289
  "allowrate": false,
128
290
  "outputs": 1,
129
291
  "x": 280,
130
- "y": 400,
292
+ "y": 180,
131
293
  "wires": [
132
294
  [
133
- "911fde53bcbb7e3f",
134
- "69aec57d8bb00292"
295
+ "911fde53bcbb7e3f"
135
296
  ]
136
297
  ]
137
298
  },
138
- {
139
- "id": "75c7bb5cc34e354a",
140
- "type": "debug",
141
- "z": "a23d2e782beb66f4",
142
- "name": "debug 1",
143
- "active": true,
144
- "tosidebar": true,
145
- "console": false,
146
- "tostatus": false,
147
- "complete": "false",
148
- "statusVal": "",
149
- "statusType": "auto",
150
- "x": 260,
151
- "y": 480,
152
- "wires": []
153
- },
154
- {
155
- "id": "69aec57d8bb00292",
156
- "type": "debug",
157
- "z": "a23d2e782beb66f4",
158
- "name": "debug 6",
159
- "active": true,
160
- "tosidebar": true,
161
- "console": false,
162
- "tostatus": false,
163
- "complete": "externalTaskId",
164
- "targetType": "msg",
165
- "statusVal": "",
166
- "statusType": "auto",
167
- "x": 480,
168
- "y": 480,
169
- "wires": []
170
- },
171
299
  {
172
300
  "id": "18e05d562d48f32d",
173
301
  "type": "externaltask-input",
174
302
  "z": "a23d2e782beb66f4",
303
+ "g": "31cb6729aac0ba46",
175
304
  "name": "SampleError",
176
305
  "engine": "42e6796dddd9d4db",
177
306
  "topic": "SampleError",
178
- "x": 110,
179
- "y": 640,
307
+ "x": 130,
308
+ "y": 360,
180
309
  "wires": [
181
310
  [
182
311
  "49aee03a7885fae8"
@@ -187,6 +316,7 @@
187
316
  "id": "49aee03a7885fae8",
188
317
  "type": "delay",
189
318
  "z": "a23d2e782beb66f4",
319
+ "g": "31cb6729aac0ba46",
190
320
  "name": "",
191
321
  "pauseType": "delay",
192
322
  "timeout": "5",
@@ -200,8 +330,8 @@
200
330
  "drop": false,
201
331
  "allowrate": false,
202
332
  "outputs": 1,
203
- "x": 350,
204
- "y": 640,
333
+ "x": 320,
334
+ "y": 360,
205
335
  "wires": [
206
336
  [
207
337
  "bd68c4bdc53b8f80"
@@ -212,15 +342,14 @@
212
342
  "id": "e4555d9019cd3f47",
213
343
  "type": "catch",
214
344
  "z": "a23d2e782beb66f4",
345
+ "g": "31cb6729aac0ba46",
215
346
  "name": "",
216
- "scope": null,
347
+ "scope": "group",
217
348
  "uncaught": false,
218
- "x": 360,
219
- "y": 760,
349
+ "x": 510,
350
+ "y": 420,
220
351
  "wires": [
221
352
  [
222
- "fa1c26d470c38efd",
223
- "019797b5a0882e7b",
224
353
  "fb87f79852b22e4a"
225
354
  ]
226
355
  ]
@@ -229,7 +358,8 @@
229
358
  "id": "bd68c4bdc53b8f80",
230
359
  "type": "function",
231
360
  "z": "a23d2e782beb66f4",
232
- "name": "function 1",
361
+ "g": "31cb6729aac0ba46",
362
+ "name": "raise Error",
233
363
  "func": "throw Error(\"hello error\");\n\nreturn msg;",
234
364
  "outputs": 1,
235
365
  "timeout": 0,
@@ -237,55 +367,23 @@
237
367
  "initialize": "",
238
368
  "finalize": "",
239
369
  "libs": [],
240
- "x": 560,
241
- "y": 640,
370
+ "x": 510,
371
+ "y": 360,
242
372
  "wires": [
243
373
  [
244
374
  "1ba1e62c9935255f"
245
375
  ]
246
376
  ]
247
377
  },
248
- {
249
- "id": "fa1c26d470c38efd",
250
- "type": "debug",
251
- "z": "a23d2e782beb66f4",
252
- "name": "debug 8",
253
- "active": true,
254
- "tosidebar": true,
255
- "console": false,
256
- "tostatus": false,
257
- "complete": "false",
258
- "statusVal": "",
259
- "statusType": "auto",
260
- "x": 620,
261
- "y": 760,
262
- "wires": []
263
- },
264
- {
265
- "id": "019797b5a0882e7b",
266
- "type": "debug",
267
- "z": "a23d2e782beb66f4",
268
- "name": "debug 9",
269
- "active": true,
270
- "tosidebar": true,
271
- "console": false,
272
- "tostatus": false,
273
- "complete": "externalTaskId",
274
- "targetType": "msg",
275
- "statusVal": "",
276
- "statusType": "auto",
277
- "x": 620,
278
- "y": 820,
279
- "wires": []
280
- },
281
378
  {
282
379
  "id": "fb87f79852b22e4a",
283
380
  "type": "externaltask-error",
284
381
  "z": "a23d2e782beb66f4",
285
- "name": "Fehler",
382
+ "g": "31cb6729aac0ba46",
383
+ "name": "Send Error to Engine",
286
384
  "error": "MyErrorCode",
287
- "x": 570,
288
- "y": 900,
385
+ "x": 720,
386
+ "y": 420,
289
387
  "wires": [
290
388
  []
291
389
  ]
@@ -294,56 +392,42 @@
294
392
  "id": "1ba1e62c9935255f",
295
393
  "type": "externaltask-output",
296
394
  "z": "a23d2e782beb66f4",
395
+ "g": "31cb6729aac0ba46",
297
396
  "name": "",
298
- "x": 770,
299
- "y": 640,
397
+ "x": 710,
398
+ "y": 360,
300
399
  "wires": []
301
400
  },
302
401
  {
303
- "id": "c18723294975e975",
304
- "type": "inject",
402
+ "id": "15a5f64b9e2e05fc",
403
+ "type": "comment",
305
404
  "z": "a23d2e782beb66f4",
306
- "name": "",
307
- "props": [
308
- {
309
- "p": "payload"
310
- },
311
- {
312
- "p": "eventName",
313
- "v": "sampleEvent",
314
- "vt": "str"
315
- }
316
- ],
317
- "repeat": "",
318
- "crontab": "",
319
- "once": false,
320
- "onceDelay": 0.1,
321
- "topic": "",
322
- "payload": "{\t \t}",
323
- "payloadType": "jsonata",
405
+ "g": "70d7a70e375b162a",
406
+ "name": "Simple External Task handling",
407
+ "info": "",
408
+ "x": 180,
409
+ "y": 120,
410
+ "wires": []
411
+ },
412
+ {
413
+ "id": "b49f226ba865e164",
414
+ "type": "comment",
415
+ "z": "a23d2e782beb66f4",
416
+ "g": "31cb6729aac0ba46",
417
+ "name": "Error handling with external tasks",
418
+ "info": "",
324
419
  "x": 190,
325
- "y": 1200,
326
- "wires": [
327
- [
328
- "ddcde0ab7abfb8af"
329
- ]
330
- ]
420
+ "y": 300,
421
+ "wires": []
331
422
  },
332
423
  {
333
- "id": "ddcde0ab7abfb8af",
334
- "type": "debug",
424
+ "id": "799125e21de02f13",
425
+ "type": "comment",
335
426
  "z": "a23d2e782beb66f4",
336
- "name": "debug 18",
337
- "active": true,
338
- "tosidebar": true,
339
- "console": false,
340
- "tostatus": false,
341
- "complete": "true",
342
- "targetType": "full",
343
- "statusVal": "",
344
- "statusType": "auto",
345
- "x": 480,
346
- "y": 1200,
427
+ "name": "For Testing, deploy \"External-Task-Sample.bpmn\" and start the process.",
428
+ "info": "",
429
+ "x": 300,
430
+ "y": 40,
347
431
  "wires": []
348
432
  },
349
433
  {
@@ -8,6 +8,7 @@
8
8
  "@5minds/node-red-dashboard-2-processcube-usertask-table": "^1.0.7",
9
9
  "@flowfuse/node-red-dashboard": "^1.11.1",
10
10
  "node-red": "^3.1.10",
11
+ "node-red-contrib-inspector": "~1.0.1",
11
12
  "node-red-debugger": "^1.1.1",
12
13
  "openapi-red": "^1.2.5"
13
14
  }
@@ -385,7 +385,7 @@ module.exports = {
385
385
  //tours: false,
386
386
 
387
387
  header: {
388
- title: "Node-RED powered by ProcessCube ©",
388
+ title: "Node-RED powered by ProcessCube©",
389
389
  url: "https://processcube.io" // optional url to make the header text/image a link to this url
390
390
 
391
391
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@5minds/node-red-contrib-processcube",
3
- "version": "0.14.0-fix-error-in-process-instance-query-433395-lyzh0xul",
3
+ "version": "0.14.0",
4
4
  "license": "MIT",
5
5
  "description": "Node-RED nodes for ProcessCube",
6
6
  "authors": [
@@ -48,7 +48,7 @@
48
48
  }
49
49
  },
50
50
  "dependencies": {
51
- "@5minds/processcube_engine_client": "^5.0.0",
51
+ "@5minds/processcube_engine_client": "^5.0.1",
52
52
  "jwt-decode": "^4.0.0",
53
53
  "openid-client": "^5.5.0"
54
54
  },
package/process-start.js CHANGED
@@ -1,43 +1,38 @@
1
- const process = require('process');
2
- const engine_client = require('@5minds/processcube_engine_client');
1
+ const process = require("process");
2
+ const engine_client = require("@5minds/processcube_engine_client");
3
3
 
4
- module.exports = function(RED) {
4
+ module.exports = function (RED) {
5
5
  function ProcessStart(config) {
6
- RED.nodes.createNode(this,config);
6
+ RED.nodes.createNode(this, config);
7
7
  var node = this;
8
- var flowContext = node.context().flow;
9
- var nodeContext = node.context();
10
8
 
11
9
  this.engine = this.server = RED.nodes.getNode(config.engine);
12
10
 
13
- const engineUrl = this.engine?.url || process.env.ENGINE_URL || 'http://engine:8000';
14
-
15
- var client = nodeContext.get('client');
16
-
17
- if (!client) {
18
- nodeContext.set('client', new engine_client.EngineClient(engineUrl));
19
- client = nodeContext.get('client');
20
- }
21
-
22
- node.on('input', function(msg) {
11
+ const client = this.engine.getEngineClient();
23
12
 
13
+ node.on("input", function (msg) {
24
14
  const startParameters = {
25
15
  processModelId: msg.processModelId || config.processmodel,
26
16
  startEventId: msg.startEventId || config.startevent,
27
- initialToken: msg.payload
17
+ initialToken: msg.payload,
28
18
  };
29
19
 
30
- client.processDefinitions.startProcessInstance(startParameters, node.engine.identity).then((result) => {
31
-
32
- msg.payload = result;
33
-
34
- node.send(msg);
35
- node.status({fill: "blue", shape: "dot", text: `started ${result.processInstanceId}`});
36
-
37
- }).catch((error) => {
38
- node.error(error);
39
- });
20
+ client.processDefinitions
21
+ .startProcessInstance(startParameters, node.engine.identity)
22
+ .then((result) => {
23
+ msg.payload = result;
24
+
25
+ node.send(msg);
26
+ node.status({
27
+ fill: "blue",
28
+ shape: "dot",
29
+ text: `started ${result.processInstanceId}`,
30
+ });
31
+ })
32
+ .catch((error) => {
33
+ node.error(error);
34
+ });
40
35
  });
41
36
  }
42
37
  RED.nodes.registerType("process-start", ProcessStart);
43
- }
38
+ };
@@ -13,14 +13,29 @@ module.exports = function(RED) {
13
13
  this.identity = null;
14
14
  this.registerOnIdentityChanged = function (callback) {
15
15
  identityChangedCallbacks.push(callback);
16
- }
16
+ };
17
+
17
18
  this.setIdentity = (identity) => {
18
19
  this.identity = identity;
19
20
 
20
21
  for (const callback of identityChangedCallbacks) {
21
22
  callback(identity);
22
23
  }
23
- }
24
+ };
25
+
26
+ var nodeContext = node.context();
27
+
28
+ this.getEngineClient = () => {
29
+ const engineUrl = this.url || process.env.ENGINE_URL || 'http://engine:8000';
30
+ let client = nodeContext.get('client');
31
+
32
+ if (!client) {
33
+ nodeContext.set('client', new engine_client.EngineClient(engineUrl));
34
+ client = nodeContext.get('client');
35
+ }
36
+
37
+ return client;
38
+ };
24
39
 
25
40
  if (this.credentials.clientId && this.credentials.clientSecret) {
26
41
  const engineClient = new engine_client.EngineClient(this.url);