流程执行
流程定义完成之后,就可以创建流程实例(ProcessInstance)来按照这些流程定义进行流转。流程实例的概念很容易理解。
比如,公司的请假制度是:先给张三审批,然后还得给李四审批,最后还得王五去审批,这三个人审批都结束之后,请假单才能生效。这些描述就是流程定义(ProcessDefintion)。
现在假设员工“小赵”生病了要请假,在现实中,他需要拿到请假条,并且按照请假条上固定的格式填写好请假的内容(比如:谁请假,请假的时间,请假单的天数等等)之后,按照公司的规定,把请假条首先拿给张三去审批。张三审批完成之后,再拿给李四去审批……
“小赵”拿到请假条,填写内容这样的事情,我们可以称之为“创建流程实例(ProcessInstance)”。小赵将请假条交给张三去审批这样的事情,我们可以称之为“提交”;张三审批完成之后再拿给李四去审批这样的事情,也可以称之为“提交”。
所以,流程定义(ProcessDefinition)我们可以理解为流转规则的定义;而流程实例(ProcessInstance)则可以理解为按照特 定规则对某些数据执行流转。比如上述例子中,“小赵的请假条”,我们就可以理解为一个流程实例(ProcessInstance)对象。每个流程实例都会 包含有各种数据,比如“小赵的请假条”这个流程实例,可能就包含了:请假者是小赵,请假时间是某年某月某日,请假天数是3天,请假事项是“有病要去医院” 等等这些数据。这些数据可以称为“流程实例变量”。
在JBPM4中,创建流程实例并把流程实例提交到第一个环节(比如张三审批这个环节是第一个环节)称为“启动流程实例(startProcessInstance)”。
publicclassJbpm_02_StartProcessInstance extendsTestCase{
//根据流程定义,启动一个新的流程实例
publicvoidtestStartProcessInstance(){
//流程引擎
ProcessEngine engine = newConfiguration()
.setResource("jbpm.cfg.xml").buildProcessEngine();
Map instanceVariables = newHashMap();
instanceVariables.put("leaver", "小赵"); //请假者
instanceVariables.put("leaveDate", newDate()); //请假时间
instanceVariables.put("leaveDays", 5); //请假天数
instanceVariables.put("reason", "有病要去医院"); //请假事项/原因
//启动流程实例
ProcessInstance processInstance =
engine.getExecutionService()
.startProcessInstanceByKey("LEAVE",instanceVariables);
System.out.println("流程实例【"+processInstance.getId()+"】已经被创建了!");
}
}
|
在上面的例子中,我们调用startProcessInstanceByKey方法来启动流程实例,传了两个参数:
第一个参数是流程定义的KEY
第二个参数是流程实例变量
我们调用这个方法,JBPM将自动查询对应流程定义KEY的最新版本的流程定义对象来创建流程实例对象,并把流程实例对象提交到第一个环节。
当然,实际上更加常见的用法是:像请假单的这些数据,可以存放在我们自己的业务表中,然后在启动流程实例的时候,直接用业务表中的主键值作为流程实例的KEY即可(即无需把所有的业务数据都传递给JBPM),如下所示:
publicvoidtestStartProcessInstance02(){
//流程引擎
ProcessEngine engine = newConfiguration()
.setResource("jbpm.cfg.xml").buildProcessEngine();
//启动流程实例
ProcessInstance processInstance =
engine.getExecutionService()
.startProcessInstanceByKey("LEAVE","101");
System.out.println("流程实例【"+processInstance.getId()+"】已经被创建了!");
}
|
在这个例子中,我们用的是另外的一个方法来启动流程实例,第一个参数的意义与前面例子的一样,第二个参数则是流程实例的KEY。
流程实例也是有KEY这种概念的,流程实例的KEY,刚才说了,一般是将业务对象的键值作为流程实例的KEY。比如,上面我们给了一个“101”,这是我 们假设某个请假单的ID是101,现在,我们要给这个请假单创建一个流程实例对象(以便于这个请假单能在JBPM中进行流转)。
当然,还有更多的方法,也可以用于启动流程实例,具体请参考JBPM4的API,我们在课堂上对此将做详细的介绍。
在启动流程实例之后,数据库中JBPM4_EXECUTION表将被添加相应的记录:
分享到:
相关推荐
3. **流程执行**:jBPM4.4提供了一个流程引擎,用于解析流程定义并执行流程实例。引擎支持流程的启动、挂起、恢复、终止等操作,并能处理并发和分支逻辑。 4. **任务管理**:jBPM中的任务服务允许用户交互地处理...
6. **监控和审计**:jbpm具有内置的监控和审计功能,可以通过监控视图查看流程实例的状态、跟踪流程执行路径,以及对历史数据进行审计。 7. **社区支持**:作为开源项目,jbpm有活跃的社区提供技术支持,用户可以...
4. **测试用例**:可能包含测试流程执行和审批逻辑的JUnit或其他测试框架的测试类。 5. **文档**:可能包括README文件,解释如何运行项目、配置信息以及报错指南。 使用JBPM4.4,开发者可以设计复杂的审批流程,...
【jbpm4.4-请假流程】是一个基于Java开发的流程引擎示例,主要用于演示如何在企业级应用中实现请假流程。jbPM是Java Business Process Management的缩写,它是一个开源的工作流和业务流程管理系统,提供了对BPMN 2.0...
1. **流程定义语言**:jBPM 4.4支持多种流程定义语言,包括BPMN2.0(Business Process Model and Notation),这是一种标准化的图形表示法,用于描述业务流程。此外,它还支持JPDL(jBPM Process Definition ...
jbpm4.4是一款强大的业务流程管理(BPM)框架,它允许开发者设计、执行和管理复杂的业务流程。在线设计流程图功能使得流程设计更为直观和便捷,无需离开Web环境即可完成。本教程将深入探讨jbpm4.4的在线设计流程图...
【JBPM4.4流程管理Demo】是一个基于JBPM4.4版本的示例项目,主要展示了如何在实际业务场景中应用工作流引擎进行流程管理,特别是报销流程的管理。这个Demo不仅包含了可运行的代码,还附带了学习资料和SQL文件,方便...
- **状态跟踪**:jbpm4.4提供了对流程实例状态的详细跟踪,使管理员和开发人员能够监控流程的执行情况。 2. **驳回**: - **任务撤销**:在jbpm4.4中,如果一个任务处理不正确或需要重新考虑,可以将任务驳回到上...
- jBPM4.4 共有 18 张表,这些表用于存储流程定义、实例状态等数据。 **3. jBPM4.4环境准备** - **所需环境**:jBPM 需要 JDK (Java Development Kit) 5 或更高版本;Apache Ant 1.7.0 或更高版本。 - **下载资源*...
**五、jBPM4.4流程执行** 1. **启动流程**:调用jBPM API启动流程实例,传入初始参数。 2. **任务管理**:查询待办任务,完成任务,或者通过API进行任务的分配和操作。 3. **流程监控**:通过日志、报表或监控...
通过上述步骤,用户可以在MyEclipse8.5中成功安装jBPM4.4插件,从而利用jBPM的功能来管理和执行复杂的业务流程。值得注意的是,在安装过程中需要特别注意网络连接的问题,因为某些插件可能需要在线安装或验证。此外...
在这个例子中,jbpm4.4作为流程管理的核心,负责定义和执行业务流程,而S2SH则提供了数据持久化、MVC架构以及依赖注入等基础支持。 首先,jbpm4是JBoss公司开发的一款开源的工作流管理系统,它允许开发者通过图形化...
jbpm4.4是JBoss企业级业务流程管理(Business Process Management)平台的一个重要版本,它为开发者提供了全面的工作流和业务流程管理解决方案。本文将深入解析jbpm4.4的相关知识点,帮助那些寻找优质学习资源的朋友...
jbpm是一个开源的工作流管理系统,它提供了业务流程建模、部署、执行、监控和管理的能力,主要用于简化企业级应用中的工作流程自动化。 在jbpm_4.4这个版本中,你可以找到以下关键知识点: 1. **流程建模**:jbpm...
**三、流程执行** 在jBPM 4.4中,一旦流程模型被定义,它们就可以被实例化并执行。每个流程实例都有自己的生命周期,可以被启动、暂停、恢复或终止。系统还支持并发任务处理,允许多个任务同时进行,适应现代企业的...
6. **规则集成**: jbpm4.4可以与Drools规则引擎结合,实现业务规则在流程执行过程中的动态应用,提升决策的灵活性。 7. **监控和报表**: 提供了监控工具,允许管理员查看流程实例的状态、跟踪任务执行情况,并生成...
**jbpm4.4入门编程小例子** Jbpm(Java Business Process Management)是一个开源的工作流管理系统,主要用于处理业务流程的建模、部署、执行和监控。jbpm4.4是该系统的较早版本,但它仍然是许多开发人员学习工作流...
7. **测试用例**:为了验证流程的正确性,可能会包含JUnit测试,模拟不同的流程执行路径。 通过这个demo,开发者可以学习如何在实际项目中集成jbpm,如何定义和执行业务流程,以及如何处理工作流中的任务分配和审批...
- jbpm4.4是jbpm的第4代版本,提供了一套完整的流程管理解决方案,包括流程设计、执行、监控和优化。 - 它支持BPMN2.0标准,使得业务流程可以通过图形化的方式进行建模,非技术人员也能理解和修改。 - jbpm4.4...