传智播客jbpm学习,jpbm中流程执行比较重要的类和方法

JBPM学习(六):详解流程图 最近发现这篇文章挺多人看的,也挺多人有疑问,我很想帮你们解答,但是很无奈,这篇文章只是我当时在自学时看的一个教程的记录,当时对JBPM也没有深入去学习,并且到现在也已经快4年了,这期间我都没用过JBPM,因此JBPM的东西我也忘得差不多了。庆幸的是我把当时看的教程保存了下来,因此如果对此文章有疑问的可以直接看我下面链接的教程。另外,通过我分享的视频大家也能看到这是一个OA教程,我当时刚入门自学Ja... 阅读详情


  今天继续学习jbpm,汤老师结合例子对jpbm中流程执行比较重要的类和方法进行了讲解,部署流程定义,流程执行,任务实例等。通过今天的学习,基本掌握了jbpm操作流程。

jbpm中要用的jar包,把它们添加进入项目
 
   jbpm-jpdl.jar(核心);
   jbpm-identity.jar(可选,组织机构);
   bsh.jar(BeanShell脚本);
   jboss-j2ee.jar;

   hibernate3.jar(Hibernate);
   antlr-2.7.6.jar(Hibernate);
   asm.jar(Hibernate);
   cglib.jar(Hibernate);
   dom4j.jar(Hibernate);
   commons-collections.jar(Hibernate);
   commons-logging.jar(Hibernate);

   hsqldb.jar(可选,纯Java写的数据库);
   log4j.jar(可选,日志记录);

   Junit4(单元测试);

     添加配置文件(在jbpm-jpdl-3.2.2/config目录中):
   jbpm.cfg.xml;
   hibernate.cfg.xml;
   log4j.properties(可选,log4j配置文件);
修改数据库库连接信息,如果使用的不是HsqlDB数据库,还应添加相应的jdbc驱动。

  生成数据库表。

 编写流程步骤,要实现的功能有:
    a> 部署流程定义。
    b> 启动流程。
    c> 获取任务列表。
    d> 开始任务。
    e> 结束任务。
其中编写流程定义和步骤a是添加流程定义到系统中;步骤b,c,d,e是使用系统中
存在的某个流程定义执行流程;步骤c,d,e是办理一个任务的过程,流程的执行就
是一次次办理任务的过程。
    有两个重要的类:JbpmConfiguration和JbpmContext。JbpmConfiguration是
jBPM的相关配置信息,并有创建JbpmContext的功能,可以把JbpmConfiguration
想像成Hibernate中的Configuration与SessionFactory的结合体。使用
JbpmConfiguration.getInstance()方法创建一个JbpmConfiguration对象,这会
使用默认的jbpm配置文件:在classpath根目录中,并且名字为jbpm.cfg.xml。或
者是使用getInstance(String configFilePath)方法,用指定的配置文件构造。

Jbpm中几乎所有的操作都是通过JbpmContext完成的,可以把他想像成Hibernate
中的Session。他是通过JbpmConfiguration.createJbpmContext()方法创建的,
JbpmContext中包装有一个Hibernate的Session(通过他做的数据库操作)。使用
完JbpmContext后一定要调用他的close()方法,否则所有信息都不会持久化到数
据库当中。因为在调用JbpmConfiguration.createJbpmContext()方法时会创建一
个Hibernate的Session并开始事务;在调用JbpmContext.close()方法时会提交事
务并且关闭所关联的Session。如果在执行JbpmContext.close()之前调用方法
jbpmContext.setRollbackOnly(),则在JbpmContext.close()时会回滚事务。
   部署流程定义
这个过程就是把流程定义的相关信息保存到jBPM的数据库中。
    解析流程定义有三种方式,所使用的方法都在ProcessDefinition中,并且都
是static的:1)parseXmlResource方法,parseXmlInputStream方法和parseXmlReader方法,是解析一个xml的流程定义文件;2)parseXmlString,是解析一个字符串;3)parseParResource与parseParZipInputStream是解析一个par包。
   ProcessDefinition.parseXmlResource(xmlResource)接受的参数是流程定义文件
