Skip to content

Commit

Permalink
FOOP
Browse files Browse the repository at this point in the history
  • Loading branch information
nikku committed Jan 30, 2024
1 parent c6c9778 commit 536192e
Show file tree
Hide file tree
Showing 51 changed files with 525 additions and 11 deletions.
5 changes: 5 additions & 0 deletions .bpmnlintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"rules": {
"superfluous-label": "error"
}
}
1 change: 1 addition & 0 deletions config/all.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ const allRules = [
'start-event-required',
'sub-process-blank-start-event',
'superfluous-gateway',
'superfluous-label',
'superfluous-termination'
];

Expand Down
3 changes: 2 additions & 1 deletion config/recommended.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ module.exports = {
'start-event-required': 'error',
'sub-process-blank-start-event': 'error',
'superfluous-gateway': 'warn',
'superfluous-termination': 'warn'
'superfluous-termination': 'warn',
'superfluous-label': 'warn'
}
};
Binary file modified docs/rules/examples/conditional-flows-correct.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/conditional-flows-incorrect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/end-event-required-correct.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/end-event-required-incorrect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/fake-join-correct.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/fake-join-incorrect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/label-required-correct.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/label-required-incorrect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-bpmndi-correct.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-bpmndi-incorrect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-complex-gateway-correct.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-complex-gateway-incorrect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-disconnected-correct.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-disconnected-incorrect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-duplicate-sequence-flows-correct.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-duplicate-sequence-flows-incorrect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-gateway-join-fork-correct.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-gateway-join-fork-incorrect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-implicit-end-correct.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-implicit-end-incorrect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-implicit-split-correct.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-implicit-split-incorrect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-implicit-start-correct.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rules/examples/no-implicit-start-incorrect.png
Binary file modified docs/rules/examples/no-inclusive-gateway-correct.png
Binary file modified docs/rules/examples/no-inclusive-gateway-incorrect.png
Binary file modified docs/rules/examples/single-blank-start-event-correct.png
Binary file modified docs/rules/examples/single-blank-start-event-incorrect.png
Binary file modified docs/rules/examples/single-event-definition-correct.png
Binary file modified docs/rules/examples/single-event-definition-incorrect.png
Binary file modified docs/rules/examples/start-event-required-correct.png
Binary file modified docs/rules/examples/start-event-required-incorrect.png
Binary file modified docs/rules/examples/sub-process-blank-start-event-correct.png
Binary file modified docs/rules/examples/sub-process-blank-start-event-incorrect.png
Binary file modified docs/rules/examples/superfluous-gateway-correct.png
Binary file modified docs/rules/examples/superfluous-gateway-incorrect.png
71 changes: 71 additions & 0 deletions docs/rules/examples/superfluous-label-correct.bpmn
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<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:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_1xzqysc" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.20.0-nightly.20240107" modeler:executionPlatform="Camunda Cloud" modeler:executionPlatformVersion="8.4.0">
<bpmn:category id="Category_0frzuuu">
<bpmn:categoryValue id="CategoryValue_1c207z7" value="YES" />
</bpmn:category>
<bpmn:process id="Process_1gm33ca" isExecutable="true">
<bpmn:task id="Activity_1y46za8">
<bpmn:incoming>Flow_19gm6uu</bpmn:incoming>
<bpmn:outgoing>Flow_0pcvi6i</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Activity_1rk2pdz">
<bpmn:incoming>Flow_1dy8u2b</bpmn:incoming>
<bpmn:outgoing>Flow_1sspqal</bpmn:outgoing>
</bpmn:task>
<bpmn:sequenceFlow id="Flow_1sspqal" sourceRef="Activity_1rk2pdz" targetRef="Event_1w640go" />
<bpmn:startEvent id="Event_146g3it">
<bpmn:outgoing>Flow_1dy8u2b</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:sequenceFlow id="Flow_1dy8u2b" sourceRef="Event_146g3it" targetRef="Activity_1rk2pdz" />
<bpmn:endEvent id="Event_1luh0vb">
<bpmn:incoming>Flow_0pcvi6i</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_0pcvi6i" sourceRef="Activity_1y46za8" targetRef="Event_1luh0vb" />
<bpmn:intermediateThrowEvent id="Event_1w640go" name="order submitted">
<bpmn:incoming>Flow_1sspqal</bpmn:incoming>
<bpmn:outgoing>Flow_19gm6uu</bpmn:outgoing>
</bpmn:intermediateThrowEvent>
<bpmn:sequenceFlow id="Flow_19gm6uu" sourceRef="Event_1w640go" targetRef="Activity_1y46za8" />
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1gm33ca">
<bpmndi:BPMNShape id="Activity_1rk2pdz_di" bpmnElement="Activity_1rk2pdz">
<dc:Bounds x="250" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_146g3it_di" bpmnElement="Event_146g3it">
<dc:Bounds x="152" y="102" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1w640go_di" bpmnElement="Event_1w640go">
<dc:Bounds x="402" y="102" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="382" y="145" width="77" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1y46za8_di" bpmnElement="Activity_1y46za8">
<dc:Bounds x="480" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1luh0vb_di" bpmnElement="Event_1luh0vb">
<dc:Bounds x="642" y="102" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1sspqal_di" bpmnElement="Flow_1sspqal">
<di:waypoint x="350" y="120" />
<di:waypoint x="402" y="120" />
<bpmndi:BPMNLabel>
<dc:Bounds x="420.9999999999999" y="102" width="62" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1dy8u2b_di" bpmnElement="Flow_1dy8u2b">
<di:waypoint x="188" y="120" />
<di:waypoint x="250" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_19gm6uu_di" bpmnElement="Flow_19gm6uu">
<di:waypoint x="438" y="120" />
<di:waypoint x="480" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0pcvi6i_di" bpmnElement="Flow_0pcvi6i">
<di:waypoint x="580" y="120" />
<di:waypoint x="642" y="120" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>
Binary file added docs/rules/examples/superfluous-label-correct.png
56 changes: 56 additions & 0 deletions docs/rules/examples/superfluous-label-incorrect.bpmn
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<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:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_1xzqysc" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.20.0-nightly.20240107" modeler:executionPlatform="Camunda Cloud" modeler:executionPlatformVersion="8.4.0">
<bpmn:category id="Category_0frzuuu">
<bpmn:categoryValue id="CategoryValue_1c207z7" value="YES" />
</bpmn:category>
<bpmn:process id="Process_1gm33ca" isExecutable="true">
<bpmn:task id="Activity_1y46za8">
<bpmn:incoming>Flow_1sspqal</bpmn:incoming>
<bpmn:outgoing>Flow_0pcvi6i</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Activity_1rk2pdz">
<bpmn:incoming>Flow_1dy8u2b</bpmn:incoming>
<bpmn:outgoing>Flow_1sspqal</bpmn:outgoing>
</bpmn:task>
<bpmn:sequenceFlow id="Flow_1sspqal" name="submit order" sourceRef="Activity_1rk2pdz" targetRef="Activity_1y46za8" />
<bpmn:startEvent id="Event_146g3it">
<bpmn:outgoing>Flow_1dy8u2b</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:sequenceFlow id="Flow_1dy8u2b" sourceRef="Event_146g3it" targetRef="Activity_1rk2pdz" />
<bpmn:endEvent id="Event_1luh0vb">
<bpmn:incoming>Flow_0pcvi6i</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_0pcvi6i" sourceRef="Activity_1y46za8" targetRef="Event_1luh0vb" />
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1gm33ca">
<bpmndi:BPMNShape id="Activity_1y46za8_di" bpmnElement="Activity_1y46za8">
<dc:Bounds x="490" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1rk2pdz_di" bpmnElement="Activity_1rk2pdz">
<dc:Bounds x="250" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_146g3it_di" bpmnElement="Event_146g3it">
<dc:Bounds x="152" y="102" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1luh0vb_di" bpmnElement="Event_1luh0vb">
<dc:Bounds x="652" y="102" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1sspqal_di" bpmnElement="Flow_1sspqal">
<di:waypoint x="350" y="120" />
<di:waypoint x="490" y="120" />
<bpmndi:BPMNLabel>
<dc:Bounds x="389" y="102" width="62" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0pcvi6i_di" bpmnElement="Flow_0pcvi6i">
<di:waypoint x="590" y="120" />
<di:waypoint x="652" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1dy8u2b_di" bpmnElement="Flow_1dy8u2b">
<di:waypoint x="188" y="120" />
<di:waypoint x="250" y="120" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>
17 changes: 17 additions & 0 deletions docs/rules/superfluous-label.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Redundant Label (superfluous-label)

