包容网关 Inclusive Gateway

包容网关 Inclusive Gateway


什么是包容网关?

包容网关(Inclusive Gateway)就是并行网关(Parallel Gateway)和排他网关(Exclusive Gateway)的组合。可以在出口顺序流上定义条件,包容网关会计算它们。然而主要的区别是,包容网关与并行网关一样,可以选择多于一条(出口)顺序流

包容网关、并行网关和排他网关的异同:

同:

1.都有出口顺序流和入口顺序流。

2.至少有一个分支

异:

1.排他网关只有一条分支被执行,如果有多条符合条件的分支,流程会默认走第一条。并行网关至少有一条分支被执行,而且所有的分支都会被执行。包容网关有多条或者一条分支会被执行。

2.包容网关包括了并行网关和排他网关的所有功能。

使用场合:

不确定分支的情形下面。

例如:

审批部门领导根据不同的条件确定。

审批的会签根据不同的条件确定。

包容网关 Inclusive Gateway_第1张图片

 

 

包容网关两个重要的特性

分支(fork):所有出口顺序流都会被计算,对于计算为true的分支都会被执行。

聚合(join):所有到达包容网关的并行执行,都会在网关处等待,直到每一条具有流程标志的入口顺序流,都有一个执行到达。这是与并行网关的重要区别。换句话说,包容网关只会等待将会被执行的入口顺序流。在合并后,流程穿过合并并行网关继续

 

注意:

1.包容网关基于出口顺序流和入口顺序流。

 

 

图标:

包容网关,用内部带有’圆圈’图标的网关(菱形)表示。

 

 

 

定义:

1 

 

 

案例:

现在一家公司的业务不断扩展,单笔业务涉及到的资金也来越多,合同签订也是这个公司比较担心的事情,生怕合同签订的中间环节由于责任不明确或者层层疏忽而出现漏洞。所以该公司花高价钱买了一套合同呈批系统。使得合同的呈批流程化。需求如下

先是由合同部起草合同

当金额大于0的时候小于1000万,律师1和律师2先仔细初审,律师顾问复核。

当金额大于5000万的时候,律师一和律师二、法律顾问。法律代表团一起审核。

当金额是1000万到5000万的时候,法律代表团决定。

流程设计:

 包容网关 Inclusive Gateway_第2张图片

 

 

三个分支条件:

1.${momey<1000||money>5000}

2.${momey<1000||money>5000}

3. ${momey>1000}

流程代码:

复制代码

  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       5000}]]>
 50 
 51     
 52 
 53     
 54 
 55       5000}]]>
 56 
 57     
 58 
 59     
 60 
 61       1000}]]>
 62 
 63     
 64 
 65     
 66 
 67       小于1000万,律师一和律师二
 68 
 69 1000-5000万,律师代表团
 70 
 71 大于5000万,律师一、律师二和律师代表团
 72 
 73     
 74 
 75   
 76 
 77   
 78 
 79     
 80 
 81       
 82 
 83         
 84 
 85       
 86 
 87       
 88 
 89         
 90 
 91       
 92 
 93       
 94 
 95         
 96 
 97       
 98 
 99       
100 
101         
102 
103       
104 
105       
106 
107         
108 
109       
110 
111       
112 
113         
114 
115       
116 
117       
118 
119         
120 
121       
122 
123       
124 
125         
126 
127       
128 
129       
130 
131         
132 
133       
134 
135       
136 
137         
138 
139       
140 
141       
142 
143         
144 
145       
146 
147       
148 
149         
150 
151       
152 
153       
154 
155         
156 
157         
158 
159         
160 
161       
162 
163       
164 
165         
166 
167         
168 
169         
170 
171       
172 
173       
174 
175         
176 
177         
178 
179       
180 
181       
182 
183         
184 
185         
186 
187         
188 
189       
190 
191       
192 
193         
194 
195         
196 
197         
198 
199       
200 
201       
202 
203         
204 
205         
206 
207         
208 
209       
210 
211       
212 
213         
214 
215         
216 
217         
218 
219       
220 
221       
222 
223         
224 
225         
226 
227       
228 
229       
230 
231         
232 
233         
234 
235         
236 
237       
238 
239       
240 
241         
242 
243         
244 
245       
246 
247       
248 
249         
250 
251         
252 
253       
254 
255       
256 
257         
258 
259         
260 
261       
262 
263     
264 
265   
266 
267 

复制代码

 

 

启动流程

 包容网关 Inclusive Gateway_第3张图片

 

 包容网关 Inclusive Gateway_第4张图片

 

 

起草合同:

 