的路径,这个路径是相对于classpath的根路径的一个相对路径。
    Process archive(par),流程档案文件,是一个zip文件。必须要有一个流程定义文件,名字为processdefinition.xml,流程档案也可以包含其他的相关文件,
如processimage.jpg,gpd.xml或classes(类的字节码文件)等等,(流程定义中
使用到的class要放到classpath中;或者是放到流程档案的/classes文件夹中,
这样就会被流程类装载器来装载)。

   流程定义不应该改变,因为预测流程变化带来的所有可能的影响是非常困难的
(或者说是不可能的)。围绕这个问题,jBPM有一个明智的流程版本机制。版本
机制允许在数据库中多个同名流程定义共存,流程实例以当时的最新版本来启动,并且在它的整个生命周期中将保持以相同的流程定义执行。当一个新的版本被部署,新的流程实例以新版本启动,而老的流程实例则以老的流程定义继续执行。
  部署流程定义时,如果存在同名的流程定义,则版本自动累加(加1);如果不存在,则版本为1。
   在部署到jBPM数据库之后改变流程定义有很多潜在的缺陷,因此非常不鼓励这样做。可以直接部署为一个新的版本。
    执行流程
流程实例可以通过ProcessDefinition.createProcessInstance()方法创建,或者
是使用new ProcessInstance(ProcessDefinition pd)并传递一个流程定义来创建,
总之创建的流程实例一定是要是属于(使用)某个流程定义的。启动流程后不要
忘了使用ProcessInstance.signal()方法离开开始状态。
  注意:流程定义的名字是processdefinition.xml文件中的根元素的name属性的值,不是流程定义文件的名字!
    每个节点都有多个任务,任务列表:当前需要办理(未完成)的任务集合。可以通过TaskMgmtSession获得。
    开始任务的方法为:TaskInstance.start();结束任务为:TaskInstance.end(),
TaskInstance.end(String transitionName);无参的end()方法是使用第一个
transition离开节点;第二个方法是指定完成任务后使用指定的transition离开
节点。一个任务实例只能开始和结束一次(再次开始或结束会抛异常,打印这个任务已经结束了)。

 

 

 



新浪空间——与朋友开心分享网络新生活!

jbmp入门教程,jBPM流程定义语言,业务日历,流程建模 立即下载

相关推荐

JPBM实战经验以及相关参考文档

这是JPBM从安装配置到实际项目的实战经验总结,希望资料能给您带来较大的帮助,同时减少您查找资料的时间。相信这些资料一定会给您带来学习JPBM的捷径。

JBPM 要点总结

JPBM是JBOSS旗下的一个开源的基于hibernate的工作流引擎。 工作流就是在日常生活中,我们一些常见的如请假流程、采购流程、入职流程,通俗的来讲就是一些在现实生活中的流程以信息化以程序的方式实现。 一个工作流首先需要进行流程定义,流程定义是由节点和跳转组成的,节点又可以称为环节、活动节点、活动环节,并且节点也可以分为两大类型:人工节点和自动节点,人工节点有start开始节点、end结

lang.zj 671

开源工作流JBPM(完整工程)

一、环境要求如下: 1.tomcat5.0.28 2.mysql4.1.22 3.hibernate3.1 4.jdk1.5.0_08 5.myeclipse5.5 5.jbpm-starters-kit-3.1.4 二、数据库SQL文件在工程mysql4122目录下

jBPM教程

JBPM中的起始任务  jbpm用户指南翻译:第1章 介绍    JBPM用户指南翻译:第3章 指南    Jbpm用户指南翻译:第9章 流程建模  Jbpm用户指南翻译:第10章 上下文   JBPM开发入门-连载b event(事件) JBPM定义了一系列与工作流节点元素相关联的事件,例如,流程实例运行过程中,可以触发节点进入(node-enter)、节点离开 (node-leave)、流...

