@5minds/node-red-contrib-processcube 0.14.0-feature-612fd3-lywvsveq → 0.14.0-feature-084b12-lyxa7tam
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/docker-compose.yml +5 -0
- package/externaltask-error.js +14 -12
- package/externaltask-input.js +11 -3
- package/package.json +1 -1
package/docker-compose.yml
CHANGED
@@ -12,6 +12,9 @@ services:
|
|
12
12
|
volumes:
|
13
13
|
- ./nodered/:/nodered/
|
14
14
|
- ./examples/:/examples/
|
15
|
+
depends_on:
|
16
|
+
- engine
|
17
|
+
- authority
|
15
18
|
|
16
19
|
engine:
|
17
20
|
image: 5minds/processcube_engine:2024-1
|
@@ -24,6 +27,8 @@ services:
|
|
24
27
|
iam__baseUrl: http://authority:11560
|
25
28
|
iam__allowAnonymousRootAccess: true
|
26
29
|
command: --seed-dir=/processes --port 8000
|
30
|
+
depends_on:
|
31
|
+
- authority
|
27
32
|
|
28
33
|
authority:
|
29
34
|
image: 5minds/processcube_authority:3.0.4
|
package/externaltask-error.js
CHANGED
@@ -10,22 +10,24 @@ module.exports = function(RED) {
|
|
10
10
|
|
11
11
|
const externalTaskId = msg.externalTaskId;
|
12
12
|
|
13
|
-
let
|
13
|
+
let msgError = msg.error;
|
14
14
|
|
15
|
-
if (
|
16
|
-
|
17
|
-
|
15
|
+
if (msgError === undefined) {
|
16
|
+
msgError.message = "An error occurred";
|
17
|
+
msgError.source = msg.payload;
|
18
18
|
}
|
19
19
|
|
20
|
-
msg.
|
21
|
-
|
22
|
-
|
23
|
-
errorMessage: error.message,
|
24
|
-
errorDetails: error.source
|
25
|
-
}
|
26
|
-
};
|
20
|
+
msg.errorCode = config.error;
|
21
|
+
msg.errorMessage = msgError.message;
|
22
|
+
msg.errorDetails = msgError.source;
|
27
23
|
|
28
|
-
|
24
|
+
const error = new Error(msg.errorMessage);
|
25
|
+
error.errorCode = msg.errorCode;
|
26
|
+
error.errorDetails = msg.errorDetails;
|
27
|
+
error.externalTaskId = externalTaskId;
|
28
|
+
error._msgid = msg._msgid;
|
29
|
+
|
30
|
+
eventEmitter.emit(`handle-${externalTaskId}`, error, true);
|
29
31
|
|
30
32
|
node.send(msg);
|
31
33
|
});
|
package/externaltask-input.js
CHANGED
@@ -46,27 +46,35 @@ module.exports = function(RED) {
|
|
46
46
|
return await new Promise((resolve, reject) => {
|
47
47
|
|
48
48
|
const handleFinishTask = (msg) => {
|
49
|
+
let result = RED.util.encodeObject(msg.payload);
|
50
|
+
|
51
|
+
node.log(`handle event for external task ${externalTask.flowNodeInstanceId} and process it with result ${result} on msg._msgid ${msg._msgid}.`);
|
52
|
+
|
49
53
|
if (msg.externalTaskId) {
|
50
54
|
delete started_external_tasks[msg.externalTaskId];
|
51
55
|
}
|
52
56
|
|
53
57
|
showStatus(node, Object.keys(started_external_tasks).length);
|
54
58
|
|
55
|
-
let result = RED.util.encodeObject(msg.payload);
|
56
59
|
|
57
60
|
resolve(result);
|
58
61
|
};
|
59
62
|
|
60
63
|
const handleErrorTask = (msg) => {
|
64
|
+
|
65
|
+
node.log(`handle error event for external task ${externalTask.flowNodeInstanceId} with result ${msg} on msg._msgid ${msg._msgid}.`);
|
66
|
+
|
61
67
|
if (msg.externalTaskId) {
|
62
68
|
delete started_external_tasks[msg.externalTaskId];
|
63
69
|
}
|
64
70
|
|
65
71
|
showStatus(node, Object.keys(started_external_tasks).length);
|
66
72
|
|
67
|
-
let result = RED.util.encodeObject(msg);
|
68
73
|
|
69
|
-
reject
|
74
|
+
// TODO: with reject, the default error handling is proceed
|
75
|
+
// SEE: https://github.com/5minds/ProcessCube.Engine.Client.ts/blob/develop/src/ExternalTaskWorker.ts#L180
|
76
|
+
// reject(result);
|
77
|
+
resolve(msg);
|
70
78
|
};
|
71
79
|
|
72
80
|
eventEmitter.once(`handle-${externalTask.flowNodeInstanceId}`, (msg, isError = false) => {
|