JBPM5.2学习笔记(2)

JBPM5.2 重要的API

1) Knowledge Base
jBPM允许你先创建一个knowledge base。这个knowledge base应该包含你所有的流程定义,就是需要被会话执行的流程。创建一个knowledge base,先用knowledge builder来连接不同资源的流程,然后从builder创建一个新的knowledge base。

 


KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource("MyProcess.bpmn"), ResourceType.BPMN2); KnowledgeBase kbase = kbuilder.newKnowledgeBase();

 

 


2)Session

 

创建一个会话来和引擎结合。然后会话就能够被来启动一个流程或单独的事件。

 


StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); ProcessInstance processInstance = ksession.startProcess("com.sample.MyProcess");

 

 

 

3)Event
会话提供了监听器的注册和删除的方法,一个流程事件监听器可以被用来监听和流程相关的事件,比如开始或完成一个流程,进入或离开一个节点等等。

 

 


public interface ProcessEventListener {


  void beforeProcessStarted( ProcessStartedEvent event );

  void afterProcessStarted( ProcessStartedEvent event );

  void beforeProcessCompleted( ProcessCompletedEvent event );

  void afterProcessCompleted( ProcessCompletedEvent event );

  void beforeNodeTriggered( ProcessNodeTriggeredEvent event );

  void afterNodeTriggered( ProcessNodeTriggeredEvent event );

  void beforeNodeLeft( ProcessNodeLeftEvent event );

  void afterNodeLeft( ProcessNodeLeftEvent event );

  void beforeVariableChanged(ProcessVariableChangedEvent event);

  void afterVariableChanged(ProcessVariableChangedEvent event);


}

 

 

 

流程构造细节
BPMN2.0规范定义了三种主要的节点类型:
? Events:是用来建模特定事件的发生。事件有开始事件,结束事件,中间事件。
? Activities:这些动作定义了在流程执行过程当中需要被执行的不同动作。不同类型的任务是要依赖于你正在建模的动作的类型,并且动作是可以嵌套的。
? Gateways:你能够在流程中定义多个路径。依赖gateway的类型,这可以是指示并行的执行、选择等待。

 

JBPM5.2学习笔记(2)

 

 

 

BPMN 2.0 定义的元素:

流程对象

事件

* Start Event (None, Conditional, Signal, Message, Timer)

* End Event (None, Terminate, Error, Escalation, Signal, Message, Compensation)

* Intermediate Catch Event (Signal, Timer, Conditional, Message) 立即捕获事件

* Intermediate Throw Event (None, Signal, Escalation, Message, Compensation)

* Non-interrupting Boundary Event (Escalation, Timer) 非中断边界事件

* Interrupting Boundary Event (Escalation, Error, Timer, Compensation)

活动

* Script Task (Java MVEL) JAVAMVEL脚本表达式语言

* Task

* Service Task

* User Task

* Business Rule Task

* Manual Task

* Send Task

* Receive Task

* Reusable Sub-Process (Call Activity) 可复用的子流程

* Embedded Sub-Process 嵌入的子流程

* Ad-Hoc Sub-Process 点对点的子流程

* Data-Object

关口

* 分支

* Exclusive (Java, MVEL or XPath expression language) 排斥

* Inclusive (Java, MVEL or XPath expression language) 包含

* Parallel 并行

* Event-Based

* 合并

* Exclusive 排斥

* Parallel 并行

* Lanes

数据

* Java type language

* Process properties

* Embedded Sub-Process properties

* 活动properties

连接对象

* Sequence flow 时序流

 

 流程属性的细节
BPMN2流程图式就是使用连线将不同类型的节点链接起来。流程以下属性:

ID 惟一

NAME 显示名称

VERSION: 版本

Package: 命名空间

Variables: 变量,用于传递数据

Swimlanes: 泳道(专用通道),指定执行人工任务的actor

Connection Layout连接布局

Manual : 人工

Shortest path : 最短路径

你可能感兴趣的:(JBPM5)