复制代码

 1 /**查询当前人的个人任务*/
 2 
 3     @Test
 4 
 5     public void findMyPersonalTask(){
 6 
 7         ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
 8 
 9         String assignee="admin";
10 
11         List list=processEngine.getTaskService()//与正在执行的任务管理相关的Service
12 
13         .createTaskQuery() //创建任务查询对象
14 
15         .taskAssignee(assignee)
16 
17         .list();
18 
19         if(list!=null&& list.size()>0){
20 
21             for(Task task:list){
22 
23                 System.out.println("任务的ID:"+task.getId());
24 
25                 System.out.println("任务的名称:"+task.getName());
26 
27                 System.out.println("任务的创建时间:"+task.getCreateTime());
28 
29                 System.out.println("任务的办理人:"+task.getAssignee());
30 
31                 System.out.println("流程实例ID:"+task.getProcessInstanceId());
32 
33                 System.out.println("执行对象ID:"+task.getExecutionId());
34 
35                 System.out.println("流程定义ID:"+task.getProcessDefinitionId());
36 
37                 System.out.println("#########################################################");
38 
39             }
40 
41         }
42 
43        
44 
45     }

复制代码

 

 

 

金额等于100万

   

复制代码

 1  /**完成我的任务*/
 2 
 3     @Test
 4 
 5     public void completeMyPersonalTask1(){
 6 
 7         ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
 8 
 9         String taskId="417511";
10 
11         Map variables=new HashMap();
12 
13         variables.put("money", 100);    
14 
15         processEngine.getTaskService()//与正在执行的案例管理相关的Service
16 
17         .complete(taskId,variables);       
18 
19         System.out.println("完成任务,任务ID:"+taskId);
20 
21     }

复制代码

 

   

 

 包容网关 Inclusive Gateway_第5张图片

包容网关 Inclusive Gateway_第6张图片

 

 

 包容网关 Inclusive Gateway_第7张图片

 

 

完成律师一的任务:

 

 包容网关 Inclusive Gateway_第8张图片

包容网关 Inclusive Gateway_第9张图片

 

完成律师二的任务:

 

 包容网关 Inclusive Gateway_第10张图片

包容网关 Inclusive Gateway_第11张图片

 

完成律师顾问的任务:

 

 包容网关 Inclusive Gateway_第12张图片

 

 包容网关 Inclusive Gateway_第13张图片

 

到此,任务已经完成。

 

金额等于1050万

复制代码

 1 /**完成我的任务*/
 2 
 3     @Test
 4 
 5     public void completeMyPersonalTask1(){
 6 
 7         ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
 8 
 9         String taskId="417523";
10 
11         Map variables=new HashMap();
12 
13         variables.put("money", 1050);       
14 
15         processEngine.getTaskService()//与正在执行的案例管理相关的Service
16 
17         .complete(taskId,variables);       
18 
19         System.out.println("完成任务,任务ID:"+taskId);
20 
21     }

复制代码

 

 

 包容网关 Inclusive Gateway_第14张图片

包容网关 Inclusive Gateway_第15张图片

 

 

完成任务,就又到了签订合同环节。

 

 包容网关 Inclusive Gateway_第16张图片

 

金额等于5050万

 

   

复制代码

 1  /**完成我的任务*/
 2 
 3     @Test
 4 
 5     public void completeMyPersonalTask1(){
 6 
 7         ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
 8 
 9         String taskId="417534";
10 
11         Map variables=new HashMap();
12 
13         variables.put("money", 5050);       
14 
15         processEngine.getTaskService()//与正在执行的案例管理相关的Service
16 
17         .complete(taskId,variables);       
18 
19         System.out.println("完成任务,任务ID:"+taskId);
20 
21     }

复制代码

 

 

 包容网关 Inclusive Gateway_第17张图片

包容网关 Inclusive Gateway_第18张图片

 

 包容网关 Inclusive Gateway_第19张图片

 

 

 包容网关 Inclusive Gateway_第20张图片

 

 

 

完成律师代表团任务:

 

 包容网关 Inclusive Gateway_第21张图片

 

完成了律师代表团的任务后,就需要等待律师和律师顾问的任务完成。

 

 

 

假如是包容网关和排他网关:

流程设计图:

 包容网关 Inclusive Gateway_第22张图片

 

流程代码:

复制代码

  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       5000}]]>
 44 
 45     
 46 
 47     
 48 
 49       5000}]]>
 50 
 51     
 52 
 53     
 54 
 55       1000}]]>
 56 
 57     
 58 
 59     
 60 
 61     
 62 
 63     
 64 
 65     
 66 
 67       小于1000万,律师一和律师二
 68 
 69 1000-5000万,律师代表团
 70 
 71 大于5000万,律师一、律师二和律师代表团
 72 
 73     
 74 
 75   
 76 
 77   
 78 
 79     
 80 
 81       
 82 
 83         
 84 
 85       
 86 
 87       
 88 
 89         
 90 
 91       
 92 
 93       
 94 
 95         
 96 
 97       
 98 
 99       
