@5minds/node-red-contrib-processcube 0.0.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.
- package/.github/workflows/build-and-publish.yml +72 -0
- package/.node-red/data/.config.nodes.json +541 -0
- package/.node-red/data/.config.nodes.json.backup +541 -0
- package/.node-red/data/.config.runtime.json +4 -0
- package/.node-red/data/.config.runtime.json.backup +3 -0
- package/.node-red/data/.config.users.json +22 -0
- package/.node-red/data/.config.users.json.backup +22 -0
- package/.node-red/data/flows.json +742 -0
- package/.node-red/data/package-lock.json +19 -0
- package/.node-red/data/package.json +6 -0
- package/.node-red/data/settings.js +560 -0
- package/Dockerfile +19 -0
- package/EventAggregator.js +25 -0
- package/LICENSE +21 -0
- package/README.md +11 -0
- package/docker-compose.yml +21 -0
- package/externaltask-input.html +31 -0
- package/externaltask-input.js +54 -0
- package/externaltask-output.html +26 -0
- package/externaltask-output.js +16 -0
- package/package.json +23 -0
- package/process-start.html +36 -0
- package/process-start.js +34 -0
- package/processes/GetProcessModels.bpmn +58 -0
- package/processes/HelloWorld.bpmn +77 -0
- package/processes/NodeRedExternalTask.bpmn +91 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
services:
|
|
2
|
+
node-red:
|
|
3
|
+
image: 5minds/node-red:latest
|
|
4
|
+
build:
|
|
5
|
+
context: .
|
|
6
|
+
environment:
|
|
7
|
+
- TZ=Europe/Berlin
|
|
8
|
+
#- ENGINE_URL=http://192.168.178.145:56100
|
|
9
|
+
ports:
|
|
10
|
+
- "1880:1880"
|
|
11
|
+
volumes:
|
|
12
|
+
- ./.node-red/data:/data
|
|
13
|
+
- ./:/data/node_modules/node-red-contrib-processcube
|
|
14
|
+
|
|
15
|
+
engine:
|
|
16
|
+
image: 5minds/processcube_engine:2024-1
|
|
17
|
+
ports:
|
|
18
|
+
- 8000:8000
|
|
19
|
+
volumes:
|
|
20
|
+
- ./processes:/processes:ro
|
|
21
|
+
command: --seed-dir=/processes --port 8000
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<script type="text/javascript">
|
|
2
|
+
RED.nodes.registerType('externaltask-input',{
|
|
3
|
+
category: 'ProcessCube',
|
|
4
|
+
color: '#00aed7',
|
|
5
|
+
defaults: {
|
|
6
|
+
name: {value:""},
|
|
7
|
+
topic: {value:""}
|
|
8
|
+
},
|
|
9
|
+
inputs: 0,
|
|
10
|
+
outputs: 1,
|
|
11
|
+
icon: "font-awesome/fa-envelope-open",
|
|
12
|
+
label: function() {
|
|
13
|
+
return this.name||"externaltask-input";
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<script type="text/html" data-template-name="externaltask-input">
|
|
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-topic"><i class="fa fa-tag"></i> Topic</label>
|
|
25
|
+
<input type="text" id="node-input-topic" placeholder="Topic of ExternalTask">
|
|
26
|
+
</div>
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<script type="text/html" data-help-name="externaltask-input">
|
|
30
|
+
<p>A node which subscribes to an External Task Topic of https://processcube.io</p>
|
|
31
|
+
</script>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const process = require('process');
|
|
2
|
+
|
|
3
|
+
const engine_client = require('@5minds/processcube_engine_client');
|
|
4
|
+
const EventAggregator = require('./EventAggregator');
|
|
5
|
+
|
|
6
|
+
const engineUrl = process.env.ENGINE_URL || 'http://engine:8000';
|
|
7
|
+
|
|
8
|
+
const client = new engine_client.EngineClient(engineUrl);
|
|
9
|
+
|
|
10
|
+
function showStatus(node, msgCounter) {
|
|
11
|
+
if (msgCounter >= 1) {
|
|
12
|
+
node.status({fill: "blue", shape: "dot", text: `handling tasks ${msgCounter}`});
|
|
13
|
+
} else {
|
|
14
|
+
node.status({fill: "blue", shape: "ring", text: `subcribed ${msgCounter}`});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
module.exports = function(RED) {
|
|
19
|
+
function ExternalTaskInput(config) {
|
|
20
|
+
RED.nodes.createNode(this,config);
|
|
21
|
+
var node = this;
|
|
22
|
+
var msgCounter = 0;
|
|
23
|
+
|
|
24
|
+
client.externalTasks.subscribeToExternalTaskTopic(
|
|
25
|
+
config.topic,
|
|
26
|
+
async (payload, externalTask) => {
|
|
27
|
+
msgCounter++;
|
|
28
|
+
|
|
29
|
+
return await new Promise((resolve, reject) => {
|
|
30
|
+
|
|
31
|
+
EventAggregator.eventEmitter.once(`finish-${externalTask.flowNodeInstanceId}`, (result) => {
|
|
32
|
+
msgCounter--;
|
|
33
|
+
showStatus(node, msgCounter);
|
|
34
|
+
resolve(result);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
EventAggregator.eventEmitter.once(`error-${externalTask.flowNodeInstanceId}`, (result) => {
|
|
38
|
+
msgCounter--;
|
|
39
|
+
showStatus(node, msgCounter);
|
|
40
|
+
reject(result);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
showStatus(node, msgCounter);
|
|
44
|
+
node.send({ topic: externalTask.topic, externalTaskId: externalTask.flowNodeInstanceId, payload: payload});
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
).then(externalTaskWorker => {
|
|
48
|
+
node.status({fill: "blue", shape: "ring", text: "subcribed"});
|
|
49
|
+
externalTaskWorker.start();
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
RED.nodes.registerType("externaltask-input", ExternalTaskInput);
|
|
54
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script type="text/javascript">
|
|
2
|
+
RED.nodes.registerType('externaltask-output',{
|
|
3
|
+
category: 'ProcessCube',
|
|
4
|
+
color: '#00aed7',
|
|
5
|
+
defaults: {
|
|
6
|
+
name: {value:""}
|
|
7
|
+
},
|
|
8
|
+
inputs: 1,
|
|
9
|
+
outputs: 0,
|
|
10
|
+
icon: "font-awesome/fa-envelope",
|
|
11
|
+
label: function() {
|
|
12
|
+
return this.name||"externaltask-output";
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<script type="text/html" data-template-name="externaltask-output">
|
|
18
|
+
<div class="form-row">
|
|
19
|
+
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
|
|
20
|
+
<input type="text" id="node-input-name" placeholder="Name">
|
|
21
|
+
</div>
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<script type="text/html" data-help-name="externaltask-output">
|
|
25
|
+
<p>A node which response to an External Task of https://processcube.io</p>
|
|
26
|
+
</script>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const EventAggregator = require('./EventAggregator');
|
|
2
|
+
|
|
3
|
+
module.exports = function(RED) {
|
|
4
|
+
function ExternalTaskOutput(config) {
|
|
5
|
+
RED.nodes.createNode(this,config);
|
|
6
|
+
var node = this;
|
|
7
|
+
|
|
8
|
+
node.on('input', function(msg) {
|
|
9
|
+
|
|
10
|
+
const externalTaskId = msg.externalTaskId;
|
|
11
|
+
|
|
12
|
+
EventAggregator.eventEmitter.emit(`finish-${externalTaskId}`, msg.payload);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
RED.nodes.registerType("externaltask-output", ExternalTaskOutput);
|
|
16
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@5minds/node-red-contrib-processcube",
|
|
3
|
+
"version": "0.0.4",
|
|
4
|
+
"description": "Node-RED nodes for ProcessCube",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"node-red",
|
|
7
|
+
"processcube"
|
|
8
|
+
],
|
|
9
|
+
"author": {
|
|
10
|
+
"name": "5Minds IT-Solutions GmbH & Co. KG",
|
|
11
|
+
"email": "processcube@5minds.de"
|
|
12
|
+
},
|
|
13
|
+
"node-red": {
|
|
14
|
+
"nodes": {
|
|
15
|
+
"externaltaskInput": "externaltask-input.js",
|
|
16
|
+
"externaltaskOutput": "externaltask-output.js",
|
|
17
|
+
"processStart": "process-start.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@5minds/processcube_engine_client": "^4.4.5"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<script type="text/javascript">
|
|
2
|
+
RED.nodes.registerType('process-start', {
|
|
3
|
+
category: 'ProcessCube',
|
|
4
|
+
color: '#00aed7',
|
|
5
|
+
defaults: {
|
|
6
|
+
name: {value: ""},
|
|
7
|
+
processmodel: {value: "", required: true},
|
|
8
|
+
startevent: {value: ""}
|
|
9
|
+
},
|
|
10
|
+
inputs: 1,
|
|
11
|
+
outputs: 1,
|
|
12
|
+
icon: "font-awesome/fa-sign-in",
|
|
13
|
+
label: function() {
|
|
14
|
+
return this.name||"process-start";
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<script type="text/html" data-template-name="process-start">
|
|
20
|
+
<div class="form-row">
|
|
21
|
+
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
|
|
22
|
+
<input type="text" id="node-input-name" placeholder="Name">
|
|
23
|
+
</div>
|
|
24
|
+
<div class="form-row">
|
|
25
|
+
<label for="node-input-processmodel"><i class="fa fa-tag"></i> Processmodel</label>
|
|
26
|
+
<input type="text" id="node-input-processmodel" placeholder="ID of Processmodel">
|
|
27
|
+
</div>
|
|
28
|
+
<div class="form-row">
|
|
29
|
+
<label for="node-input-startevent"><i class="fa fa-tag"></i> Startevent</label>
|
|
30
|
+
<input type="text" id="node-input-startevent" placeholder="ID of Startevnt">
|
|
31
|
+
</div>
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<script type="text/html" data-help-name="process-start">
|
|
35
|
+
<p>A node which that starts a process of https://processcube.io</p>
|
|
36
|
+
</script>
|
package/process-start.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const process = require('process');
|
|
2
|
+
const engine_client = require('@5minds/processcube_engine_client');
|
|
3
|
+
|
|
4
|
+
const engineUrl = process.env.ENGINE_URL || 'http://engine:8000';
|
|
5
|
+
|
|
6
|
+
const client = new engine_client.EngineClient(engineUrl);
|
|
7
|
+
|
|
8
|
+
module.exports = function(RED) {
|
|
9
|
+
function ProcessStart(config) {
|
|
10
|
+
RED.nodes.createNode(this,config);
|
|
11
|
+
var node = this;
|
|
12
|
+
|
|
13
|
+
node.on('input', function(msg) {
|
|
14
|
+
|
|
15
|
+
client.processDefinitions.startProcessInstance({
|
|
16
|
+
|
|
17
|
+
processModelId: config.processmodel,
|
|
18
|
+
startEventId: config.startevent,
|
|
19
|
+
initialToken: msg.payload
|
|
20
|
+
|
|
21
|
+
}).then((result) => {
|
|
22
|
+
|
|
23
|
+
msg.payload = result;
|
|
24
|
+
|
|
25
|
+
node.send(msg);
|
|
26
|
+
node.status({fill: "blue", shape: "dot", text: `started ${result.processInstanceId}`});
|
|
27
|
+
|
|
28
|
+
}).catch((error) => {
|
|
29
|
+
node.error(error);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
RED.nodes.registerType("process-start", ProcessStart);
|
|
34
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
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="GetProcessModels_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="GetProcessModels" processRef="GetProcessModels_Process" />
|
|
5
|
+
</bpmn:collaboration>
|
|
6
|
+
<bpmn:process id="GetProcessModels_Process" name="GetProcessModels" isExecutable="true">
|
|
7
|
+
<bpmn:laneSet>
|
|
8
|
+
<bpmn:lane id="Lane_1xzf0d3" name="Lane">
|
|
9
|
+
<bpmn:flowNodeRef>StartEvent_1</bpmn:flowNodeRef>
|
|
10
|
+
<bpmn:flowNodeRef>Event_1g0ul5l</bpmn:flowNodeRef>
|
|
11
|
+
<bpmn:flowNodeRef>Activity_1p86o1j</bpmn:flowNodeRef>
|
|
12
|
+
</bpmn:lane>
|
|
13
|
+
</bpmn:laneSet>
|
|
14
|
+
<bpmn:startEvent id="StartEvent_1" name="Start">
|
|
15
|
+
<bpmn:outgoing>Flow_19aohpj</bpmn:outgoing>
|
|
16
|
+
</bpmn:startEvent>
|
|
17
|
+
<bpmn:sequenceFlow id="Flow_19aohpj" sourceRef="StartEvent_1" targetRef="Activity_1p86o1j" />
|
|
18
|
+
<bpmn:sequenceFlow id="Flow_1in3mpt" sourceRef="Activity_1p86o1j" targetRef="Event_1g0ul5l" />
|
|
19
|
+
<bpmn:endEvent id="Event_1g0ul5l">
|
|
20
|
+
<bpmn:incoming>Flow_1in3mpt</bpmn:incoming>
|
|
21
|
+
</bpmn:endEvent>
|
|
22
|
+
<bpmn:serviceTask id="Activity_1p86o1j" name="get processmodels" camunda:type="external" camunda:topic="processmodels">
|
|
23
|
+
<bpmn:incoming>Flow_19aohpj</bpmn:incoming>
|
|
24
|
+
<bpmn:outgoing>Flow_1in3mpt</bpmn:outgoing>
|
|
25
|
+
</bpmn:serviceTask>
|
|
26
|
+
</bpmn:process>
|
|
27
|
+
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
|
28
|
+
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_1cidyxu">
|
|
29
|
+
<bpmndi:BPMNShape id="Participant_0px403d_di" bpmnElement="Participant_0px403d" isHorizontal="true">
|
|
30
|
+
<dc:Bounds x="5" y="4" width="885" height="346" />
|
|
31
|
+
</bpmndi:BPMNShape>
|
|
32
|
+
<bpmndi:BPMNShape id="Lane_1xzf0d3_di" bpmnElement="Lane_1xzf0d3" isHorizontal="true">
|
|
33
|
+
<dc:Bounds x="35" y="4" width="855" height="346" />
|
|
34
|
+
</bpmndi:BPMNShape>
|
|
35
|
+
<bpmndi:BPMNShape id="StartEvent_1_di" bpmnElement="StartEvent_1">
|
|
36
|
+
<dc:Bounds x="92" y="152" width="36" height="36" />
|
|
37
|
+
<bpmndi:BPMNLabel>
|
|
38
|
+
<dc:Bounds x="98" y="195" width="24" height="14" />
|
|
39
|
+
</bpmndi:BPMNLabel>
|
|
40
|
+
</bpmndi:BPMNShape>
|
|
41
|
+
<bpmndi:BPMNShape id="Event_1g0ul5l_di" bpmnElement="Event_1g0ul5l">
|
|
42
|
+
<dc:Bounds x="672" y="152" width="36" height="36" />
|
|
43
|
+
</bpmndi:BPMNShape>
|
|
44
|
+
<bpmndi:BPMNShape id="Activity_0o89lb3_di" bpmnElement="Activity_1p86o1j">
|
|
45
|
+
<dc:Bounds x="360" y="130" width="100" height="80" />
|
|
46
|
+
<bpmndi:BPMNLabel />
|
|
47
|
+
</bpmndi:BPMNShape>
|
|
48
|
+
<bpmndi:BPMNEdge id="Flow_19aohpj_di" bpmnElement="Flow_19aohpj">
|
|
49
|
+
<di:waypoint x="128" y="170" />
|
|
50
|
+
<di:waypoint x="360" y="170" />
|
|
51
|
+
</bpmndi:BPMNEdge>
|
|
52
|
+
<bpmndi:BPMNEdge id="Flow_1in3mpt_di" bpmnElement="Flow_1in3mpt">
|
|
53
|
+
<di:waypoint x="460" y="170" />
|
|
54
|
+
<di:waypoint x="672" y="170" />
|
|
55
|
+
</bpmndi:BPMNEdge>
|
|
56
|
+
</bpmndi:BPMNPlane>
|
|
57
|
+
</bpmndi:BPMNDiagram>
|
|
58
|
+
</bpmn:definitions>
|
|
@@ -0,0 +1,77 @@
|
|
|
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:di="http://www.omg.org/spec/DD/20100524/DI" id="HelloWorld_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="HelloWorld" processRef="HelloWorld_Process" />
|
|
5
|
+
</bpmn:collaboration>
|
|
6
|
+
<bpmn:process id="HelloWorld_Process" name="HelloWorld" isExecutable="true">
|
|
7
|
+
<bpmn:laneSet>
|
|
8
|
+
<bpmn:lane id="Lane_1xzf0d3" name="Lane">
|
|
9
|
+
<bpmn:flowNodeRef>Activity_0qfd2qf</bpmn:flowNodeRef>
|
|
10
|
+
<bpmn:flowNodeRef>Event_098kcno</bpmn:flowNodeRef>
|
|
11
|
+
<bpmn:flowNodeRef>StartEvent_1</bpmn:flowNodeRef>
|
|
12
|
+
<bpmn:flowNodeRef>StartEvent_2</bpmn:flowNodeRef>
|
|
13
|
+
</bpmn:lane>
|
|
14
|
+
</bpmn:laneSet>
|
|
15
|
+
<bpmn:task id="Activity_0qfd2qf">
|
|
16
|
+
<bpmn:incoming>Flow_0gyaiob</bpmn:incoming>
|
|
17
|
+
<bpmn:incoming>Flow_02bhdfx</bpmn:incoming>
|
|
18
|
+
<bpmn:outgoing>Flow_1vz3m6d</bpmn:outgoing>
|
|
19
|
+
</bpmn:task>
|
|
20
|
+
<bpmn:sequenceFlow id="Flow_0gyaiob" sourceRef="StartEvent_1" targetRef="Activity_0qfd2qf" />
|
|
21
|
+
<bpmn:endEvent id="Event_098kcno">
|
|
22
|
+
<bpmn:incoming>Flow_1vz3m6d</bpmn:incoming>
|
|
23
|
+
</bpmn:endEvent>
|
|
24
|
+
<bpmn:sequenceFlow id="Flow_1vz3m6d" sourceRef="Activity_0qfd2qf" targetRef="Event_098kcno" />
|
|
25
|
+
<bpmn:startEvent id="StartEvent_1" name="StartEvent_1">
|
|
26
|
+
<bpmn:outgoing>Flow_0gyaiob</bpmn:outgoing>
|
|
27
|
+
</bpmn:startEvent>
|
|
28
|
+
<bpmn:startEvent id="StartEvent_2" name="StartEvent_2">
|
|
29
|
+
<bpmn:outgoing>Flow_02bhdfx</bpmn:outgoing>
|
|
30
|
+
</bpmn:startEvent>
|
|
31
|
+
<bpmn:sequenceFlow id="Flow_02bhdfx" sourceRef="StartEvent_2" targetRef="Activity_0qfd2qf" />
|
|
32
|
+
</bpmn:process>
|
|
33
|
+
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
|
34
|
+
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_1cidyxu">
|
|
35
|
+
<bpmndi:BPMNShape id="Participant_0px403d_di" bpmnElement="Participant_0px403d" isHorizontal="true">
|
|
36
|
+
<dc:Bounds x="5" y="4" width="885" height="346" />
|
|
37
|
+
</bpmndi:BPMNShape>
|
|
38
|
+
<bpmndi:BPMNShape id="Lane_1xzf0d3_di" bpmnElement="Lane_1xzf0d3" isHorizontal="true">
|
|
39
|
+
<dc:Bounds x="35" y="4" width="855" height="346" />
|
|
40
|
+
</bpmndi:BPMNShape>
|
|
41
|
+
<bpmndi:BPMNShape id="Activity_0qfd2qf_di" bpmnElement="Activity_0qfd2qf">
|
|
42
|
+
<dc:Bounds x="180" y="130" width="100" height="80" />
|
|
43
|
+
</bpmndi:BPMNShape>
|
|
44
|
+
<bpmndi:BPMNShape id="Event_098kcno_di" bpmnElement="Event_098kcno">
|
|
45
|
+
<dc:Bounds x="332" y="152" width="36" height="36" />
|
|
46
|
+
</bpmndi:BPMNShape>
|
|
47
|
+
<bpmndi:BPMNShape id="StartEvent_1_di" bpmnElement="StartEvent_1">
|
|
48
|
+
<dc:Bounds x="92" y="82" width="36" height="36" />
|
|
49
|
+
<bpmndi:BPMNLabel>
|
|
50
|
+
<dc:Bounds x="78" y="125" width="64" height="14" />
|
|
51
|
+
</bpmndi:BPMNLabel>
|
|
52
|
+
</bpmndi:BPMNShape>
|
|
53
|
+
<bpmndi:BPMNShape id="Event_0okqf1m_di" bpmnElement="StartEvent_2">
|
|
54
|
+
<dc:Bounds x="92" y="222" width="36" height="36" />
|
|
55
|
+
<bpmndi:BPMNLabel>
|
|
56
|
+
<dc:Bounds x="79" y="265" width="64" height="14" />
|
|
57
|
+
</bpmndi:BPMNLabel>
|
|
58
|
+
</bpmndi:BPMNShape>
|
|
59
|
+
<bpmndi:BPMNEdge id="Flow_0gyaiob_di" bpmnElement="Flow_0gyaiob">
|
|
60
|
+
<di:waypoint x="128" y="100" />
|
|
61
|
+
<di:waypoint x="154" y="100" />
|
|
62
|
+
<di:waypoint x="154" y="170" />
|
|
63
|
+
<di:waypoint x="180" y="170" />
|
|
64
|
+
</bpmndi:BPMNEdge>
|
|
65
|
+
<bpmndi:BPMNEdge id="Flow_1vz3m6d_di" bpmnElement="Flow_1vz3m6d">
|
|
66
|
+
<di:waypoint x="280" y="170" />
|
|
67
|
+
<di:waypoint x="332" y="170" />
|
|
68
|
+
</bpmndi:BPMNEdge>
|
|
69
|
+
<bpmndi:BPMNEdge id="Flow_02bhdfx_di" bpmnElement="Flow_02bhdfx">
|
|
70
|
+
<di:waypoint x="128" y="240" />
|
|
71
|
+
<di:waypoint x="154" y="240" />
|
|
72
|
+
<di:waypoint x="154" y="170" />
|
|
73
|
+
<di:waypoint x="180" y="170" />
|
|
74
|
+
</bpmndi:BPMNEdge>
|
|
75
|
+
</bpmndi:BPMNPlane>
|
|
76
|
+
</bpmndi:BPMNDiagram>
|
|
77
|
+
</bpmn:definitions>
|
|
@@ -0,0 +1,91 @@
|
|
|
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="NodeRedExternalTask_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="NodeRedExternalTask" processRef="NodeRedExternalTask_Process" />
|
|
5
|
+
</bpmn:collaboration>
|
|
6
|
+
<bpmn:process id="NodeRedExternalTask_Process" name="NodeRedExternalTask" isExecutable="true">
|
|
7
|
+
<bpmn:laneSet>
|
|
8
|
+
<bpmn:lane id="Lane_1xzf0d3">
|
|
9
|
+
<bpmn:flowNodeRef>StartEvent_1</bpmn:flowNodeRef>
|
|
10
|
+
<bpmn:flowNodeRef>Activity_1h843f0</bpmn:flowNodeRef>
|
|
11
|
+
<bpmn:flowNodeRef>Event_0z1wtnd</bpmn:flowNodeRef>
|
|
12
|
+
<bpmn:flowNodeRef>Activity_1y52hvq</bpmn:flowNodeRef>
|
|
13
|
+
<bpmn:flowNodeRef>Activity_1duxvq1</bpmn:flowNodeRef>
|
|
14
|
+
</bpmn:lane>
|
|
15
|
+
</bpmn:laneSet>
|
|
16
|
+
<bpmn:startEvent id="StartEvent_1" name="Start">
|
|
17
|
+
<bpmn:outgoing>Flow_1xfzejj</bpmn:outgoing>
|
|
18
|
+
</bpmn:startEvent>
|
|
19
|
+
<bpmn:sequenceFlow id="Flow_1xfzejj" sourceRef="StartEvent_1" targetRef="Activity_1h843f0" />
|
|
20
|
+
<bpmn:serviceTask id="Activity_1h843f0" name="Node Red Flow" camunda:type="external" camunda:topic="Test">
|
|
21
|
+
<bpmn:extensionElements>
|
|
22
|
+
<camunda:properties>
|
|
23
|
+
<camunda:property name="payload" value="{ test: 1 }" />
|
|
24
|
+
</camunda:properties>
|
|
25
|
+
</bpmn:extensionElements>
|
|
26
|
+
<bpmn:incoming>Flow_1xfzejj</bpmn:incoming>
|
|
27
|
+
<bpmn:outgoing>Flow_110cohh</bpmn:outgoing>
|
|
28
|
+
</bpmn:serviceTask>
|
|
29
|
+
<bpmn:sequenceFlow id="Flow_110cohh" sourceRef="Activity_1h843f0" targetRef="Activity_1duxvq1" />
|
|
30
|
+
<bpmn:sequenceFlow id="Flow_1u1afua" sourceRef="Activity_1duxvq1" targetRef="Activity_1y52hvq" />
|
|
31
|
+
<bpmn:endEvent id="Event_0z1wtnd">
|
|
32
|
+
<bpmn:incoming>Flow_1oiihw7</bpmn:incoming>
|
|
33
|
+
</bpmn:endEvent>
|
|
34
|
+
<bpmn:task id="Activity_1y52hvq" name="do wait">
|
|
35
|
+
<bpmn:incoming>Flow_1u1afua</bpmn:incoming>
|
|
36
|
+
<bpmn:outgoing>Flow_1oiihw7</bpmn:outgoing>
|
|
37
|
+
</bpmn:task>
|
|
38
|
+
<bpmn:sequenceFlow id="Flow_1oiihw7" sourceRef="Activity_1y52hvq" targetRef="Event_0z1wtnd" />
|
|
39
|
+
<bpmn:serviceTask id="Activity_1duxvq1" name="get process models" camunda:type="external" camunda:topic="processmodels">
|
|
40
|
+
<bpmn:incoming>Flow_110cohh</bpmn:incoming>
|
|
41
|
+
<bpmn:outgoing>Flow_1u1afua</bpmn:outgoing>
|
|
42
|
+
</bpmn:serviceTask>
|
|
43
|
+
</bpmn:process>
|
|
44
|
+
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
|
45
|
+
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_1cidyxu">
|
|
46
|
+
<bpmndi:BPMNShape id="Participant_0px403d_di" bpmnElement="Participant_0px403d" isHorizontal="true">
|
|
47
|
+
<dc:Bounds x="5" y="4" width="885" height="346" />
|
|
48
|
+
</bpmndi:BPMNShape>
|
|
49
|
+
<bpmndi:BPMNShape id="Lane_1xzf0d3_di" bpmnElement="Lane_1xzf0d3" isHorizontal="true">
|
|
50
|
+
<dc:Bounds x="35" y="4" width="855" height="346" />
|
|
51
|
+
</bpmndi:BPMNShape>
|
|
52
|
+
<bpmndi:BPMNShape id="StartEvent_1_di" bpmnElement="StartEvent_1">
|
|
53
|
+
<dc:Bounds x="92" y="152" width="36" height="36" />
|
|
54
|
+
<bpmndi:BPMNLabel>
|
|
55
|
+
<dc:Bounds x="98" y="195" width="24" height="14" />
|
|
56
|
+
</bpmndi:BPMNLabel>
|
|
57
|
+
</bpmndi:BPMNShape>
|
|
58
|
+
<bpmndi:BPMNShape id="Activity_0sg2du2_di" bpmnElement="Activity_1h843f0">
|
|
59
|
+
<dc:Bounds x="180" y="130" width="100" height="80" />
|
|
60
|
+
<bpmndi:BPMNLabel />
|
|
61
|
+
</bpmndi:BPMNShape>
|
|
62
|
+
<bpmndi:BPMNShape id="Event_0z1wtnd_di" bpmnElement="Event_0z1wtnd">
|
|
63
|
+
<dc:Bounds x="692" y="152" width="36" height="36" />
|
|
64
|
+
</bpmndi:BPMNShape>
|
|
65
|
+
<bpmndi:BPMNShape id="Activity_1y52hvq_di" bpmnElement="Activity_1y52hvq">
|
|
66
|
+
<dc:Bounds x="540" y="130" width="100" height="80" />
|
|
67
|
+
<bpmndi:BPMNLabel />
|
|
68
|
+
</bpmndi:BPMNShape>
|
|
69
|
+
<bpmndi:BPMNShape id="Activity_1ohliek_di" bpmnElement="Activity_1duxvq1">
|
|
70
|
+
<dc:Bounds x="370" y="130" width="100" height="80" />
|
|
71
|
+
<bpmndi:BPMNLabel />
|
|
72
|
+
</bpmndi:BPMNShape>
|
|
73
|
+
<bpmndi:BPMNEdge id="Flow_1xfzejj_di" bpmnElement="Flow_1xfzejj">
|
|
74
|
+
<di:waypoint x="128" y="170" />
|
|
75
|
+
<di:waypoint x="180" y="170" />
|
|
76
|
+
</bpmndi:BPMNEdge>
|
|
77
|
+
<bpmndi:BPMNEdge id="Flow_110cohh_di" bpmnElement="Flow_110cohh">
|
|
78
|
+
<di:waypoint x="280" y="170" />
|
|
79
|
+
<di:waypoint x="370" y="170" />
|
|
80
|
+
</bpmndi:BPMNEdge>
|
|
81
|
+
<bpmndi:BPMNEdge id="Flow_1u1afua_di" bpmnElement="Flow_1u1afua">
|
|
82
|
+
<di:waypoint x="470" y="170" />
|
|
83
|
+
<di:waypoint x="540" y="170" />
|
|
84
|
+
</bpmndi:BPMNEdge>
|
|
85
|
+
<bpmndi:BPMNEdge id="Flow_1oiihw7_di" bpmnElement="Flow_1oiihw7">
|
|
86
|
+
<di:waypoint x="640" y="170" />
|
|
87
|
+
<di:waypoint x="692" y="170" />
|
|
88
|
+
</bpmndi:BPMNEdge>
|
|
89
|
+
</bpmndi:BPMNPlane>
|
|
90
|
+
</bpmndi:BPMNDiagram>
|
|
91
|
+
</bpmn:definitions>
|