call-activity.bpmn20.xml
5.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:flowable="http://flowable.org/bpmn"
targetNamespace="http://www.yudao.iocoder.cn/bpm">
<!-- 子流程多实例:与 SimpleModelUtils 生成的结构一致(子流程发起人同主流程),被调用的子流程为 multiChild -->
<process id="multiChild" name="子流程" isExecutable="true">
<startEvent id="multiChild-start"/>
<sequenceFlow id="multiChild-flow-start" sourceRef="multiChild-start" targetRef="multiChild-task"/>
<userTask id="multiChild-task" name="子流程审批">
<extensionElements>
<flowable:candidateStrategy>30</flowable:candidateStrategy>
</extensionElements>
</userTask>
<sequenceFlow id="multiChild-flow-task" sourceRef="multiChild-task" targetRef="multiChild-end"/>
<endEvent id="multiChild-end"/>
</process>
<!-- 固定数量:并行发起 2 个子流程 -->
<process id="multiChildFixedQuantity" name="固定数量子流程" isExecutable="true">
<startEvent id="multiChildFixedQuantity-start"/>
<sequenceFlow id="multiChildFixedQuantity-flow-start" sourceRef="multiChildFixedQuantity-start" targetRef="multiChildFixedQuantity-child"/>
<callActivity id="multiChildFixedQuantity-child" name="子流程" calledElement="multiChild" flowable:calledElementType="key">
<extensionElements>
<flowable:childProcessMultiInstanceSourceType>1</flowable:childProcessMultiInstanceSourceType>
<flowable:executionListener event="start" delegateExpression="${bpmCallActivityListener}">
<flowable:field name="listenerConfig">
<flowable:string><![CDATA[{"type":1,"emptyType":1}]]></flowable:string>
</flowable:field>
</flowable:executionListener>
</extensionElements>
<multiInstanceLoopCharacteristics isSequential="false">
<loopCardinality>2</loopCardinality>
<completionCondition>${ nrOfCompletedInstances/nrOfInstances >= 1.00}</completionCondition>
</multiInstanceLoopCharacteristics>
</callActivity>
<sequenceFlow id="multiChildFixedQuantity-flow-child" sourceRef="multiChildFixedQuantity-child" targetRef="multiChildFixedQuantity-end"/>
<endEvent id="multiChildFixedQuantity-end"/>
</process>
<!-- 数字表单:并行发起 count 个子流程 -->
<process id="multiChildNumberForm" name="数字表单子流程" isExecutable="true">
<startEvent id="multiChildNumberForm-start"/>
<sequenceFlow id="multiChildNumberForm-flow-start" sourceRef="multiChildNumberForm-start" targetRef="multiChildNumberForm-child"/>
<callActivity id="multiChildNumberForm-child" name="子流程" calledElement="multiChild" flowable:calledElementType="key">
<extensionElements>
<flowable:childProcessMultiInstanceSourceType>2</flowable:childProcessMultiInstanceSourceType>
<flowable:executionListener event="start" delegateExpression="${bpmCallActivityListener}">
<flowable:field name="listenerConfig">
<flowable:string><![CDATA[{"type":1,"emptyType":1}]]></flowable:string>
</flowable:field>
</flowable:executionListener>
</extensionElements>
<multiInstanceLoopCharacteristics isSequential="false" flowable:collection="count">
<completionCondition>${ nrOfCompletedInstances/nrOfInstances >= 1.00}</completionCondition>
</multiInstanceLoopCharacteristics>
</callActivity>
<sequenceFlow id="multiChildNumberForm-flow-child" sourceRef="multiChildNumberForm-child" targetRef="multiChildNumberForm-end"/>
<endEvent id="multiChildNumberForm-end"/>
</process>
<!-- 多选表单:按 users 的数量,依次发起子流程 -->
<process id="multiChildMultipleForm" name="多选表单子流程" isExecutable="true">
<startEvent id="multiChildMultipleForm-start"/>
<sequenceFlow id="multiChildMultipleForm-flow-start" sourceRef="multiChildMultipleForm-start" targetRef="multiChildMultipleForm-child"/>
<callActivity id="multiChildMultipleForm-child" name="子流程" calledElement="multiChild" flowable:calledElementType="key">
<extensionElements>
<flowable:childProcessMultiInstanceSourceType>3</flowable:childProcessMultiInstanceSourceType>
<flowable:executionListener event="start" delegateExpression="${bpmCallActivityListener}">
<flowable:field name="listenerConfig">
<flowable:string><![CDATA[{"type":1,"emptyType":1}]]></flowable:string>
</flowable:field>
</flowable:executionListener>
</extensionElements>
<multiInstanceLoopCharacteristics isSequential="true" flowable:collection="users">
<completionCondition>${ nrOfCompletedInstances/nrOfInstances >= 1.00}</completionCondition>
</multiInstanceLoopCharacteristics>
</callActivity>
<sequenceFlow id="multiChildMultipleForm-flow-child" sourceRef="multiChildMultipleForm-child" targetRef="multiChildMultipleForm-end"/>
<endEvent id="multiChildMultipleForm-end"/>
</process>
</definitions>