activiti 并行网关后面能接activit 排他网关关吗

花须折时直须折,莫待无花空折枝.落花风雨更伤春,不如怜取眼前人
Table of Contents
List of Tables
2.1. 2.2. 3.1. 3.2. 6.1.6.2.6.3.8.1. 8.2. 8.3. 8.4. 8.5. 8.6. 8.7. 15.1. 15.2. 15.3. 15.4. 15.5. 15.6. 15.7. 15.8. 15.9. 15.10. 15.11. 15.12. 15.13. 15.14. 15.15. 15.16. 15.17. 15.18. 15.19. 15.20. 15.21. 15.22. 15.23. 15.24. 15.25. 15.26. 15.27. 15.28. 15.29. 15.30. 15.31. 15.32. 15.33. 15.34. 15.35. 15.36. 15.37. 15.38. 15.39. 15.40. 15.41. 15.42. 15.43. 15.44. 15.45. 15.46. 15.47. 15.48. 15.49. 15.50. 15.51. 15.52. 15.53. 15.54. 15.55. 15.56. 15.57. 15.58. 15.59. 15.60. 15.61. 15.62. 15.63. 15.64. 15.65. 15.66. 15.67. 15.68. 15.69. 15.70. 15.71. 15.72. 15.73. 15.74. 15.75. 15.76. 15.77. 15.78. 15.79. 15.80. 15.81. 15.82. 15.83. 15.84. 15.85. 15.86. 15.87. 15.88. 15.89. 15.90. 15.91. 15.92. 15.93. 15.94. 15.95. 15.96. 15.97. 15.98. 15.99. 15.100. 15.101. 15.102. 15.103. 15.104. 15.105. 15.106. 15.107. 15.108. 15.109. 15.110. 15.111. 15.112. 15.113. 15.114. 15.115. 15.116. 15.117. 15.118. 15.119. 15.120. 15.121. 15.122. 15.123. 15.124. 15.125. 15.126. 15.127. 15.128. 15.129. 15.130. 15.131. 15.132. 15.133. 15.134. 15.135. 15.136. 15.137. 15.138. 15.139. 15.140. 15.141. 15.142. 15.143. 15.144. 15.145. 15.146. 15.147. 15.148. 15.149. 15.150. 15.151. 15.152. 15.153. 15.154. 15.155. 15.156. 15.157. 15.158. 15.159. 15.160. 15.161. 15.162. 15.163. 15.164. 15.165. 15.166. 15.167. 15.168. 15.169. 15.170. 15.171. 15.172. 15.173. 15.174. 15.175. 15.176. 15.177. 15.178. 15.179. 15.180. 15.181. 15.182. 15.183. 15.184. 15.185. 15.186. 15.187. 15.188. 15.189. 15.190. 15.191. 15.192. 15.193. 15.194. 15.195. 15.196. 15.197. 15.198. 15.199. 15.200. 15.201. 15.202. 15.203. 15.204. 15.205. 15.206. 15.207. 15.208. 15.209. 15.210. 15.211. 15.212. 15.213. 15.214. 15.215. 15.216. 15.217. 15.218. 15.219. 15.220. 15.221. 15.222. 15.223. 15.224. 15.225. 15.226. 15.227. 15.228. 15.229. 15.230. 15.231. 15.232. 15.233. 15.234. 15.235. 15.236. 15.237. 15.238. 15.239. 15.240. 15.241. 15.242. 15.243. 15.244. 15.245. 15.246. 15.247. 15.248. 15.249. 15.250. 15.251. 15.252. 15.253. 15.254. 15.255. 15.256. 15.257. 15.258. 15.259. 17.1. 17.2.
阅读(...) 评论()
我有佳人隔窗而居,今有伊人明月之畔。
轻歌柔情冰壶之浣,涓涓清流梦入云端。
美人如娇温雅悠婉,目遇赏阅适而自欣。
百草层叠疏而有致,此情此思怀彼佳人。
念所思之唯心叩之,踽踽彳亍寤寐思之。
行云如风逝而复归,佳人一去莫知可回?
深闺冷瘦独自徘徊,处处明灯影还如只。
推窗见月疑是归人,阑珊灯火托手思忖。
庐居闲客而好品茗,斟茶徐徐漫漫生烟。
我有佳人在水之畔,瓮载渔舟浣纱归还。
明月相照月色还低,浅近芦苇深深如钿。
庐山秋月如美人衣,画堂春阁香气靡靡。
秋意幽笃残粉摇曳,轻轻如诉画中蝴蝶。
泾水潺潺取尔浇园,暮色黄昏如沐佳人。
青丝撩弄长裙翩翩,彩蝶飞舞执子手腕。
香带丝缕缓缓在肩,柔美体肤寸寸爱怜。
如水之殇美玉成欢,我有佳人清新如兰。
伊人在水我在一边,远远相望不可亵玩。你还可用第三方账号来登录请输入你注册的电子邮件地址绑定密保手机*您可用使用此密保手机找回密码及登录*请勿随意泄露手机号,以防被不法分子利用,骗取帐号信息手机号码发送验证码确定电子邮件请输入您的意见和建议请您输入正确的邮箱地址,以便我们和您联系,帮您解决问题。扫描下载手机客户端热门搜词1643人阅读
activiti(2)
RepositoryService :&管理和控制发布包和流程定义(包含了一个流程每个环节的结构和行为)的操作
除此之外,服务可以
查询引擎中的发布包和流程定义。
暂停或激活发布包,对应全部和特定流程定义。 暂停意味着它们不能再执行任何操作了,激活是对应的反向操作。
获得多种资源,像是包含在发布包里的文件, 或引擎自动生成的流程图。
获得流程定义的pojo版本, 可以用来通过java解析流程,而不必通过xml。
RuntimeService :负责启动一个流程定义的新实例,获取和保存流程变量,查询流程实例和执行
TaskService :所有与任务有关的功能
查询分配给用户或组的任务
创建独立运行任务。这些任务与流程实例无关。
手工设置任务的执行者,或者这些用户通过何种方式与任务关联。
认领并完成一个任务。认领意味着一个人期望成为任务的执行者, 即这个用户会完成这个任务。完成意味着“做这个任务要求的事情”。 通常来说会有很多种处理形式。
IdentityService:&管理(创建,更新,删除,查询...)群组和用户
&FormService:&一个可选服务,这个服务提供了启动表单和任务表单两个概念
&HistoryService:&提供了Activiti引擎的所有历史数据
ManagementService :在使用Activiti的定制环境中基本上不会用到。 它可以查询数据库的表和表的元数据。另外,它提供了查询和管理异步操作的功能。&
RepositoryService
//通过activiti.cfg.xml获取流程引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); RepositoryService repositoryService = processEngine.getRepositoryService();
任何与“静态”资源有关的数据(比如流程定义)都可以通过&RepositoryService访问。
从概念上讲,所以静态数据都是Activiti的资源内容。
部署流程文件:
* 发布流程
* 发布流程后,流程文件会保存到数据库中
public void deployFlow(){
RepositoryService repositoryService = processEngine.getRepositoryService();
//获取在classpath下的流程文件
InputStream in = this.getClass().getClassLoader().getResourceAsStream(&myleave.zip&);
ZipInputStream zipInputStream = new ZipInputStream(in);
//使用deploy方法发布流程
repositoryService.createDeployment()
//通过ZIP方式来部署流程文件
.addZipInputStream(zipInputStream)
//通过输入流来部署流程文件
//.addInputStream(&xx.bpmn&,inputStream)
//.addInputStream(&xx.png&, inputStream)
.name(&Myleave&)//设置流程定义的别名
.deploy();//部署
}当文件部署成功后,会操作数据库中的这三张表
act_re_deployment &(部署信息表)&
存放流程定义的别名和部署时间
act_re_procdef(流程定义数据表)
存放流程定义的信息,每部署一个新的流程定义都会在这张表中增加一条记录。
如果当KEY相同 也就是 bpmn流程文件的 ID 相同是 &增加的记录里面的版本会升级一个版本
act_ge_bytearray(资源文件表)
存放部署后的流程文件
查看流程定义信息:
* 查看流程定义
* 查询act_re_procdef表 流程定义表
public void queryProcdef(){
RepositoryService repositoryService = processEngine.getRepositoryService();
//创建查询对象
ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery();
//添加查询条件
query.processDefinitionKey(&myProcess&);//通过key获取
// .processDefinitionName(&My process&)//通过name获取
// .orderByProcessDefinitionId()//根据ID排序
//.processDefinitionKeyLike(processDefinitionKeyLike)//支持模糊查询
//.listPage(firstResult, maxResults)//分页
//执行查询获取流程定义明细
List&ProcessDefinition& pds = query.list();//获取批量的明细
//.singleResult()//获取单个的明细
for (ProcessDefinition pd : pds) {
System.out.println(&ID:&+pd.getId()+&,NAME:&+pd.getName()+&,KEY:&+pd.getKey()+&,VERSION:&+pd.getVersion()+&,RESOURCE_NAME:&+pd.getResourceName()+&,DGRM_RESOURCE_NAME:&+pd.getDiagramResourceName());
System.out.println(&------------------------------------------------&);
ID:myProcess:1:604,NAME:My process,KEY:myProcess,DEPLOYMENT_ID:601,VERSION:1,RESOURCE_NAME:MyLeave.bpmn,DGRM_RESOURCE_NAME:MyLeave.png
------------------------------------------------
ID:myProcess:2:809,NAME:My process,KEY:myProcess,DEPLOYMENT_ID:806,VERSION:2,RESOURCE_NAME:MyLeave.bpmn,DGRM_RESOURCE_NAME:MyLeave.png
------------------------------------------------
通过repositoryService查看流程定义信息,并且获取DEPLOYMENT_ID到&act_ge_bytearray&查询到 资源文件名
通过资源文件名和deploymentId获取流并输出到文件中
* 显示图片信息
* @throws IOException
public void showImg() throws IOException{
String deploymentId = &601&;
//通过deploymentId获取资源名称
List&String& names = processEngine.getRepositoryService()
.getDeploymentResourceNames(deploymentId);
String imgName =
for (String name : names) {
System.out.println(&name:&+name);
if (name.endsWith(&.png&)) {
System.out.println(&imgName:&+imgName);
if (imgName != null) {
File file = new File(&e:/&+imgName);
//获取资源文件的流
InputStream in = processEngine.getRepositoryService()
.getResourceAsStream(deploymentId, imgName);
//通过FileUtils将资源文件以流的信息输出到指定文件
FileUtils.copyInputStreamToFile(in, file);
}在E盘下查看 生成的照片
删除流程定义:
* 删除流程定义
public void delDeployment(){
String deploymentId = &1&;
processEngine.getRepositoryService()
//普通删除,删除没有在执行的流程,如果流程正在执行,则抛出异常
//.deleteDeployment(deploymentId);
//级联删除,不管你在不在运行,会删除当前关联的所有信息,包括在历史表里的数据
.deleteDeployment(deploymentId, true);
RuntimeService
//通过activiti.cfg.xml获取流程引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();RuntimeService runtimeService = processEngine.getRuntimeService();
启动一个流程实例:
* 启动流程实例
public void startFlow(){
RuntimeService runtimeService = processEngine.getRuntimeService();
//通过Id来启动一个流程并返回一个流程实例
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(&myProcess&);
System.out.println(&id:&+processInstance.getId()+&,activitiId:&+processInstance.getActivityId());
}当一个流程实例启动后,会在&act_ru_execution&表中插入一条记录,如果是用户任务节点,同时也会在act_ru_task表中插入一条记录
查询流程状态:
* 查看流程状态
public void queryState(){
String processInstanceId = &701&;
ProcessInstance pi = processEngine.getRuntimeService()
//创建执行对象查询,查询正在执行的执行对象
//.createExecutionQuery()
.createProcessInstanceQuery()//创建流程实例查询,查询正在执行的流程实例
.processInstanceId(processInstanceId)//通过流程实例ID查询
//返回批量结果
.singleResult();//返回唯一的结果
if (pi != null) {
System.out.println(&当前流程:&+pi.getActivityId());
System.out.println(&流程已经结束&);
}在整个流程执行的过程中,流程ID 都是 唯一不变的,当流程结束后 流程记录就会在&act_ru_execution&表中被删除,存入到历史表
设置和获取流程变量:
* 通过runtimeService设置流程变量
* 设置流程变量
public void setAndGetVariables(){
RuntimeService runtimeService = processEngine.getRuntimeService();
//通过执行对象ID和key value设置变量
//value是一个object对象,当一个pojo类实现Serializable接口的时候就可以存入流程变量中
//runtimeService.setVariable(executionId, key, value);
//设置专属于一个执行对象ID的流程变量
//runtimeService.setVariableLocal(executionId, key, value);
//通过执行对象ID和Map设置多个变量
Map&String, Object& paramMap = new HashMap&String, Object&();
//runtimeService.setVariables(executionId, paramMap);
//设置专属于一个执行对象ID的多个流程变量
//runtimeService.setVariablesLocal(executionId, paramMap);
//通过执行对象ID获取变量,返回object,需要强转
//runtimeService.getVariable(executionId, key);
//通过执行对象ID获取一个Map&String, Object&对象
//runtimeService.getVariables(executionId);
流程变量所支持的类型
设置的流程变量会存入到act_ru_variable表
act_ru_variable表& 的BYTEARRAY_ID_对应的是&act_ge_bytearray 如果是复杂类型的数据 &会存入二进制字段中
TaskService
//通过activiti.cfg.xml获取流程引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();//获取任务服务对象
TaskService taskService = processEngine.getTaskService();查看个人任务:
* 查看任务
public void queryTask(){
//获取任务服务对象
TaskService taskService = processEngine.getTaskService();
//根据接受人查询该用户的任务
List&Task& tasks = taskService.createTaskQuery()
//模糊查询
//.taskAssigneeLike(assigneeLike)
//通过执行对象ID查询任务
//.executionId(executionId)
.taskAssignee(&张三&)//通过接受人来查询个人任务
for (Task task : tasks) {
System.out.println(&ID:&+task.getId()+&,姓名:&+task.getName()+&,接收人:&+task.getAssignee()+&,开始时间:&+task.getCreateTime());
ID:704,姓名:员工请假,接收人:张三,开始时间:Wed Oct 22 17:03:04 CST 2014
ID:804,姓名:员工请假,接收人:张三,开始时间:Thu Oct 23 11:27:47 CST 2014
除了个人任务 还有 组任务
* 办理任务
public void startTask(){
TaskService taskService = processEngine.getTaskService();
//taskId 就是查询任务中的 ID
String taskId = &704&;
//完成请假申请任务
plete(taskId );
taskService 和 runtimeService 一样都是可以设置流程变量的
HistoryService
//通过activiti.cfg.xml获取流程引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
HistoryService historyService = processEngine.getHistoryService();
查询历史任务:
* 查询历史任务
public void queryHistoryTask(){
String assignee = &张三&;
HistoryService historyService = processEngine.getHistoryService();
List&HistoricTaskInstance& htis = historyService.createHistoricTaskInstanceQuery()//创建历史任务查询&span style=&font-family: Arial, Helvetica, sans-&&对象&/span&
//创建一个历史详细信息查询&span style=&font-family: Arial, Helvetica, sans-&&对象&/span&
//.createHistoricDetailQuery()
//创建历史流程实例查询对象
//.createHistoricProcessInstanceQuery()
.taskAssignee(assignee)//根据接受人查询历史任务
.list();//返回批量结果
for (HistoricTaskInstance hti : htis) {
System.out.println(&ID:&+hti.getId()+&,流程实例ID:&+hti.getProcessInstanceId()+&,接收人:&+hti.getAssignee()+&,执行对象ID:&+hti.getExecutionId());
System.out.println(&------------------------------------------------&);
ID:704,流程实例ID:701,接收人:张三,执行对象ID:701
------------------------------------------------
ID:804,流程实例ID:801,接收人:张三,执行对象ID:801
------------------------------------------------
主要是查询act_hi_taskinst表中的数据
查询历史流程实例:
* 查询历史流程实例
public void queryHistoryPi(){
HistoryService historyService = processEngine.getHistoryService();
String pi = &701&;
List&HistoricProcessInstance& hpis = historyService.createHistoricProcessInstanceQuery()//创建历史流程实例查询对象
.processInstanceId(pi)
for (HistoricProcessInstance hpi : hpis) {
SimpleDateFormat sdf = new SimpleDateFormat(&yyyy-MM-dd HH:mm:ss&);
System.out.println(&实例ID:&+hpi.getId()+&,开始时间:&+sdf.format(hpi.getStartTime())+&,结束时间:&+sdf.format(hpi.getEndTime()));
System.out.println(&-------------------------------------&);
实例ID:701,开始时间: 17:03:04,结束时间: 15:25:03
-------------------------------------
主要是查询act_hi_procinst表中的数据
获取历史流程变量:
* 获取历史流程变量
public void getHistoryVariable(){
HistoryService historyService = processEngine.getHistoryService();
List&HistoricVariableInstance& hvis = historyService.createHistoricVariableInstanceQuery()//创建一个历史流程变量实例查询对象
.variableName(&key&)//通过key查询
if (hvis != null) {
for (HistoricVariableInstance hvi : hvis) {
System.out.println(&key:&+hvi.getVariableName()+&,value:&+hvi.getValue());
主要是查询act_hi_varinst表中的数据
查询历史活动信息:
* 查询历史活动信息
* 主要查询的是act_hi_actinst表中的数据
public void queryHistoryAi(){
String pi = &701&;
HistoryService historyService = processEngine.getHistoryService();
List&HistoricActivityInstance& hais = historyService.createHistoricActivityInstanceQuery()//创建历史活动实例查询对象
.processInstanceId(pi)
for (HistoricActivityInstance hai : hais) {
System.out.println(&活动ID:&+hai.getActivityId()+&,活动名称:&+hai.getActivityName()+&,活动类型:&+hai.getActivityType()+&,流程实例ID:&+hai.getProcessInstanceId()+&,接收人:&+hai.getAssignee());
System.out.println(&--------------------------------&);
活动ID:endevent1,活动名称:End,活动类型:endEvent,流程实例ID:701,接收人:null
--------------------------------
活动ID:startevent1,活动名称:Start,活动类型:startEvent,流程实例ID:701,接收人:null
--------------------------------
活动ID:员工请假,活动名称:员工请假,活动类型:userTask,流程实例ID:701,接收人:张三
--------------------------------
活动ID:老板审批,活动名称:老板审批,活动类型:userTask,流程实例ID:701,接收人:老板
--------------------------------
这几个是最常用的几个服务.
流程实例和执行对象的区别 & 流程实例和执行对象 2个是不同的一个概念
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:56366次
积分:1093
积分:1093
排名:千里之外
原创:51篇
评论:66条
(4)(1)(5)(4)(12)(2)(4)(5)(19)&传智播客 Activiti 工作流视频 3.排他网关
秒后自动跳转到登录页
(奖励5下载豆)
快捷登录:
举报类型:
不规范:上传重复资源
不规范:标题与实际内容不符
不规范:资源无法下载或使用
其他不规范行为
违规:资源涉及侵权
违规:含有危害国家安全等内容
违规:含有反动/色情等内容
违规:广告内容
详细原因:
任何违反下载中心规定的资源,欢迎Down友监督举报,第一举报人可获5-10下载豆奖励。
200个聪明人的逻辑思
JAVA算法技术手册.
Java及PHP设计开发资
加密图像去噪的Java
Storm分布式实时计算
单片机课程设计
软件开发面试过程中
传智播客 Activiti 工作流视频 3.排他网关
上传时间:
技术分类:
资源评价:
(0位用户参与评价)
已被下载&0&次
传智播客 Activiti 工作流视频 3.排他网关
本资料共包含以下附件:
传智播客 Activiti 工作流视频 3.排他网关.rar
51CTO下载中心常见问题:
1.如何获得下载豆?
1)上传资料
2)评论资料
3)每天在首页签到领取
4)购买VIP会员服务,无需下载豆下载资源
5)更多途径:点击此处
2.如何删除自己的资料?
下载资料意味着您已同意遵守以下协议:
1.资料的所有权益归上传用户所有
2.未经权益所有人同意,不得将资料中的内容挪作商业或盈利用途
3.51CTO下载中心仅提供资料交流平台,并不对任何资料负责
4.本站资料中如有侵权或不适当内容,请邮件与我们联系()
5.本站不保证资源的准确性、安全性和完整性, 同时也不承担用户因使用这些资料对自己和他人造成任何形式的伤害或损失
下载1950次
下载1314次
下载1384次
下载1105次
下载1214次
相关专题推荐
本套视频教程共包含20个章节,包含源
本专题为MLDN培训机构李兴华老师主讲
本专题为Eclipse操作详解视频教程,视
浙江大学颜晖老师授课视频教程,共45
浙江大学张继昌教授授课视频教程,共
本专题为Spring MVC视频教程。Spring
Java开源优秀工作流框架,值得学习和
Qt是一个1991年由奇趣科技开发的跨平
C++是一种静态数据类型检查的、支持多
Java高级班全套视频教程,讲解全面系
本套教程含很多知识点的应用方案与经
我来说说面向对象第1季,Java俄罗斯方
本视频基于 Hibernate4.x 录制。内容
C++是一种语言,仅仅是它的语法、特性
C++是由C发展而来的,与C兼容。用C语
本视频为传智播客日~2013年
本周下载热点
意见或建议:
联系方式:
您已提交成功!感谢您的宝贵意见,我们会尽快处理2601人阅读
Activiti(10)
& & 上一篇博客我们讲到了排他网管,这篇博文简单介绍一下他的兄弟,并行网关。
& & &一、流程图
& & & & & & & & & & & & & & &&
& & & & & & & & & & & & & & & & & & & &图一 & 并行网关网购流程图
& & &在这里,我们模拟网上购物流程,四个用户任务,分别是付款、发货、收款、收货,其中付款和收货的办理人是买家,发货和收款的办理人是卖家。
& & &二、部署和启动流程
/**部署流程定义+启动流程实例*/
public void deployementAndStartProcess(){
InputStream inputStreamBpmn = this.getClass().getResourceAsStream(&parallelGateWay.bpmn&);
InputStream inputStreampng = this.getClass().getResourceAsStream(&parallelGateWay.png&);
//部署流程定义
Deployment deployment = processEngine.getRepositoryService()//
.createDeployment()//创建部署对象
.addInputStream(&parallelGateWay.bpmn&, inputStreamBpmn)//部署加载资源文件
.addInputStream(&parallelGateWay.png&, inputStreampng)//
.name(&并行网关演示&)
.deploy();
System.out.println(&部署ID:&+deployment.getId());
//启动流程实例
ProcessInstance pi = processEngine.getRuntimeService()//
.startProcessInstanceByKey(&parallelGateWay&);//使用流程定义的key的最新版本启动流程
System.out.println(&流程实例ID:&+pi.getId());
System.out.println(&流程定义的ID:&+pi.getProcessDefinitionId());
& & &对应数据库表:
& & &1.act_ru_execution
& &我们可以看到,部署和启动流程后,在act_ru_execution表中对应三条记录,1个流程实例,2个执行对象。
& & &2.act_ru_task表
& & &在act_ru_task表中,有两条正在执行的任务,分别是付款和发货。
& & &三、查询个人任务
/**查询我的个人任务*/
public void findPersonalTaskList(){
//任务办理人
String assignee = &买家&;//或商家
List&Task& list = processEngine.getTaskService()//
.createTaskQuery()//
.taskAssignee(assignee)//个人任务的查询
if(list!=null && list.size()&0){
for(Task task:list){
System.out.println(&任务ID:&+task.getId());
System.out.println(&任务的办理人:&+task.getAssignee());
System.out.println(&任务名称:&+task.getName());
System.out.println(&任务的创建时间:&+task.getCreateTime());
System.out.println(&流程实例ID:&+task.getProcessInstanceId());
System.out.println(&#######################################&);
& & &我们通过设置的办理人的名字,买家和商家,可以查询到他们对应的当前任务的信息:
& & &1.买家
& & &2.商家
& & &四、完成任务
/**完成任务*/
public void completeTask(){
String taskId = &2611&;
processEngine.getTaskService()//
.complete(taskId);
System.out.println(&完成任务:&+taskId);
& & &执行结果如下:
& & &1.完成【付款】任务,第一个流程实例自动流转到下个任务:收款
& & &2.完成【发货】任务,第二个流程实例自动流转到下一个任务:收货
& & &之后,再分别完成收款和收货两个任务,流程才能够结束。
& & &总结:
& & &一个流程中流程实例只有1个,执行对象有多个;并行网关的功能是基于进入和外出的顺序流的:
& & &分支(fork):并行后的所有外出顺序流,为每个顺序流都创建一个并发分支。
& & &汇聚(join):所有到达并行网关,在此等待的进入分支,直到所有进入顺序流的分支都到达以后,流程就会通
过汇聚网关。& & &
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:261917次
积分:7724
积分:7724
排名:第1753名
原创:165篇
评论:2488条
阅读:38675
阅读:11759
(4)(4)(4)(4)(4)(8)(11)(4)(8)(6)(4)(5)(4)(4)(4)(4)(4)(4)(4)(2)(2)(3)(5)(4)(4)(5)(1)(4)(8)(4)(7)(10)(2)(3)(4)(1)(4)(2)

我要回帖

更多关于 activit 排他网关 的文章

 

随机推荐