`
碧海山城
  • 浏览: 192593 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jbpm学习笔记(一)-------概念记录

阅读更多
  这些是前几个月学习jbpm的时候在网上找到的记录,本来是抄在了本子上,现在录上来,回顾一下知识

1. JbpmConfiguration:获取jbpm的相关的配置信息

   a)JbpmConfiguration.getInstance(),载入默认设置
   b)载入指定的配置: 
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()



   主要的,这个类包含了部署流程和删除流程的方法、以及获得流程定义的方法
deleteProcessInstance()、deleteProcessDefinition()、findLatestProcessDefinitions()这里的latest代表最新版本号的流程定义,相同的流程定义以版本号来区分

4. org.jbpm.graph.def.ProcessDefinition流程定义
         
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记录的是结点的位置关系
分享到:
评论
5 楼 碧海山城 2008-09-17  
呵呵,不是,当时时间紧,就没看文档,遇到一个不太明白的概念就百度然后记录下来的
4 楼 heath.derek 2008-09-16  
顶下~十分好奇,你的这些资料都是翻阅英文文档自己总结出来的吗?好强哦
3 楼 kkkk 2008-09-05  
2 楼 碧海山城 2008-09-03  
呵呵,不好意思,打字的时候太粗心了,改正
1 楼 kkkk 2008-09-02  
taskMamtSessio

相关推荐

    JBPM3学习笔记

    **JBPM3学习笔记** JBPM(Java Business Process Management)是一个开源的工作流管理系统,它提供了对业务流程的建模、部署、执行和监控的能力。在本文中,我们将深入探讨JBPM3的核心概念、功能和使用方法,以帮助...

    jbpm 4.4 学习笔记

    在本文档中,主要讨论的是jbpm 4.4 版本的学习笔记。作者通过实践学习并整理了关于jbpm的一些关键概念和操作。 首先,流程图是jbpm设计流程的核心,它包含了一系列的流程元素。在提到的订购流程中,主要包括以下...

    jBPM-jPDL学习笔记.zip

    通过阅读《jBPM-jPDL学习笔记.pdf》,你可以深入了解这些概念,并学会如何使用jPDL编写和部署流程定义,从而在实际项目中实现灵活、可扩展的业务流程管理。这份资料对于初学者来说是一份很好的入门指南,能够帮助...

    jBPM-jPDL学习笔记—框架设计简介

    jBPM,全称JBoss Business Process Management,是一款强大的开源业务流程管理框架,它涵盖了业务流程管理、工作流和服务协作等多个领域。jBPM的核心在于它的可执行流程语言,其中包括了jPDL(jBPM Process ...

    jbpm3.1.4经典学习教程

    jbpm3.1.4是其历史版本之一,虽然现在有更高级的版本,但对于学习工作流基础概念和原理,这个版本仍然具有很高的价值。 首先,我们要理解jbpm的核心概念。jbpm提供了流程定义的语言(BPMN,Business Process Model ...

    jbpm中文开发指南+用户手册+demo源码+学习笔记等

    学习笔记可能是一位有经验的开发者或学习者记录下的心得和体会,包含了他们在研究jbpm过程中遇到的问题、解决方案,以及一些实用的技巧和建议。这些笔记对于初学者来说尤其有价值,因为他们可以从中借鉴他人的经验,...

    jBPM教学视频(02管理流程定义.zip)

    通过这个视频教程,学习者可以掌握jBPM的核心概念,为进一步实现高效、灵活的业务流程自动化奠定基础。无论你是企业架构师、开发人员还是业务分析师,了解并掌握jBPM都能极大地提升你的工作效率和项目的质量。

    JBPM视屏教程共9节 jBPM 4视频教程09流程图跟踪

    1. family168.txt:可能是一个文本文件,通常用于记录课程笔记、代码示例或者相关参考资料。由于没有具体内容,我们无法确定其确切用途,但它很可能与jBPM的流程管理有关。 2. jBPM 4视频教程09.pdf:这是一个PDF...

    JBPM视屏教程共9节 jBPM 4视频教程08监听事件

    例如,你可以创建一个自定义的监听器来记录每个任务的完成时间,或者在流程异常时发送通知。 视频教程可能涵盖了以下内容: 1. **事件定义**:介绍jBPM支持的各种事件类型,如任务开始、结束、超时、异常等。 2. *...

    工作流引擎笔记

    工作流引擎是一种软件系统,它实现了工作流程自动化,使得企业或组织可以定义、执行和管理业务流程。...通过深入学习"jbpmѧϰ.doc"文档,我们可以更好地掌握Jbpm的特性和用法,从而在实际工作中发挥其潜力。

    大型软件公司的Java面试题(亲身经历哦)

    - **WebLogic 的架构**:了解 WebLogic 的基本架构是面试中的一个重要环节,包括域(domain)、集群(cluster)、服务器实例(server instance)等概念。 - **WebLogic 的配置与管理**:掌握如何配置 WebLogic 的环境变量...

    java小游戏代码,吉林大学

    这可能是吉林大学Oracle课堂的一个项目,旨在让学生通过实践来掌握Java编程的基本概念和技术。Java是一种广泛使用的面向对象的编程语言,以其跨平台性、安全性以及丰富的类库而闻名,非常适合开发各种类型的游戏。 ...

Global site tag (gtag.js) - Google Analytics