传智播客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)工作流产品引入到车辆保险理赔业务中,从而实现整合各工作岗位,优化流程,提高办事效率,节约成本,提升生产经营管理水平和企业竞争力。

5分钟搞懂知识抽取:如何把非结构化数据变成知识图谱的宝藏?

本文通过一个电商评论分析实战案例,详细解析了如何利用spaCy、Neo4j等工具,将非结构化文本数据转化为结构化知识图谱的完整流程。文章重点阐述了知识抽取的核心步骤,包括命名实体识别、关系抽取以及知识存储与查询,帮助读者快速掌握将数据转化为知识宝藏的关键技术。

weixin_29054245的博客 235

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

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

程序员囧辉 6万+

从仿真到部署:基于ROS2与Gazebo的UR5e机械臂全流程控制实践

本文详细介绍了基于ROS2与Gazebo的UR5e机械臂全流程控制实践,从环境准备、模型构建到控制器开发和仿真优化,最终实现真实机器人部署。通过实战案例和避坑指南,帮助开发者掌握机器人仿真与控制的关键技术,提升UR5e机械臂在物料分拣等任务中的性能与稳定性。

weixin_29184371的博客 288

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

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

TuiRoger的专栏 2455

【工具】GitHub学生认证+PyCharm配置Copilot全流程指南

本文提供了一份详细的GitHub学生认证及在PyCharm中配置Copilot的完整指南。通过完成A2F认证、准备有效材料并使用干净网络环境,学生可免费获取GitHub Copilot Pro订阅,极大提升编程学习与开发效率。

w7x8y9z的博客 1459

STM32 HAL库串口DMA接收不定长数据的两种实战方法:IDLE中断与超时管理详解

本文详细解析了STM32 HAL库中串口DMA接收不定长数据的两种实战方法:IDLE中断与超时管理。通过对比分析两种方案的硬件要求、响应速度和适用场景,为嵌入式开发者提供了高效可靠的串口通信解决方案,特别适用于智能家居、传感器网络等需要处理不定长数据包的应用场景。

weixin_30954265的博客 471

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

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

TuiRoger的专栏 1934

lammps后处理:堆垛层错和孪晶的数量统计

python调用ovito包可以免费实现ovito pro版本的功能,不需要安装ovito pro软件,如统计位错线长度、CNA结构、键角分布等,如需深入学习,可考虑报名python ovito后处理课程,或lammps一对一课程。lammps金属变形模拟中,可能会产生堆垛层错或者孪晶等结构,但是ovito免费版本无法统计这些结构的数量。使用python和ovito软件包,则可以方便的统计出这些结构的数量。大家好,我是小马老师。

lammps_jiayou的博客 467

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

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

zpchen 566

64.企业级案例(上)-金融行业DDD落地全流程支付系统-附架构演进图

本文以金融支付系统为例,完整展示了DDD在企业级项目中的落地流程。首先通过事件风暴识别核心业务领域,包括交易、渠道、账务等限界上下文。在战略设计中划分上下文边界,确定交易上下文为核心域。战术设计聚焦交易上下文,详细设计了支付单聚合、值对象和支付路由服务。架构实现采用CQRS+EDA模式,通过命令端处理交易,查询端异步更新读模型,并利用防腐层隔离外部渠道。案例展示了DDD从业务探索到架构实现的全过程,体现了其在复杂业务系统中的价值。

yonggeit的博客 3039

SAP 采购订单入库——移动类型

业务场景:采购入库,实物入库至仓库,然后系统同步过账。MIGO:收货、采购订单。 MVT:101 入库,---库存增加。 MVT:移动类型,就是代表业务场景,(比如入库、发货,成本中心发、工单发、报废、盘赢、盘亏等等) 移动类型 1、正向采购入库:101 2、反向冲销(MIGO)102:与101相反,用于错误操作的反向冲销。参考原凭证,全部进行一...

willieyuan的博客 7781

jbpm核心类使用

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

xian00000的专栏 1002

Ubuntu零基础入门到精通【1.2讲】:Ubuntu 与 Linux 的关系 —— 你用的到底是什么?

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 3260

JBPM核心对象

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

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

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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、付费专栏及课程。

余额充值