没有合适的资源?快使用搜索试试~ 我知道了~
子流程的使用成果介绍详细阐述开发成果评审标准:清楚介绍开发成果当一个流程的业务逻辑非常复杂的时候,可以考虑使用子流程。子流程和主流程是相对独立的。设计思路描述主要的设计思路,开发方法以及技术要点评审标准:清晰表达设计思路和技术要点在jbpm中,我们可以将一个复杂的业务流程文件根据业务逻辑的不同划分为父流程和子流程,这样一方面可以令我们的流程定义文件不会设计得太臃肿,二来可以方便我们将来的维护,只对需要修改的流程进行修改,而不影响其他流程。如何使用阐述如何结合项目需要应用成果进行开发。这部分需要详细描述,让其他开发人员按照此成果报告,能够进行一般简单的开发,具有较强的可操作性。评审标准:开发人员
资源推荐
资源详情
资源评论
J2EE工作流管理系统工作流管理系统jBPM详解(二)详解(二)
子流程的使用子流程的使用
成果介绍成果介绍
详细阐述开发成果
评审标准:清楚介绍开发成果
当一个流程的业务逻辑非常复杂的时候,可以考虑使用子流程。子流程和主流程是相对独立的。
设计思路设计思路
描述主要的设计思路,开发方法以及技术要点
评审标准:清晰表达设计思路和技术要点
在jbpm中,我们可以将一个复杂的业务流程文件根据业务逻辑的不同划分为父流程和子流程,这样一方面可以令我们的流程
定义文件不会设计得太臃肿,二来可以方便我们将来的维护,只对需要修改的流程进行修改,而不影响其他流程。
如何使用如何使用
阐述如何结合项目需要应用成果进行开发。这部分需要详细描述,让其他开发人员按照此成果报告,能够进行一般简单的开
发,具有较强的可操作性。
评审标准:开发人员按此使用说明基本能应用成果进行开发
这里我们介绍下关于jbpm子流程的使用,这里我们定义两个流程定义xml文件,一个是父流程定义文件,一个是子流程定义文
件。这里我想当执行完Payfirst任务的时候,jbpm流程能自动去我的子流程文件中去执行那边定义的任务。
这里是父流程processdefinition.xml
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="myapp">
。。。。。。
<task-node name="PayFirst">
<task name="PayFirstTask" swimlane="finance"></task>
<transition name="get house contract" to="subprocess">
<action name="action"
class="com.myapp.action.MessageActionHandler">
<message>
Has pay first bulk of money. Print constract now!
</message>
</action>
</transition>
</task-node>
<process-state name="subprocess">
<sub-process name="subprocessdefinition"/>
<transition to="end"></transition>
</process-state>
<task-node name="pass round for perusal"
signal="last-wait" create-tasks="false">
<task name="perusal">
<assignment actor-id="#{processStarter}">
</assignment>
</task>
<event type="node-enter">
<action name="createInstance"
class="com.myapp.action.CreateTaskInstanceAction"></action>
</event>
<transition name="backto" to="OnePersonAudit">
</transition>
</task-node>
</process-definition>
可以看到,上面我们使用到了,在jbpm中,process-state标签代表的是引用子流程。这里我们接着定义子流程文件。
子流程subprocessdefinition定义文件
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.2"
name="subprocessdefinition">
<swimlane name="service">
<assignment actor-id="service1" />
</swimlane>
<start-state name="subStart">
<transition to="PrintContract"></transition>
</start-state>
<task-node name="PrintContract">
<task name="PrintContractTask" swimlane="service"></task>
<transition name="PrintContract" to="end">
<action name="action"
class="com.myapp.action.MessageActionHandler">
<message>Finish the process instance now.</message>
</action>
</transition>
</task-node>
<end-state name="end"></end-state>
</process-definition>
示例实现示例实现
结合项目需要实现,采用开发成果开发一个简单应用示例。可以链接到其它文档,如示例实现的项目工程
评审标准:能简单展示开发成果的开发应用
上面我们定义了两个XML文件,一个是父流程,一个是子流程。下面我们说下如何使用这两个文件。首先我们要先部署这两
个文件,使用子流程要注意,部署的时候一定要先部署子流程,然后在部署父流程。
ProcessDefinition subProcess = ProcessDefinition.parseXmlResource
("subprocessdefinition/processdefinition.xml");
jbpmContext.deployProcessDefinition(subProcess);
ProcessDefinition processDefinition = ProcessDefinition.
parseXmlResource("processdefinition.xml");
jbpmContext.deployProcessDefinition(processDefinition);
部署完后,jbpm会将这两个流程定义文件保存在jbpm_processinstance表中,在调用中,与单个流程文件调用没有任何区
别,我们调用PrintContract 任务的end()方法,jbpm会根据的流程文件,自动找到子流程文件所定义的任务进行执行。
使用规范使用规范
描述使用该技术的规范(如接口设计、接口实现、框架设计、数据结构设计等)、约定、约束等
评审标准:清晰、详细描述出其应用规范
注意事项注意事项
描述配置、开发等需要注意的问题,包括各种关键点和难点。可逐步补充
评审标准:开发过程中遇到的关于应用开发成果开发的问题,大部分都可以从这里找到答案
使用子流程要注意:使用子流程要注意:
要先部署子流程,然后再部署主流程,否则,主流成执行的时候会报找不到子流程的异常
直接查看jbpm_Token或者jbpm_log无法找到流程间的关系,需要查看jbpm_processinstance表,才能找到父流程,因为
Token在离开process state的时候就会删除subprocessid,直接看jbpm_log也无法看出两个token之间的关系。
应用系统与应用系统与jBPM的结合的结合
成果介绍成果介绍
在实际开发使用jBPM,可以采用jBPM系统与业务系统完全分离的策略。jBPM系统只负责流程的监控和执行,业务的重心仍
然是实际业务需求。
设计思路设计思路
剩余10页未读,继续阅读
资源评论
weixin_38697557
- 粉丝: 8
- 资源: 921
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功