什么是包含網關?
包含網關可以看做是排他網關和並行網關的結合體,和排他網關一樣,你可以在外出順序流上定義條件,包含網關會解析他們,但是主要的區別是包含網關可以選擇多於一條順序流,這和並行網關是一樣的
其實在我看來就是
排他網關:解析條件,要不報錯,要不走一個
並行網關:不解析條件,不報錯,都走
包含網關:解析條件,條件成立就走,不成立就不走,全都不成立報錯
需求:
體檢流程
如果是領導 就走 常規,抽血,VIP,普通員工只走常規,抽血
使用流程變量控制
領導:userType=2
員工:userType=1

package com.itheima.test.testGateWay; import org.activiti.engine.*; import org.activiti.engine.repository.Deployment; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.junit.Before; import java.util.HashMap; import java.util.Map; /** * 測試包含網關 */ public class Test { ProcessEngine defaultProcessEngine; @Before public void init() { defaultProcessEngine = ProcessEngines.getDefaultProcessEngine(); } @org.junit.Test public void deployment(){ RepositoryService repositoryService = defaultProcessEngine.getRepositoryService(); Deployment deploy = repositoryService.createDeployment() .addClasspathResource("pic/gateway/holidayGateway3.bpmn") .name("體檢流程") .deploy(); System.out.println(deploy); } @org.junit.Test public void startProcessInstance(){ RuntimeService runtimeService = defaultProcessEngine.getRuntimeService(); Integer userType = 1; Map<String,Object> map = new HashMap<>(); map.put("userType",userType); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess_1", map); System.out.println(processInstance); } /** * 提交任務 */ @org.junit.Test public void completTask(){ String assignee = "sunqi"; Task task = querySingResultByAssignee(assignee); System.out.println(task); TaskService taskService = defaultProcessEngine.getTaskService(); taskService.complete(task.getId()); } /** * 查詢用戶唯一任務 * @param assignee * @return */ public Task querySingResultByAssignee(String assignee){ TaskService taskService = defaultProcessEngine.getTaskService(); return taskService.createTaskQuery().processDefinitionKey("myProcess_1").taskAssignee(assignee).singleResult(); } }
主要查看act_hi_actinst表的流程變化,既可以發現
userType=1 領取->常規->抽血->早餐->結束
userType=2 領取->常規->抽血->早餐->VIP->結束
作者:彼岸舞
時間:2020\09\08
內容關於:Activiti工作流
本文來源於網絡,只做技術分享,一概不負任何責任
