- 浏览: 115645 次
- 性别:
- 来自: 上海
最新评论
-
578936807:
1111
jbpm3.2 之教程讲解(一) -
578936807:
[i][i][b][u]引用[list]
[*][img][u ...
jbpm3.2 之教程讲解(一) -
1638873586:
不让下你贴出来想做啥,做广告吗?
jBPM4开发文档(完整版翻译) -
1638873586:
中国有这样自私的人存在简直悲哀,就个破文档还不提供下载,严重阻 ...
jBPM4开发文档(完整版翻译) -
学会做人:
美女,最好是让临远老大,出一个综合的例子,业务逻辑,我这里到有 ...
每天一课,jBPM4视频教程——应用系列第五课
续第5章JPDL
5.2.4. concurrency并发
使用fork和join活动,可以模拟流向(executions)的汇合。
例子:
流程处理的并发例子
图 5.6. 流程处理的并发例子
<process name="ConcurrencyGraphBased" xmlns="http://jbpm.org/4/jpdl">
<start>
<transition to="fork" />
</start>
<fork name="fork">
<transition to="send invoice" />
<transition to="load truck" />
<transition to="print shipping documents" />
</fork>
<state name="send invoice">
<transition to="final join" />
</state>
<state name="load truck">
<transition to="shipping join" />
</state>
<state name="print shipping documents">
<transition to="shipping join" />
</state>
<join name="shipping join">
<transition to="drive truck to destiation" />
</join>
<state name="drive truck to destiation">
<transition to="final join" />
</state>
<join name="final join">
<transition to="end" />
</join>
<end name="end" />
</process>
5.2.5. end结束
结束流向
5.2.5.1. end process instance结束流程处理实例
默认情况下,结束活动会终结已完成流程处理实例。因此在流程处理实例中,仍然在活动的多个并发(concurrent)流向(concurrent)也会结束。
结束活动
图 5.7. 结束活动
<process name="EndProcessInstance" xmlns="http://jbpm.org/4/jpdl">
<start>
<transition to="end" />
</start>
<end name="end" />
</process>
新的流程处理实例一创建便会直接结束。
5.2.5.2. end execution结束流向
只有流向到达结束(end)活动时会结束流程处理实例,并且其他并发流向会放弃活动。我们可以设置属性ends="execution"来达到这种状况。
表 5.8. end execution属性
属性 类型 默认值 是否必须 描述
ends {processinstance|execution} processinstance optional可选 流向路径到达end活动整个流程处理实例就会结束,
5.2.5.3. end multiple多个结束
一个流程处理可以有多个end events,这样就很容易显示出流程处理实例的不同结果。示例:
多个end events
图 5.8. 多个end events
<prccess name="EndMultiple" xmlns="http://jbpm.org/4/jpdl">
<start>
<transition to="get return code" />
</start>
<state name="get return code">
<transition name="200" to="ok" />
<transition name="400" to="bad request" />
<transition name="500" to="internal server error" />
</state>
<end name="ok" />
<end name="bad request" />
<end name="internal server error" />
</process>
如果你启动一个流向并使用下面的代码将它执行到get return code等待状态,流向便会以bad request的end 活动(event)结束
Execution execution = executionService.startProcessInstanceByKey("EndMultiple");
String executionId = execution.getId();
execution = executionService.signalExecutionById(executionId, "400");
同样地,使用值为200或者500就会让流向(execution)分别以ok或者internal server error的end events结束。
5.2.5.4. end State结束状态
流向(execution)可以以不同的状态结束。可以用其他的方式列出流程处理实例的结果。可以用end event的状态属性或者end-cancel和end-error表示。
表 5.9. end execution 属性
属性 类型 默认值 是否必须 描述
state String 可选 状态分配给流向
不同的结束状态
图 5.9. 不同的结束状态
<process name="EndState" xmlns="http://jbpm.org/4/jpdl">
<start>
<transition to="get return code" />
</start>
<state name="get return code">
<transition name="200" to="ok" />
<transition name="400" to="bad request" />
<transition name="500" to="internal server error" />
</state>
<end state="comleted" />
<end-cancel name="bad request" />
<end-error name="internal server error" />
</process>
这时,如果我们启动一个流向并使用下面的代码将流向执行到get return code等待状态,流向会以取消状态(cancel state)结束。
Execution execution = executionService.startProcessInstanceByKey("EndState");
String executionId = execution.getId();
execution = executionService.signalExecutionById(executionId, "400");
和上面一样,使用值为200或500会让流向分别以comleted或者error states结束。
5.2.4. concurrency并发
使用fork和join活动,可以模拟流向(executions)的汇合。
例子:
流程处理的并发例子
图 5.6. 流程处理的并发例子
<process name="ConcurrencyGraphBased" xmlns="http://jbpm.org/4/jpdl">
<start>
<transition to="fork" />
</start>
<fork name="fork">
<transition to="send invoice" />
<transition to="load truck" />
<transition to="print shipping documents" />
</fork>
<state name="send invoice">
<transition to="final join" />
</state>
<state name="load truck">
<transition to="shipping join" />
</state>
<state name="print shipping documents">
<transition to="shipping join" />
</state>
<join name="shipping join">
<transition to="drive truck to destiation" />
</join>
<state name="drive truck to destiation">
<transition to="final join" />
</state>
<join name="final join">
<transition to="end" />
</join>
<end name="end" />
</process>
5.2.5. end结束
结束流向
5.2.5.1. end process instance结束流程处理实例
默认情况下,结束活动会终结已完成流程处理实例。因此在流程处理实例中,仍然在活动的多个并发(concurrent)流向(concurrent)也会结束。
结束活动
图 5.7. 结束活动
<process name="EndProcessInstance" xmlns="http://jbpm.org/4/jpdl">
<start>
<transition to="end" />
</start>
<end name="end" />
</process>
新的流程处理实例一创建便会直接结束。
5.2.5.2. end execution结束流向
只有流向到达结束(end)活动时会结束流程处理实例,并且其他并发流向会放弃活动。我们可以设置属性ends="execution"来达到这种状况。
表 5.8. end execution属性
属性 类型 默认值 是否必须 描述
ends {processinstance|execution} processinstance optional可选 流向路径到达end活动整个流程处理实例就会结束,
5.2.5.3. end multiple多个结束
一个流程处理可以有多个end events,这样就很容易显示出流程处理实例的不同结果。示例:
多个end events
图 5.8. 多个end events
<prccess name="EndMultiple" xmlns="http://jbpm.org/4/jpdl">
<start>
<transition to="get return code" />
</start>
<state name="get return code">
<transition name="200" to="ok" />
<transition name="400" to="bad request" />
<transition name="500" to="internal server error" />
</state>
<end name="ok" />
<end name="bad request" />
<end name="internal server error" />
</process>
如果你启动一个流向并使用下面的代码将它执行到get return code等待状态,流向便会以bad request的end 活动(event)结束
Execution execution = executionService.startProcessInstanceByKey("EndMultiple");
String executionId = execution.getId();
execution = executionService.signalExecutionById(executionId, "400");
同样地,使用值为200或者500就会让流向(execution)分别以ok或者internal server error的end events结束。
5.2.5.4. end State结束状态
流向(execution)可以以不同的状态结束。可以用其他的方式列出流程处理实例的结果。可以用end event的状态属性或者end-cancel和end-error表示。
表 5.9. end execution 属性
属性 类型 默认值 是否必须 描述
state String 可选 状态分配给流向
不同的结束状态
图 5.9. 不同的结束状态
<process name="EndState" xmlns="http://jbpm.org/4/jpdl">
<start>
<transition to="get return code" />
</start>
<state name="get return code">
<transition name="200" to="ok" />
<transition name="400" to="bad request" />
<transition name="500" to="internal server error" />
</state>
<end state="comleted" />
<end-cancel name="bad request" />
<end-error name="internal server error" />
</process>
这时,如果我们启动一个流向并使用下面的代码将流向执行到get return code等待状态,流向会以取消状态(cancel state)结束。
Execution execution = executionService.startProcessInstanceByKey("EndState");
String executionId = execution.getId();
execution = executionService.signalExecutionById(executionId, "400");
和上面一样,使用值为200或500会让流向分别以comleted或者error states结束。
评论
2 楼
kayzhan
2009-09-27
呵呵,这就分支聚合啊,它是自动的,不知道你想如何处理,需求是什么 ?
1 楼
diffuser
2009-09-27
<?xml version="1.0" encoding="UTF-8"?>
<process name="test_fork" xmlns="http://jbpm.org/4.0/jpdl">
<start g="105,85,48,48" name="start1">
<transition name="to task1" to="task1" g="-53,-17" />
</start>
<task g="290,95,92,52" name="task1">
<assignment-handler class="org.jbpm.df.AssignTask" />
<transition name="to fork1" to="fork1" g="-53,-17" />
</task>
<task name="task2" g="158,248,92,52">
<assignment-handler class="org.jbpm.df.AssignTask" />
<transition name="to join1" to="join1" g="-53,-17" />
</task>
<task name="task3" g="165,348,92,52">
<assignment-handler class="org.jbpm.df.AssignTask" />
<transition name="to join1" to="join1" g="-53,-17" />
</task>
<fork name="fork1" g="46,287,48,48">
<transition name="to task2" to="task2" g="-53,-17" />
<transition name="to task3" to="task3" g="-53,-17" />
</fork>
<join name="join1" g="335,300,48,48">
<transition name="to task4" to="task4" g="-53,-17" />
</join>
<task name="task4" g="465,295,92,52">
<assignment-handler class="org.jbpm.df.AssignTask" />
<transition name="to end1" to="end1" g="-47,-17" />
</task>
<end name="end1" g="447,409,48,48" />
</process>
我这里是一个task结束后,进入fork节点,然后分成两个task,再进入join,请问该如何处理?
<process name="test_fork" xmlns="http://jbpm.org/4.0/jpdl">
<start g="105,85,48,48" name="start1">
<transition name="to task1" to="task1" g="-53,-17" />
</start>
<task g="290,95,92,52" name="task1">
<assignment-handler class="org.jbpm.df.AssignTask" />
<transition name="to fork1" to="fork1" g="-53,-17" />
</task>
<task name="task2" g="158,248,92,52">
<assignment-handler class="org.jbpm.df.AssignTask" />
<transition name="to join1" to="join1" g="-53,-17" />
</task>
<task name="task3" g="165,348,92,52">
<assignment-handler class="org.jbpm.df.AssignTask" />
<transition name="to join1" to="join1" g="-53,-17" />
</task>
<fork name="fork1" g="46,287,48,48">
<transition name="to task2" to="task2" g="-53,-17" />
<transition name="to task3" to="task3" g="-53,-17" />
</fork>
<join name="join1" g="335,300,48,48">
<transition name="to task4" to="task4" g="-53,-17" />
</join>
<task name="task4" g="465,295,92,52">
<assignment-handler class="org.jbpm.df.AssignTask" />
<transition name="to end1" to="end1" g="-47,-17" />
</task>
<end name="end1" g="447,409,48,48" />
</process>
我这里是一个task结束后,进入fork节点,然后分成两个task,再进入join,请问该如何处理?
发表评论
-
jBPM4中文开发指南下载
2009-09-18 10:16 3121jBPM4中文开发指南 9月1号4.1发布了,上周将jBPM ... -
jBPM4.1新特性和中文用户手册下载
2009-09-10 01:34 18219月1号,jBPM4发布了4.1版本,jBPM4.1的新特 ... -
每天一课,jBPM4视频教程——应用系列第五课
2009-09-03 13:04 1788《每天一课,jBPM4》 视频教程今天推出基本应用系列——第 ... -
每天一课,jBPM4视频教程系列的初期规划和应用系列第二课
2009-08-19 08:56 2248经常有人问我,jBPM4视频教程到底有多少课,能讲到什么程度? ... -
每天一课,jBPM4视频教程——应用系列
2009-08-11 23:40 1474《每天一课,jBPM4》 ... -
每天一课,jBPM4视频教程入门系列(三)
2009-08-03 11:22 1592《每天一课,jBPM4》 视频教程今天推出第三课 , ... -
每天一课,jBPM4视频教程(一)
2009-07-29 18:02 3854随着jBPM4.0GA版本的发布 ... -
jBPM4和SS的专题页面出炉了
2009-07-28 13:57 2439注:标题里的SS指的Spring Security ... -
这算不算侵犯版权
2009-07-23 16:49 2764之前我写了不少关于jbpm4的文章,可是在je上的访问量并 ... -
jBPM4的用户指南PDF下载
2009-07-15 01:22 5077鉴于各位都非常期待PDF的版本,我们便先把用户指南提供给 ... -
jBPM4开发文档(完整版翻译)
2009-07-14 00:14 3409开发文档更新到了jBPM4的GA版本,这次开发文档变更非常 ... -
流程控制台的规划进度和视频展示(开源)
2009-07-02 12:39 1230最近一直在整流程控制 ... -
jBPM4与Spring整合的2种方式
2009-06-29 13:05 3093要知道如何将jBPM4与Spring整合,可以先了解jB ... -
jBPM4.0中文开发指南(高级图形执行下)
2009-06-26 12:02 10507.6. 流程同步 为了进行 ... -
jBPM4.0中文开发指南(高级图形执行上)
2009-06-26 11:59 947第 7 章 高级图形执行 7.1. 循环 活动可以实现循环, ... -
jBPM中文开发指南(实现基本活动二)
2009-06-24 11:22 8635.5. 基本流程执行 在下一个例子里,我们会结合自动活动和 ... -
jBPM中文开发指南(实现基本活动)
2009-06-24 11:13 954第 5 章 实现基本活动 这一章解释了流程定义的基础,流程虚 ... -
jBPM4.0中文开发指南(架构)
2009-06-23 14:39 1529第 4 章 架构 4.1. APIs 流程虚拟机包含4个集成 ... -
jBPM4.0中文开发指南(配置)
2009-06-23 14:35 1932第 3 章 配置 jbpm.jar包含了一些默认配置文件, ... -
jBPM4.0的用户指南 的后续
2009-03-27 09:34 1757jbpm4的翻译已经完成了,后续的内容还请大家去http ...
相关推荐
《jBPM4.0用户指南》:深入解析工作流引擎的核心功能与应用 一、jBPM4.0概述 jBPM4.0是一款先进的业务流程管理(Business Process Management,简称BPM)框架,它基于Java语言,提供了一套完整的解决方案,用于...
这份"jbpm4.0用户指南(中文版)"为国内用户提供了一份详尽的使用手册,帮助理解并操作这个流程管理系统。 jbPM是一个开源的BPM解决方案,它提供了业务流程的建模、部署、执行和监控等功能。jbPM4.0版本在当时具有...
**JBPM4.0用户指南**是一份详细阐述如何使用JBPM(Java Business Process Management)4.0版本的文档,旨在帮助用户理解并有效利用这一流程管理工具。JBPM是一款开源的工作流管理系统,用于设计、执行和管理业务流程...
本手册作为开发者指南,将深入探讨jbpm4.0的核心功能和使用方法,帮助开发者理解和实现流程自动化。 一、jbpm简介 jbpm是一款开源的BPM平台,它支持工作流定义模型(BPMN 2.0)、规则引擎(Drools)和事件处理等...
这个中文手册-用户指南旨在帮助中国用户更好地理解和使用jbpm4.0系统,尤其适合那些希望在不熟悉英文文档的情况下进行学习的开发者和管理员。 首先,我们要了解jbpm的核心概念。jbpm是一个开源的工作流引擎,它支持...
### JBPM4.0 用户指南知识点详解 #### 一、JBPM概述 JBPM(Jakarta Business Process Model)是一款开源的业务流程管理(Business Process Management, BPM)引擎,由JBoss提供支持。它是一个可扩展且高度灵活的...
是我花了好久才找到的资源,开源工作流产品JBPM的开发指南,是本人在学习JPBM过程中所使用的资料,希望能给各位开发者在使用JBPM过程中带来帮助. 想要了解jbpm的不可多得的资料,也是我很多同事都看过的。从配置开发...
**jBPM-4.0中文开发指南** jBPM(Java Business Process Management)是一款开源的工作流管理系统,专为业务流程自动化和管理设计。jBPM 4.0是其一个重要版本,它提供了丰富的功能,包括流程建模、执行、监控和集成...
这个文件是可以打开的,下载后,把文件名中类似这样的:“%E7%94%A8%” 去掉,打开的时候,把“是否每次打开都询问”的勾取消掉。然后文件类容就出来了。
3. **任务管理**:jbPM提供了任务分配、领取、完成以及任务工作流的相关功能,使得用户可以根据角色或指定人员参与流程执行。 4. **事件处理**:jbPM 4.0支持流程中的各种事件,如信号事件、时间事件等,用于处理...
这个文件是可以打开的,收集了网上有关jBPM4、jBPM3的资料,是比较完整的
"doc"目录可能包含JBPM4.0的官方文档或开发者指南。这些文档对于理解JBPM的工作原理、API使用和最佳实践至关重要。它们可以帮助开发者快速上手,避免在实际项目中遇到不必要的困扰。 总结来说,JBPM4.0通过PVM和...
总的来说,这份"jbPM 4.0中文文档.pdf"为学习和使用jbPM 提供了全面的指南,无论你是初学者还是有经验的开发者,都能从中受益。通过深入阅读,你可以了解到jbPM 如何帮助你构建灵活、可扩展的业务流程管理系统,提升...
**jbPM 4.0 开发指南** jbPM(Java Business Process Management)是一个开源的工作流管理系统,用于在Java环境中执行业务流程。jbPM 4.0是该框架的一个重要版本,它提供了强大的流程建模、执行和监控能力,旨在...
**jBPM4用户指南入门教程** jBPM4是一个基于Java的企业级工作流管理系统,它为业务流程管理(BPM)提供了全面的解决方案。本教程将引导您逐步了解如何安装配置、使用流程设计器、部署业务归档以及利用服务和jpdl...