1. JbpmConfiguration:获取jbpm的相关的配置信息
a)JbpmConfiguration.getInstance(),载入默认设置
b)载入指定的配置:
- JbpmConfiguration.getInstance (“com/blogs/jbpm.cfg.xml”);
JbpmConfiguration.getInstance (“com/blogs/jbpm.cfg.xml”);
2.Jbpmcontext:用来保持Hibernate,进行流程的持久化操作,主要和事务打交道
a. Jbpmcontext.getCurrentJbpmContent () 是不被推荐的方法
b. Jbpmcontext.createJbpmContext () 是轻量级的
3. org.jbpm.db.GraphSession:表示流程图所对应的数据库运作
- GraphSession gs=JbpmConfiguration.getInstance().createJbpmContext().getGraphSession()
GraphSession gs=JbpmConfiguration.getInstance().createJbpmContext().getGraphSession()
主要的,这个类包含了部署流程和删除流程的方法、以及获得流程定义的方法
deleteProcessInstance()、deleteProcessDefinition()、findLatestProcessDefinitions()这里的latest代表最新版本号的流程定义,相同的流程定义以版本号来区分
4. org.jbpm.graph.def.ProcessDefinition流程定义
- ProcessDefinition pdf=gs.findLatestProcessDefinition(“pdfName”);
ProcessDefinition pdf=gs.findLatestProcessDefinition(“pdfName”);
5. org.jbpm.graph.exe.ProcessInstance流程实例
ProcessInstance pi=pdf.createProcessInstance();
想象一下一个订票的流程,每个客户的订票动作都会更具订票流程定义而创建一个流程实例当一个ProcessInstance被创建后,负责执行主要路径的token也被创建,zhege token就是根token(root token),根token此时位于流程定义的开始状态start state
6. org.jbpm.graph.exe.Token令牌:
一个流程实例被创建的时候一个令牌被创建。该令牌叫做这个实例的根令牌(root token),并处于这个实例的开始状态
Token.single()方法调用node leave
7. 信号(single):
命令令牌继续执行,接收到一个未命名信号时,一个令牌将通过默认的”离开流向”离开当前节点
8. org.jbpm.graph.def.Node结点
两个责任:
a.执行java代码,如创建一个任务实例,发送一个通知,更新数据库
b.结点负责传播流程,即使流程继续执行
不传播流程,这种情况表现为一个等待状态
执行其中一个流向,流开当前结点,executionContext.leaveNode(String)
创建新的执行轨迹,结点可以创建新的令牌,例如分支结点
执行轨迹的结束结点
通常,结点可以改变流程的整个运行时结构
9.结点类型
A. 任务结点(task-node):代表由人介入的一个或多个任务,因此当流程运行到一个任务节点时,会生成一个任务实例对象(taskInstance),并添加到参与人的任务列表中,之后结点会处于等待状态,知道参与人完成任务,并激活流程继续往下执行
B. 状态结点(state):一个典型的等待状态,不向任务列表添加任务实例
C. 判定结点(decision):用来决定业务流程的走向,有两个不同的裁决模式,两者区别在谁来做
a) 流程内部变量来做判定时,使用结点(decision)
b) 由外部程序给出,建议使用多个transition或具有等待状态的结点。可以通过外部的触发器结束一个等待状态并提供一个transition的判定
D. 分支结点(fork):将单个执行流程分裂成多个并发的执行流程,默认行为是为每个子流程生成一个子流程,并建立子令牌,和主流根令牌之间的父子关系
E. 合并结点(join):将分支收拢
F. 普通结点(node):用于提供用户制定自己的行为
10 org.jbpm.context.exe.ContextInstance(Jbpm上下文)
上下文Context其实就是处理流程变量的地方,流程变量使用键值来维护流程实例相关信息,上下文必须存储到数据库中。
通过上下文实例(ContextInstance)来和流程变量打交到,通过流程实例来获得上下文实例
ContextInstance cti=(ContextInstance)processInstance.getContextInstance();
常见操作包括,设置变量获得变量,删除变量
11.图元素org.jbpm.graph.def.GraphElement
是JBPM的定义,有一个名字name,一个描述,有多个事件event,使用Map来存储,有多个例外处理器execptionhandler,使用list来存储,有一个流程定义processDefinition
12.ExecutionContext(执行环境):
这个”环境”关联了Transition、Node、Token、ProcessInstance、TaskInstance、Task等对象,通过这个“执行环境”就能取得这些对象了
13.swimlane(泳道)
Swimlane是一个描述任务接收者的特殊的对象,可以是一个用户,也可以是一个角色,可以是任何东西,只要能根据swimlane算出有哪些action
14.变量
A. 流程范围的变量:
a) 瞬时变量:通过setTransientVarible()方法来设置,不会持久到数据库
b) 普通变量:通过setVarible()和setVaribleLocal()方法保存,通过getVarible()访问,这种变量在整个流程实例中都可以访问,会保存到库中
B. 任务实例范围变量:可以执行访问实例变量,即任务实例变量相当于局部变量,仅在当前流程中可见,流程实例变量相当于全局变量,在整个流程中可见。当通过任务实例去查找一个刘恒时,如果在当前任务实例中没有找到,将到流程实例中去找
15.相关接口说明
A. ActionHandler 动作处理接口
a) 这时jpdl中最常用的一个回调接口,它仅仅暴露了流程执行上下文变量ExecutionContext,用户通过ExecutionContext来了解流程的执行状态,并通过改变ExecutionContext中的属性来影响流程的执行
B. DecitionHandler 判定处理接口
a) 判定接口只适用于判定节点decision中,从它的接口方法可以看出,方法要返回一个字符串类型的结果,这个结果必须和判定结点拥有的转向集合中的一条转向名称相匹配
C. 委派处理接口(AssignmentHandler)
委派处理接口被用户任务元素task和委派子元素中,它的职责很明确,就是将任务分配给指定的人员或者角色
16.其他
A. 对一个结点来说,从定义角度只关心两个事情
a) 是什么类型的结点
b) 结点的转入transition和转出transition
B. 两个重要机制:过度调度机制和执行机制
a) 过度机制是如何正确的从一个结点转到下一个结点。通过processInstance.singal()、taskInstance.end()
C. 我们需要从数据库查找数据时,都是使用XXXSession方法。例如,TaskMgmtInstance
和TaskMgmtSession,前者用来创建任务实例,就是创建taskInstance,后者就是从jbpm数据库中查询某个参与者拥有的任务实例。其他接口有类似的规则
D. Gpd.xml记录的是结点的位置关系
分享到:
相关推荐
工作流基本概念及jbpm简介PPT,这是公司内部培训PPT,是初学入门的好课件,推荐给大家。
工作流引擎的简单介绍,对于概念和基本架构讲述的比较清楚,需要了解工作流的可以看。
工作流基本概念及JBPM简介
工作流基本概念简介 工作流系统功能特性描述 开源工作流引擎jBpm的介绍
介绍JBPM的基本流程概念、实例执行的概念及使用JBPM的区别
JBPM4.4教程,内含jbpm表结构的搭建,流程的基本流转过程,以及重要概念的详细讲解
一、流程定义的基本概念: 二、流程执行的基本概念: 三、流程引擎核心调度过程 ----------------------- jbpm的实现流程图全文共3页,当前为第1页。 jbpm的实现流程图全文共3页,当前为第2页。 ࠀ࠘ࠚࠜࣾऀंऄआ...
工作流基本概念及jBpm简介 适用于刚接触工作流、jbpm
Jbpm 工作流在普通的应用中,基本上对数据库进行一次操作代表着一个业务的发生,等操作完成后,也就标示着业务的完成。例如用户注册这个业务。只要向数据库中添加一条记录,就标示着业务的完成。 但是对于一个报销...
建议读者先自行上网了解jbpm的基本概念以及流程的定义等基础知识,在理解了jbpm的基础之上学习这份文档会有更大的收获!
第一篇 jBPM工作流开发基础 1 第1章 工作流基础 2 1.1 工作流概念 2 1.1.1 工作流管理思想之于企业现代化管理 2 1.1.2 工作流技术在企业中的应用 5 1.1.3 如何从一个开发者的角度看工作流技术 6 1.2 工作流管理系统...
jbpm在OA系统中的应用,2007年的硕士论文,有点老,了解基本概念可以
2.工作流的基本概念 12 2.1 WFMC对工作流的定义 12 2.2 业务流程 16 2.2.1概念 16 2.2.2 业务流程定义语言的介绍 17 2.2.3 业务流程的建立需要遵循的原则 18 2.3 工作流中间件 18 2.3.1 工作流中间件的概念 18 ...
选择项目目录结构:一个项目开始的时候,选择一个合适的项目目录结构,是一件很重要的事情,可能你会很习惯由IDE自动创建的目录结构,如Elcipse或JB,但有些时候,这样的目录结构可能并不是最好的,所以,在项目开始...
并结合Activiti Api这一章节来看,你就会对部署流程、启动流程、执行任务等操作有一个基本的概念。之后编写一个简单的单元测试,主要为了测试activiti.cfg.xml配置的是否正确,流程是否可以被部署即可。 至于与...
通过一个简单的业务流程,介绍了基本的Activiti概念和API。
长期以来,传统的GIS软件很难将人们积累的对地理要素的研究成果直接在计算机中表达出来,而采用面向对象的数据模型则可以对地理空间进行多层次的分解,选择更加基本的操作单元,从而更全面、正确地描述现实世界。...
1.4. Seam 和jBPM:待办事项列表(todo list)示例..................................................................................................... 32 1.4.1. 理解代码....................................