@5minds/node-red-contrib-processcube 0.14.0-feature-c8461c-lyxixqqm → 0.14.0-feature-a07566-lyy11h2t
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/externaltask-error.js
CHANGED
@@ -8,7 +8,7 @@ module.exports = function(RED) {
|
|
8
8
|
|
9
9
|
node.on('input', function(msg) {
|
10
10
|
|
11
|
-
const
|
11
|
+
const flowNodeInstanceId = msg.flowNodeInstanceId;
|
12
12
|
|
13
13
|
let msgError = msg.error;
|
14
14
|
|
@@ -26,7 +26,7 @@ module.exports = function(RED) {
|
|
26
26
|
// TODO: hack cause https://github.com/5minds/ProcessCube.Engine.Client.ts/blob/develop/src/ExternalTaskWorker.ts#L180
|
27
27
|
error.stack = RED.util.encodeObject(msg);
|
28
28
|
|
29
|
-
eventEmitter.emit(`handle-${
|
29
|
+
eventEmitter.emit(`handle-${flowNodeInstanceId}`, error, true);
|
30
30
|
|
31
31
|
node.send(msg);
|
32
32
|
});
|
package/externaltask-input.js
CHANGED
@@ -30,13 +30,21 @@ module.exports = function(RED) {
|
|
30
30
|
client.externalTasks.subscribeToExternalTaskTopic(
|
31
31
|
config.topic,
|
32
32
|
async (payload, externalTask) => {
|
33
|
+
|
34
|
+
const saveHandleCallback = (data, callback) => {
|
35
|
+
try {
|
36
|
+
callback(data);
|
37
|
+
} catch (error) {
|
38
|
+
node.error(`Error in callback 'saveHandleCallback': ${error.message}`);
|
39
|
+
}
|
40
|
+
};
|
33
41
|
|
34
42
|
return await new Promise((resolve, reject) => {
|
35
43
|
|
36
44
|
const handleFinishTask = (msg) => {
|
37
45
|
let result = RED.util.encodeObject(msg.payload);
|
38
46
|
|
39
|
-
node.log(`handle event for external task ${externalTask.flowNodeInstanceId} and
|
47
|
+
node.log(`handle event for *external task flowNodeInstanceId* '${externalTask.flowNodeInstanceId}' and *processInstanceId* ${externalTask.processInstanceId} with result ${result} on msg._msgid ${msg._msgid}.`);
|
40
48
|
|
41
49
|
if (externalTask.flowNodeInstanceId) {
|
42
50
|
delete started_external_tasks[externalTask.flowNodeInstanceId];
|
@@ -45,12 +53,13 @@ module.exports = function(RED) {
|
|
45
53
|
showStatus(node, Object.keys(started_external_tasks).length);
|
46
54
|
|
47
55
|
|
48
|
-
resolve(result);
|
56
|
+
//resolve(result);
|
57
|
+
saveHandleCallback(result,resolve)
|
49
58
|
};
|
50
59
|
|
51
60
|
const handleErrorTask = (msg) => {
|
52
61
|
|
53
|
-
node.log(`handle error event for external task ${externalTask.flowNodeInstanceId}
|
62
|
+
node.log(`handle error event for *external task flowNodeInstanceId* '${externalTask.flowNodeInstanceId}' and *processInstanceId* '${externalTask.processInstanceId}' on *msg._msgid* '${msg._msgid}'.`);
|
54
63
|
|
55
64
|
if (externalTask.flowNodeInstanceId) {
|
56
65
|
delete started_external_tasks[externalTask.flowNodeInstanceId];
|
@@ -62,11 +71,12 @@ module.exports = function(RED) {
|
|
62
71
|
// TODO: with reject, the default error handling is proceed
|
63
72
|
// SEE: https://github.com/5minds/ProcessCube.Engine.Client.ts/blob/develop/src/ExternalTaskWorker.ts#L180
|
64
73
|
// reject(result);
|
65
|
-
resolve(msg);
|
74
|
+
//resolve(msg);
|
75
|
+
saveHandleCallback(msg,resolve);
|
66
76
|
};
|
67
77
|
|
68
78
|
eventEmitter.once(`handle-${externalTask.flowNodeInstanceId}`, (msg, isError = false) => {
|
69
|
-
node.log(`handle event for external task ${externalTask.flowNodeInstanceId} and
|
79
|
+
node.log(`handle event for *external task flowNodeInstanceId* '${externalTask.flowNodeInstanceId}' and *processInstanceId* '${externalTask.processInstanceId}' with *msg._msgid* '${msg._msgid}' and *isError* '${isError}'`);
|
70
80
|
|
71
81
|
if (isError) {
|
72
82
|
handleErrorTask(msg);
|
@@ -81,12 +91,12 @@ module.exports = function(RED) {
|
|
81
91
|
|
82
92
|
let msg = {
|
83
93
|
_msgid: RED.util.generateId(),
|
84
|
-
|
94
|
+
task: RED.util.encodeObject(externalTask),
|
85
95
|
payload: payload,
|
86
|
-
|
96
|
+
flowNodeInstanceId: externalTask.flowNodeInstanceId
|
87
97
|
};
|
88
98
|
|
89
|
-
node.log(`Received external task ${externalTask.flowNodeInstanceId} and
|
99
|
+
node.log(`Received *external task flowNodeInstanceId* '${externalTask.flowNodeInstanceId}' and *processInstanceId* '${externalTask.processInstanceId}' with *msg._msgid* '${msg._msgid}'`);
|
90
100
|
|
91
101
|
node.send(msg);
|
92
102
|
});
|
@@ -105,7 +115,7 @@ module.exports = function(RED) {
|
|
105
115
|
case 'extendLock':
|
106
116
|
case 'finishExternalTask':
|
107
117
|
case 'processExternalTask':
|
108
|
-
node.error(`Worker error ${errorType} for external task ${externalTask.flowNodeInstanceId}: ${error.message}`);
|
118
|
+
node.error(`Worker error ${errorType} for *external task flowNodeInstanceId* '${externalTask.flowNodeInstanceId}' and *processInstanceId* '${externalTask.processInstanceId}': ${error.message}`);
|
109
119
|
|
110
120
|
externalTaskWorker.stop();
|
111
121
|
|
@@ -121,7 +131,11 @@ module.exports = function(RED) {
|
|
121
131
|
}
|
122
132
|
});
|
123
133
|
|
124
|
-
|
134
|
+
try {
|
135
|
+
externalTaskWorker.start();
|
136
|
+
} catch (error) {
|
137
|
+
node.error(`Worker start 'externalTaskWorker.start' failed: ${error.message}`);
|
138
|
+
}
|
125
139
|
|
126
140
|
node.on("close", () => {
|
127
141
|
try {
|
package/externaltask-output.js
CHANGED
@@ -8,13 +8,13 @@ module.exports = function(RED) {
|
|
8
8
|
|
9
9
|
node.on('input', function(msg) {
|
10
10
|
|
11
|
-
const
|
11
|
+
const flowNodeInstanceId = msg.flowNodeInstanceId;
|
12
12
|
|
13
|
-
if (!
|
13
|
+
if (!flowNodeInstanceId) {
|
14
14
|
node.error('Error: The message did not contain the required external task id.', msg);
|
15
15
|
}
|
16
16
|
|
17
|
-
eventEmitter.emit(`handle-${
|
17
|
+
eventEmitter.emit(`handle-${flowNodeInstanceId}`, msg, false);
|
18
18
|
});
|
19
19
|
}
|
20
20
|
RED.nodes.registerType("externaltask-output", ExternalTaskOutput);
|
@@ -210,7 +210,7 @@
|
|
210
210
|
"g": "31cb6729aac0ba46",
|
211
211
|
"name": "",
|
212
212
|
"pauseType": "delay",
|
213
|
-
"timeout": "
|
213
|
+
"timeout": "15",
|
214
214
|
"timeoutUnits": "seconds",
|
215
215
|
"rate": "1",
|
216
216
|
"nbRateUnits": "1",
|
@@ -221,7 +221,7 @@
|
|
221
221
|
"drop": false,
|
222
222
|
"allowrate": false,
|
223
223
|
"outputs": 1,
|
224
|
-
"x":
|
224
|
+
"x": 330,
|
225
225
|
"y": 360,
|
226
226
|
"wires": [
|
227
227
|
[
|