如果,你掌握了一个流程引擎的灵魂,你才有能力理解它的全部。否则,一个引擎对你来说,可能只是一个复杂的结构,丰富多彩API、令人眼花缭乱的“功能”和“服务”而已。------引自:“揭秘jbpm流程引擎内核设计思想及构架 ”胡长城
fork:
有一个分支到达流程就可以继续执行的效果了,如下:
- import org.jbpm.graph.def.ActionHandler;
- import org.jbpm.graph.exe.ExecutionContext;
- import org.jbpm.graph.node.Join;
-
- public class JoinAction implements ActionHandler {
-
- public void execute(ExecutionContext arg0) throws Exception {
- Join join=(Join)arg0.getNode();
- join.setDiscriminator(true);
- }
-
- }
decision:
一个decision用以决定在多个执行路径中哪个才可以被执行。如果你是一个程序员,把它可以理解成switch case结构即可,一个decision能够具有许多离开的transition。Handler所指定的DecisionHandler的实现类里的decide方法返回一个字符串,表示要执行哪个transition,如下例:
java 代码
- import org.jbpm.graph.exe.ExecutionContext;
- import org.jbpm.graph.node.DecisionHandler;
-
- public class ForkDecision implements DecisionHandler {
-
- public String decide(ExecutionContext arg0) throws Exception {
- String dayCount = (String) arg0.getVariable("dayCount");
- String go = "to boss approve";
- if (Integer.parseInt(dayCount) > 10) {
- go = "to join";
- }
- return go;
- }
-
- }
event:
JBPM定义了一系列与工作流节点元素相关联的事件,例如,流程实例运行过程中,可以触发节点进入(node-enter)、节点离开 (node-leave)、流程启动(process-start)、流程结束(process-end)、任务创建(task-create)、 任务分派(task-assign)、任务启动(task-start)等事件。
个人理解,event为action服务,在action外面包一层,使action更加灵活。
timer:
定时器timer可以被用于decision fork join node process-state state super-state task-node,可以设置开始时间duedate和频率repeat,定时器动作可以是所支持的任何动作元素,如action或script。
timer 还有一个很重要的属性cancel-event,这个是timer和task结合时使用的,任务定时器的cancel-event可以被定制。默认情况 下,当任务被结束时(=完成)任务上的定时器将被取消,这是通过在定时器上使用cancel-event属性,流程开发者可以定制诸如task- assign或task-start。cancel-event支持多个事件,通过在属性中指定一个用逗号分割的列表,可以组合cancel-event 的类型。
Task:
Task 是是流程定义里的一部分,它决定了task instance的创建和分配。
swimlane:
实际应用中,一个人是一个流程中多个Task的参与者(actor)的情况是很常见的。在jbpm中通过创建一个swimlane并且把swimlane赋给一个task的方式来设置当前task的参与者(actor)。一个业务流程中的swimlane可以被看做为一个参与者的参与者对象的名称,当然它不一定是固定的某个人,它可以是一个用户组,一个特定用户的角色等。首次执行到达一个Task,赋给该Task的一个swimlane就会算出参与者(actor)。
controller(控制器):
在任务执行时,可能需要读、写流程变量;在任务完成并提交时,可能需要写流程变量。为此,jBPM提供了"任务变量"的概念。在某些情况下,任务变量和流 程变量并非简单的一一对应关系,例如,三个流程变量代表三个月的销售额,任务变量只需要它们的平均值。为实现任务与流程实例之间的信息交流,jBPM设置 了任务控制器机制。该机制也采用递进模式:首先,jBPM提供基本(默认)的任务控制器;如果不敷使用,二次开发人员可以使用自定义的任务控制器。 jBPM的任务控制器机制在流程变量和任务变量之间架起了一座桥梁。
例子:
xml 代码
- <?xml version="1.0" encoding="UTF-8"?>
- <process-definition xmlns="" name="test">
-
- <start-state name="start">
- <transition name="" to="fork1"></transition>
- </start-state>
-
- <fork name="fork1">
- <transition name="tr1" to="top-state"></transition>
- <transition name="tr2" to="test-sub-process"></transition>
- </fork>
-
- <state name="top-state">
- <transition name="to test-task" to="test-task"></transition>
- </state>
-
- <task-node name="test-task" signal="first">
- <task name="task-a"></task>
- <task name="task-b"></task>
- <task name="task-c"></task>
- <transition name="to buttom-node" to="buttom-node"></transition>
- </task-node>
-
- <node name="buttom-node">
- <transition name="" to="join1"></transition>
- </node>
-
- <process-state name="test-sub-process">
- <event type="node-enter">
- <action name="enter-sub-process-action"
- class="gaojie.process.action.EnterSubProcessAction">
- </action>
- </event>
- <transition name="" to="join1"></transition>
- </process-state>
-
- <join name="join1">
- <transition name="" to="end"></transition>
- </join>
-
- <end-state name="end"></end-state>
- </process-definition>
分享到:
相关推荐
这个压缩包可能包含了一系列的资源,如源代码、配置文件、库和示例项目,旨在帮助用户快速地将jbpm工作流技术融入到自己的项目中。 首先,让我们深入了解jbpm的核心功能。jbpm支持 BPMN 2.0 标准,这是一种广泛接受...
jbpm入门** jbpm的入门学习通常从理解其核心概念开始,如流程定义(Process Definition)、任务(Task)、事件(Event)和工作流实例(Process Instance)。流程定义使用BPMN语言编写,通过jbpm提供的图形化编辑器...
【JBPM入门】 JBPM,全称是Java Business Process Management,是一个开源的工作流管理系统,用于实现业务流程自动化。它提供了一套完整的工具集,包括设计、建模、执行和监控业务流程,支持BPMN2.0标准,使得业务...
jbpm工作流引擎基于J2EE的轻量级,纯java,开源的工作流管理系统。
**jBPM4入门基础环境配置** jBPM(Java Business Process Management)是一个开源的工作流管理系统,主要用于处理业务流程的建模、部署、执行和监控。jBPM4是其第四个主要版本,它提供了丰富的功能,包括流程定义、...
**jBPM工作流详解** jBPM,全称Java Business Process Management,是Red Hat公司开发的一款开源的工作流管理系统,它提供了对业务流程的建模、执行和监控能力。jBPM不仅支持传统的工作流标准,如BPMN 2.0,还集成...
jbpm工作流是一款开源的工作流程管理系统,主要用于设计、执行和管理业务流程。它结合了Java技术和BPM(Business Process Management)理念,为开发者提供了一套强大的工具,使得企业能够更有效地自动化和优化业务...
【jbpm的入门1--简单实例】 jbpm(Java Business Process Management)是一个开源的工作流管理系统,它提供了完整的业务流程管理解决方案,包括流程设计、执行、监控和优化。本实例将带你初探jbpm的世界,通过一个...
【JBPM工作流全套学习资料】是一份详尽的学习资源,涵盖了JBPM工作流系统的基础到高级知识。JBPM(Java Business Process Management)是开源的企业级工作流管理系统,它允许开发者设计、部署和执行业务流程。这个...
斯坦福特jbpm入门资料,内容不错,由浅入深,系统讲解了jbpm,是不错的入门资料噢
**JBPM4.4工作流入门例子 - HelloWorld** ...总之,JBPM4.4提供了一个强大且灵活的工作流平台,通过"HelloWorld"这样的入门实例,你可以逐步掌握如何构建和管理业务流程,从而实现企业流程的自动化和优化。
### jBPM 白皮书:介绍 jBPM 入门 #### 一、引言与背景 在当今数字化转型的时代背景下,业务流程管理(Business Process Management,简称 BPM)成为了企业提升效率、优化流程的关键技术之一。BPM 提供了一种程序...
JBPM工作流技术是Java业务流程管理的简称,是一种用于管理业务流程的开源框架。JBPM遵循业务流程管理(BPM)的标准,通过定义和管理工作流的活动(即任务点或活动点)来实现业务流程的自动化。JBPM提供了一套完整的...
首先,"jBPM 开发入门指南"提供了一个系统性的引导,涵盖了jBPM的基本概念、安装配置、工作流设计、任务管理和事件处理等内容。它通常会讲解如何创建第一个流程定义,以及如何使用jBPM提供的工具进行流程建模。通过...
jbpm开发指南 jbpm开发指南 jbpm 工作流 自定义
【jbpm工作流详解】 工作流(Workflow)是业务过程在计算机环境下的自动化体现,旨在使多参与者间按照预定义规则传递文档、信息或任务,以达成特定的业务目标。工作流管理系统(WfMS)是实现这一目标的关键,它负责...
此外,还可能涵盖了如何配置工作流规则、如何定义和分配任务,以及如何使用jbpm的监控工具来查看和分析流程执行情况等内容。 jbpm不仅提供了业务流程的自动化,还有助于提高工作效率,减少错误,并确保业务流程的...
**JBPM4.4入门开发实例** JBPM(Java Business Process Management)是一个开源的工作流程管理系统,专注于业务流程的建模、执行和监控。版本4.4是JBPM的一个早期版本,尽管现在已经有更新的版本,但这个入门实例...
【jbpm+spring配置】是将业务流程管理(Business Process Management, BPM)框架jbpm与企业级应用开发框架Spring相结合的实践。jbpm是一个开源的BPM解决方案,它提供了流程定义、执行、监控和管理的一整套工具。而...
《jBPM工作流应用开发指南》是一本面向初学者的文档,旨在帮助开发者快速掌握jBPM工作流系统的开发技巧。jBMP,全称Java Business Process Management,是开源组织JBoss提供的一款用于业务流程管理(BPM)的框架,它...