A rule that checks that no redundant labels are present in a diagram.
Redundant labels duplicate already existing information or may indicate miss-understanding of BPMN semantics.

Example of __incorrect__ usage for this rule:

![Incorrect usage example](./examples/superfluous-label-incorrect.png)

Cf. [`superfluous-label-incorrect.bpmn`](./examples/superfluous-label-incorrect.bpmn).


Example of __correct__ usage for this rule:

![Correct usage example](./examples/superfluous-label-correct.png)

Cf. [`superfluous-label.bpmn`](./examples/superfluous-label-correct.bpmn).
50 changes: 50 additions & 0 deletions rules/superfluous-label.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
const {
is
} = require('bpmnlint-utils');


/**
* A rule that checks the presence of a label.
*/
module.exports = function() {

function check(node, reporter) {

const name = (node.name || '').trim();

if (!name) {
return;
}

// match joining gateways _AND_ unconditional
// sequence flows only
if (
(is(node, 'bpmn:Gateway') && !isForking(node)) ||
(is(node, 'bpmn:SequenceFlow') && !isConditional(node))
) {

reporter.report(node.id, 'Element has superfluous label/name', [ 'name' ]);
}

}

return { check };
};


// helpers ////////////////////////

function isForking(node) {
const outgoing = (node && node.outgoing) || [];

console.log('isForking', node, outgoing.length > 1);
return outgoing.length > 1;
}