100 
101         
102 
103       
104 
105       
106 
107         
108 
109       
110 
111       
112 
113         
114 
115       
116 
117       
118 
119         
120 
121       
122 
123       
124 
125         
126 
127       
128 
129       
130 
131         
132 
133       
134 
135       
136 
137         
138 
139       
140 
141       
142 
143         
144 
145       
146 
147       
148 
149         
150 
151       
152 
153       
154 
155         
156 
157         
158 
159         
160 
161       
162 
163       
164 
165         
166 
167         
168 
169         
170 
171       
172 
173       
174 
175         
176 
177         
178 
179       
180 
181       
182 
183         
184 
185         
186 
187         
188 
189       
190 
191       
192 
193         
194 
195         
196 
197         
198 
199       
200 
201       
202 
203         
204 
205         
206 
207         
208 
209       
210 
211       
212 
213         
214 
215         
216 
217         
218 
219       
220 
221       
222 
223         
224 
225         
226 
227       
228 
229       
230 
231         
232 
233         
234 
235       
236 
237       
238 
239         
240 
241         
242 
243         
244 
245       
246 
247       
248 
249         
250 
251         
252 
253       
254 
255       
256 
257         
258 
259         
260 
261       
262 
263     
264 
265   
266 
267 

复制代码

 

金额5050万

 包容网关 Inclusive Gateway_第23张图片

 

 

 包容网关 Inclusive Gateway_第24张图片

 

 包容网关 Inclusive Gateway_第25张图片

 

 

你会发现流程出现了混乱,跑得快的流程具有一票否决的能力。这是因为排他网关只是需要等到一条合流便可以继续往下执行。

 

假如是包容网关和并行网关呢?

流程设计图:

 包容网关 Inclusive Gateway_第26张图片

 

流程代码:

复制代码

  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       5000}]]>
 42 
 43     
 44 
 45     
 46 
 47       5000}]]>
 48 
 49     
 50 
 51     
 52 
 53       1000}]]>
 54 
 55     
 56 
 57     
 58 
 59     
 60 
 61     
 62 
 63     
 64 
 65     
 66 
 67       小于1000万,律师一和律师二
 68 
 69 1000-5000万,律师代表团
 70 
 71 大于5000万,律师一、律师二和律师代表团
 72 
 73     
 74 
 75   
 76 
 77   
 78 
 79     
 80 
 81       
 82 
 83         
 84 
 85       
 86 
 87       
 88 
 89         
 90 
 91       
 92 
 93       
 94 
 95         
 96 
 97       
 98 
 99       
100 
101         
102 
103       
104 
105       
106 
107         
108 
109       
110 
111       
112 
113         
114 
115       
116 
117       
118 
119         
120 
121       
122 
123       
124 
125         
126 
127       
128 
129       
130 
131         
132 
133       
134 
135       
136 
137         
138 
139       
140 
141       
142 
143         
144 
145       
146 
147       
148 
149         
150 
151       
152 
153       
154 
155         
156 
157         
158 
159         
160 
161       
162 
163       
164 
165         
166 
167         
168 
169         
170 
171       
172 
173       
174 
175         
176 
177         
178 
179       
180 
181       
182 
183         
184 
185         
186 
187         
188 
189       
190 
191       
192 
193         
194 
195         
196 
197         
198 
199       
200 
201       
202 
203         
204 
205         
206 
207         
208 
209       
210 
211       
212 
213         
214 
215         
216 
217         
218 
219       
220 
221       
222 
223         
224 
225         
226 
227       
228 
229       
230 
231         
232 
233         
234 
235       
236 
237       
238 
239         
240 
241         
242 
243         
244 
245       
246 
247       
248 
249         
250 
251         
252 
253       
254 
255       
256 
257         
258 
259         
260 
261       
262 
263     
264 
265   
266 
267 

复制代码

 

金额5050万

 包容网关 Inclusive Gateway_第27张图片

 

完成律师代表团的任务,会不会直接跳到合同签订?如果不会,说明,流程是正常的,如果是会,说明流程已经发生了混乱。

 包容网关 Inclusive Gateway_第28张图片

 

可以看出流程正常的。

 

结论

综上得出,包容网关可以和并行网关混合使用。在个别情况下面。

并行网关+包容网关=并行网关(不会混乱)

包容网关+并行网关=包容网关(不会混乱)

排他网关+包容网关=排他网关(不会混乱)

包容网关+排他网关=排他网关(会混乱)

你可能感兴趣的:(Design)