wenzi_li的专栏 162

基于JPBM工作流的车辆保险理赔应用

车辆保险理赔服务在保险公司内部存在岗位多、岗位之间流程复杂等特点,将工作流思想与车辆保险理赔业务流程相结合,并将JBPM(Java Business Process Management)工作流产品引入到车辆保险理赔业务中,从而实现整合各工作岗位,优化流程,提高办事效率,节约成本,提升生产经营管理水平和企业竞争力。

WinForm实战:如何用C#和PdfiumViewer打造一个功能齐全的PDF阅读器(含源码)

本文详细介绍了如何使用C#和PdfiumViewer库从零开始构建一个功能齐全的WinForm PDF阅读器。内容涵盖项目环境搭建、核心组件解析、基于命令模式的工具栏与UI架构设计,并深入讲解了智能缩放、页面导航、打印功能等核心交互的实现,以及内存管理和性能优化等高级话题,为开发者提供了一套完整的实战解决方案。

docker8compose的博客 503

JBPM学习(一):实现一个简单的工作流例子全过程

最近发现这篇文章挺多人看的,也挺多人有疑问,我很想帮你们解答,但是很无奈,这篇文章只是我当时在自学时看的一个教程的记录,当时对JBPM也没有深入去学习,并且到现在也已经快4年了,这期间我都没用过JBPM,因此JBPM的东西我也忘得差不多了。庆幸的是我把当时看的教程保存了下来,因此如果对此文章有疑问的可以直接看JBPM的教程。另外,通过我分享的视频大家也能看到这是一个OA教程,我当时刚入门自学Jav...

程序员囧辉 6万+

【OTDR曲线工具箱】04 批量生成sor文件

软件下载地址:http://120.78.150.214:9999/isora.zip 通过一个测试数据sor文件,批量生成多个测试文件(基于Bellcore GR196及SR-4731标准)。主要考虑哪些问题: 1、sor测试是否符合要求(主要是衰减系数) 2、多个文件的创建时间 3、文件必须随机处理,不要看省去一模一样。 来说说怎么操作的 第一步:选择参考曲线 参考曲线的选择由两种方法:从文件中导入、从曲线库中选择。 其中曲线库分为公共库和个人库两种,平时浏览的sor文件都可以加载到库中。 第二步

夜晚是传说的博客 5273

传智播客jbpm学习,工作流管理

    今天开始学jpbm 工作流管理系统,汤老师讲的, 又和汤老师见面了,还是很精神。汤老师先对工作流和jpbm进行了简单的介绍,接着对jbpm中细节知识结合一个员工报销费用的流程进行了讲解。     工作流就是工作流程的计算机化,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计

TuiRoger的专栏 2455

中孚保密检查系统彻底卸载指南:绕过口令与清除内核残留

中孚保密检查系统是深度集成于Windows内核的合规管控软件,其卸载涉及用户态口令校验、内核态服务引擎与Ring 0级驱动自保三重机制。理解其基于SHA-256哈希的本地口令验证原理和zfsysflt.sys过滤驱动的加载逻辑,是实现无残留清理的技术前提。该系统具备高权限驻留特性,常规卸载工具无法触达驱动与服务层,易引发蓝屏、启动缓慢及新安全软件冲突等工程问题。典型应用场景包括涉密终端批量清退、安全研究环境重建及误装后紧急退出。本文聚焦‘口令绕过+手动清理’双轨方案,覆盖注册表、服务、驱动、文件与计划任务五

weixin_33508411的博客 1031

ArcGIS学习记录—SHP文件转换为KML KMZ数据,并显示面要素相应的标注

使用相应软件操作获取KMZ数据得以下发到外业调查人员,使得矢量数据能够更显而易见,可视化,让外业人员的工作减轻许多。(过程步骤是借鉴于网络上的相关人士给的建议,根据这些建议自己做出来的步骤,可能有些粗略,有问题的话可以再进行探讨)...

