@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.
@@ -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>
@@ -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="{&#10; test: 1&#10;}" />
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>