function isConditional(node) {
const source = node.sourceRef;

return (
node.conditionExpression && !source['default'] === node
);
}
25 changes: 15 additions & 10 deletions test/integration/compilation/test/bpmnlintrc.expected.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ const rules = {
"sub-process-blank-start-event": "error",
"superfluous-gateway": "warn",
"superfluous-termination": "warn",
"superfluous-label": "warn",
"test/no-label-foo": "error",
"exported/foo": "error",
"exported/bar": "error",
Expand Down Expand Up @@ -154,22 +155,26 @@ import rule_20 from 'bpmnlint/rules/superfluous-termination';

cache['bpmnlint/superfluous-termination'] = rule_20;

import rule_21 from 'bpmnlint-plugin-test/rules/no-label-foo';
import rule_21 from 'bpmnlint/rules/superfluous-label';

cache['bpmnlint-plugin-test/no-label-foo'] = rule_21;
cache['bpmnlint/superfluous-label'] = rule_21;

import rule_22 from 'bpmnlint-plugin-exported/src/foo';
import rule_22 from 'bpmnlint-plugin-test/rules/no-label-foo';

cache['bpmnlint-plugin-exported/foo'] = rule_22;
cache['bpmnlint-plugin-test/no-label-foo'] = rule_22;

import rule_23 from 'bpmnlint-plugin-exported/src/bar';
import rule_23 from 'bpmnlint-plugin-exported/src/foo';

cache['bpmnlint-plugin-exported/bar'] = rule_23;
cache['bpmnlint-plugin-exported/foo'] = rule_23;

import rule_24 from 'bpmnlint-plugin-exported/rules/baz';
import rule_24 from 'bpmnlint-plugin-exported/src/bar';

cache['bpmnlint-plugin-exported/baz'] = rule_24;
cache['bpmnlint-plugin-exported/bar'] = rule_24;

import rule_25 from 'bpmnlint-plugin-exported/src/foo';
import rule_25 from 'bpmnlint-plugin-exported/rules/baz';

cache['bpmnlint-plugin-exported/foo-absolute'] = rule_25;
cache['bpmnlint-plugin-exported/baz'] = rule_25;

import rule_26 from 'bpmnlint-plugin-exported/src/foo';

cache['bpmnlint-plugin-exported/foo-absolute'] = rule_26;
56 changes: 56 additions & 0 deletions test/rules/superfluous-label.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import RuleTester from '../../lib/testers/rule-tester.js';

import rule from '../../rules/superfluous-label.js';

import {
readModdle
} from '../../lib/testers/helper.js';

import { stubCJS } from '../helper.mjs';

const {
__dirname
} = stubCJS(import.meta.url);


const message = 'Element has superfluous label/name';


RuleTester.verify('superfluous-label', rule, {
valid: [
{
moddleElement: readModdle(__dirname + '/superfluous-label/valid.bpmn')
}
],
invalid: [
{
moddleElement: readModdle(__dirname + '/no-gateway-join-fork/invalid.bpmn'),
report: [
{
id: 'GATEWAY',
message,
path: [
'name'
],
category: 'error'
},
{
id: 'DEFAULT_FLOW',
message,
path: [
'name'
],
category: 'error'
},
{
id: 'SIMPLE_FLOW',
message,
path: [
'name'
],
category: 'error'
}
]
}
]
});
59 changes: 59 additions & 0 deletions test/rules/superfluous-label/invalid.bpmn
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<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:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_1xzqysc" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.20.0-nightly.20240107" modeler:executionPlatform="Camunda Cloud" modeler:executionPlatformVersion="8.4.0">
<bpmn:category id="Category_0frzuuu">
<bpmn:categoryValue id="CategoryValue_1c207z7" value="YES" />
</bpmn:category>
<bpmn:process id="Process_1gm33ca" isExecutable="true">
<bpmn:task id="Activity_09ai1fm">
<bpmn:incoming>DEFAULT_FLOW</bpmn:incoming>
</bpmn:task>
<bpmn:task id="Activity_13btrmx" default="DEFAULT_FLOW">
<bpmn:outgoing>DEFAULT_FLOW</bpmn:outgoing>
</bpmn:task>
<bpmn:exclusiveGateway id="GATEWAY" name="YES" />
<bpmn:sequenceFlow id="DEFAULT_FLOW" name="YES" sourceRef="Activity_13btrmx" targetRef="Activity_09ai1fm" />
<bpmn:task id="Activity_1y46za8">
<bpmn:outgoing>SIMPLE_FLOW</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Activity_1rk2pdz">
<bpmn:incoming>SIMPLE_FLOW</bpmn:incoming>
</bpmn:task>
<bpmn:sequenceFlow id="SIMPLE_FLOW" name="YES" sourceRef="Activity_1y46za8" targetRef="Activity_1rk2pdz" />
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1gm33ca">
<bpmndi:BPMNShape id="BPMNShape_1dehp3m" bpmnElement="Activity_09ai1fm">
<dc:Bounds x="540" y="270" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0w2bqdl" bpmnElement="Activity_13btrmx">
<dc:Bounds x="290" y="270" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0b6gxc3" bpmnElement="GATEWAY" isMarkerVisible="true">
<dc:Bounds x="705" y="122" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="719" y="92" width="22" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1y46za8_di" bpmnElement="Activity_1y46za8">
<dc:Bounds x="160" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1rk2pdz_di" bpmnElement="Activity_1rk2pdz">
<dc:Bounds x="340" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="BPMNEdge_1qj5lpq" bpmnElement="DEFAULT_FLOW">
<di:waypoint x="390" y="310" />
<di:waypoint x="540" y="310" />
<bpmndi:BPMNLabel>
<dc:Bounds x="454" y="292" width="22" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0tg4vy1_di" bpmnElement="SIMPLE_FLOW">
<di:waypoint x="260" y="120" />
<di:waypoint x="340" y="120" />
<bpmndi:BPMNLabel>
<dc:Bounds x="289" y="102" width="22" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>
Loading

0 comments on commit 536192e

Please sign in to comment.