qq_41046162的博客 5万+

传智播客oa学习,配置struts+ hibernate + jbpm

     今天开始oa的学习,汤老师讲了一个员工请假的jpbm的比较好的例子,对jpbm的重点,难点的掌握很有帮助。然后就在开始了在实际项目中使用jbpm的oa项目,又复习了一遍struts和hirbernate,感觉前段时间学的还是可以的,汤老师在一部分的实现之前会先讲一下要实现的功能,然后让大家试着去实现。感觉效果不错,即使有的地方做不出来,因为已经思考过了,再听汤老师讲解,有助于理解和记

TuiRoger的专栏 1934

Win10插网线显示未识别网络的三种解决方法

本文介绍了三种解决Win10插网线显示未识别网络问题的方法:更新或重启网络设备驱动程序、重置Winsock目录、启用Network Setup Service服务。这些方法都是基于常见的网络问题和解决方案而设计的,适用于大多数Win10用户。如果你遇到了这一问题,可以按照上述步骤进行操作,相信一定能够找到解决问题的方法。需要注意的是,在进行任何操作之前,请务必备份重要数据以防万一。此外,如果你对计算机硬件或软件不熟悉,建议寻求专业人士的帮助以避免造成不必要的损失。

nntxthml的博客 6773

完整工作流JBPM项目实战全过程教程1---准备工作

      偶然机会,认识了工作流系统,并且在www.open-open.com(相当不错的开源项目站点,极力推荐!)上了解了些相当出色的工作流系统,不过呼声最高的应该属JBoss 的JBPM工作流组件了。     正好有个项目需要用到工作流机制,遂学习了下JBPM,感受了下JBPM带来的的便捷体验。现在我就把我的学习经历记录下来。和大家共同分享,也希望对那些刚研究JBPM的同仁们有所帮助。   ...

zpchen 566

XDMA 驱动安装与性能测试全流程解析

本文详细解析了XDMA驱动的完整安装与性能测试流程。从环境准备、源码获取、编译安装到驱动加载与设备验证,逐步指导用户打通FPGA加速卡与主机间的高速数据通道。重点介绍了如何通过官方测试脚本进行功能验证与带宽性能测试,帮助用户评估XDMA驱动的实际传输效能,为AI推理、高频交易等低延迟高带宽应用奠定基础。

weixin_29216049的博客 525

AutoCAD中圆弧折线化方法与实现

在AutoCAD中,圆弧折线化是将圆弧曲线转换为由一系列线段组成的折线曲线的过程。本文将介绍如何使用LISP编写代码来实现圆弧折线化,并提供相应的源代码。上述示例代码将生成一个以坐标原点为圆心、起点为(5.0, 0.0, 0.0)、终点为(0.0, 5.0, 0.0)、半径为5.0、角度为90度的圆弧的折线表示。通过使用上述的LISP代码,你可以在AutoCAD中实现将圆弧转换为折线的功能。你可以根据需要修改代码中的参数来适应不同的圆弧转换需求。函数,并传入圆弧的起点、终点、圆心、半径和角度参数。

VcuOcaml的博客 1417

jbpm核心类使用

Jbpm的使用步骤 A)编写流程定义(定义规则); B)部署流程定义到系统中; C)执行流程(使用指定的流程定义);           使用jBPM提供的JPDL(jBPM Process Definition Language)来描述流程,jPDL是一种直观的流程语言,可以使用任务、等待状态、定时器、自动化动作等等图形化地表示流程。jPDL认为一个商务流程可以被看作是一个UML状态图。

xian00000的专栏 1002

基于LED可见光通信的物联网系统设计_344

随着物联网技术的不断发展,传统无线通信在工业环境中面临电磁干扰强、通信质量不稳定等问题。为此,本文设计了一种基于LED可见光通信的物联网系统,实现工厂车间内设备状态的稳定、高效、低干扰数据传输。系统主要由设备节点、设备主机、华为云物联网服务器以及可视化上位机构成。 设备节点采集机器的出货量、运行状态、机身温度等关键信息,通过调制后的LED可见光信号发送至设备主机。主机利用红外接收器接收光信号后进行解调处理,并通过WIFI模块将数据上传至华为云IOT服务器。

344

JBPM核心对象

前言 前面我们对JBPM的概念及其历史有了简单的了解后,今天来对其进行更深一层的认识,为了能够全面的认识JBPM,我们先从其核心对象入手。   正题 我们先来看一张图,看下JBPM都有些什么: 一、Configuration Configuration是jbpm的配置文件管理对象即资源加载对象.负责加载jbpm的各种配置如数据库连接配置,事务配置,身份认证,jpdl等相关配置。

赵丹丹 廊坊师范学院信息技术提高班 七期 1597

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

工作流--JBPM核心服务及表结构

<style></style> 一、 使用JBPM开发工作流的一般流程 1.jBPM的运行需要数据库的支持,因此系统设计时要选定所用数据库。只要是Hibernate支持的数据库,jBPM就支持。数据库的初始化可以由jBPM自动完成,也可以通过ant generate.ddl任务生成SQL语句,在jBPM外部自己创建所需的表。 2.使用jPdl定...

ithome 241

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jbpm工作流入门教程

jbpm入门例子新一篇: windows下svn-1.4.0环境布置和eclipse集成function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d.getSelection?d.getSelection():);void(k

huxin1的专栏 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

JBPM学习(三):管理流程定义

概念: ProcessDefinition,流程定义:一个流程的步骤说明,如一个请假流程、报销流程、是一个规则。 ProcessDefinition,流程定义对象,是解析.jpdl.xml文件得到流程步骤的信息。没有更新操作,启动流程实例时是使用指定key的最新的版本。 1.部署流...

chuanbinkun5022的博客 176

<提问> JBPM 如何在流程控制中管理业务数据?

新手提问: 看了JBPM的DOC,大致明白了它是如何定义和控制流程的,但是如何和业务数据整合起来还想不太明白,希望大家指教: 案例情况: 有一个流程,每个节点都会有很多结果数据(信息表,审核表,合同等),如何把这些信息与流程的流转结合起来? 并且每个节点必须在这些数输入或者处理后才能结束? 我想了想: 方法一:把每个节点涉及到的所有信息均用JBPM中的Variable来...

abo123的博客 175

jbpm的基本流程

理解JBPM(java Business Process Management)的基本概念: jPDL - JBPM Process Definition Language JBPM简要过程:1、定义流程(利用JPDL)2、部署流程(部署到数据库)3、创建公文并与流程实例绑定4、可通过JBPM的接口,触发流程向下流动5、可通过JBPM的接口,获得流动到某个用户那里的文档(即待处理任务列表)6、可通...

shaqiang32 349

【工作流】jbpm(三)——开发流程

一、前言      在上一篇博客中,小编向大家介绍了jbpm的环境搭建以及一些服务,的确这些服务我们确实经常使用。所以在这篇博客小编就正式带大家走进jbpm,通过一个实战Demo来领略一下。二、开发步骤 业务分析,画流程图 开发人员,根据活动图建立jpdl流程定义 开发人员,编写代码 用户,发起流程实例 用户,审批流程 三、开发Demo3.1 流程定义文件和配置文件      在src目录下面建立J

哈士奇 1061

工作流引擎(JBPM)实现企业内部信息化建设

1、可扩充性强,采用JBPM内核;2、B/S结构绘制流程图;3、和润乾报表实现完美结合,使用润乾报表工具设计报表,将报表和流程结合,最终打到报表扭转和报表数据汇总的功能。4、实现企业内部多个系统之间的数据共享;5、提供开源;联系方式:QQ:784385958; E-MAIL : makekeok@163.com

myflow的专栏 6950
上一篇: 传智播客jbpm学习,工作流管理
下一篇: 传智播客jbpm学习,询价采购的流程
TuiRoger
博客等级 码龄19年 48粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值