`
chengyue2007
  • 浏览: 1488979 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

JBPM(Work Flow)

阅读更多

理解JBPM(java Business Process Management)的基本概念:

jPDL - JBPM Process Definition Language

JBPM简要过程:
1、定义流程(利用JPDL)
2、部署流程(部署到数据库)
3、创建公文并与流程实例绑定
4、可通过JBPM的接口,触发流程向下流动
5、可通过JBPM的接口,获得流动到某个用户那里的文档(即待处理任务列表)
6、可通过JBPM的接口,结束某个用户的任务(这将触发流程继续向下流动)
7、如此,直到结束

----------------------------------------------
测试:

1、安装JBPM
 - 引入Hibernate依赖包
 - 引入JBPM依赖包
  * bsh.jar
  * jcr-1.0.jar
  * jbpm-identity.jar
  * jbpm-jpdl.jar
 - 引入数据库驱动
  * mysql-connector-java-3.1.13-bin.jar
2、定义相关配置文件
 - Hibernate配置文件
  * 提供hibernate配置文件(可以从config/目录下拷贝,并修改其中的数据库连接设置即可)
3、假设现在有一个公文,需要经过:张三、李四、王五的审批之后才能结束
4、我们定义一个Document对象,及其hibernate映射,并将修改hibernate配置文件,将映射添加到其配置中(以便创建相应的数据库表)
5、现在让我们来测试一下:
 - 创建数据库表: JbpmConfiguration.getInstance().createSchema();
 - 定义流程: 参考process.xml
 - 部署流程:
  * JbpmConfiguration.getInstance() - 创建jbpmConfiguration对象
  * ProcessDefinition.parseXmlResource(String); - 读取流程定义文件,创建processdefinition对象
  * jbpmConfiguration.createJbpmContext(); - 创建jbpmContext对象
  * context.deployProcessDefinition(definition); - 部署流程到数据库
  * context.close(); - 关闭context对象
 - 创建公文
 - 将公文与流程绑定(即需要创建流程实例)
  * JbpmConfiguration.getInstance() - 创建jbpmConfiguration对象
  * jbpmConfiguration.createJbpmContext(); - 创建jbpmContext对象
  * context.setSessionFactory(sessionFactory),将JBPM与程序中的session绑定
  * context.getGraphSession().findLatestProcessDefinition("流程名称");
  * new ProcessInstance(definition); - 创建流程实例
  * context.save(processInstance); - 存储流程实例
  * 在Document中添加Long processInstanceId 属性
  * context.getSession().load 操作,加载Document对象
  * document.setProcessInstanceId - 绑定流程实例到公文
  * processInstance.getContextInstance.createVariable("document",document.getId()) - 绑定公文到流程实例
 - 公文创建者提交公文
  * (Document)context.getSession().load(Document.class, 1); - 加载公文信息
  * context.getProcessInstance(从公文中获取的流程实例ID); - 即根据流程实例ID加载流程实例
  * processInstance.getRootToken().signal(); - 触发流程往下走(即到达第一个节点)
 - 这时候,我们可以测试一下,看看流程当前所处的节点
  * processInstance.getRootToken().getNode().getName()
 - 第一个节点对应的用户登录,应该能够查询到其当前的任务(有公文等待其审批)
  * List tasks = context.getTaskMgmtSession().findTaskInstances("张三"); - 查找张三的任务列表
  * 列表元素是TaskInstance实例
  * 通过:taskInstance.getProcessInstance().getContextInstance().getVariable("document"); 可以找到其绑定的公文ID
 - 查找到当前的任务对应的公文之后,即可对其审批,并继续往下走
  * taskInstance.end();
 - 如此,直到结束
  * processInstance.hasEnded() - 如果流程已经到达终点,本调用将返回true

分享到:
评论

相关推荐

    jbpm-5.4.0.Final

    5. **jbpm-workitems-5.4.0.Final.jar**:定义了工作项(Work Items),即流程中的特定操作或服务调用,可以自定义工作项以适应不同业务需求。 6. **jbpm-human-task-mina-5.4.0.Final.jar** 和 **jbpm-human-task-...

    jbpm开发JAR包

    2. **jbpm-flow**: 提供了流程定义的模型化工具,如BPMN 2.0规范的支持。开发者可以使用这个库来定义复杂的业务流程图,并将它们转换为可执行的流程模型。 3. **jbpm-persistence**: 与数据库交互,支持流程实例和...

    JBPM培训PPT(工作流培训)PPT共100多页

    工作流(Work Flow)是一种用于自动化业务流程的计算模型,其核心在于通过计算机来表达和执行流程中的逻辑和规则。工作流的目标是使多个参与者能在预定规则下,利用计算机自动传递文档、信息或任务,以实现特定的...

    jbpm-5.1.0.Final-bin

    5. **jbpm-workitems-5.1.0.Final.jar**:包含预定义的工作项处理程序,这些处理程序用于执行特定的任务,比如发送电子邮件或调用外部服务。工作项可以被自定义,以适应各种不同的业务需求。 6. **jbpm-persistence...

    JBPM 工作流 workflow 表关系 表结构 文档

    JBPM(Java Business Process Management)是一款开源的工作流管理系统,用于设计、执行和管理业务流程。它基于模型驱动的架构,提供了一套完整的工具集来处理复杂的业务流程。本文将深入解析JBPM中的核心数据库表...

    JBPM工作流学习资料

    工作流(Work Flow)是针对工作中具有固定程序的常规活动而提出的一个概念。通过将工作活动分解成定义良好的任务、角色、规则和过程来进行执行和监控,达到提高生产组织水平和工作效率的目的。依托工作流管理系统WFMS...

    工作流管理jbpm初级教案

    工作流(Work Flow)是一种将业务流程的逻辑和规则在计算机中建模的方法,它解决了多个参与者之间利用计算机按预设规则自动传递文档、信息或任务的问题。工作流管理系统(WfMS)则是实现工作流的核心工具,提供定义...

    很全面的jbpm 的中文文档----下载不扣分,回帖加1分,欢迎下载,童叟无欺

    第一章:介绍 第二章 开始 第三章. 讲座 第四章....第五章 发布 第六章 永久化 第七章....第八章 上下文 ...第12章....第13章. jBPM 流程定义语言 (JPDL) 第14章 安全 第15章. TDD适合工作流 第16章 可插入架构

    工作流学习笔记

    工作流(Work Flow)是计算机领域中用于自动化处理业务流程的一种技术,它的主要目标是通过在多个参与者之间按预设规则自动传递文档、信息或任务,以提高工作效率,实现业务流程的标准化和优化。工作流属于计算机...

    Spring Recipes: A Problem-Solution Approach, Second Edition

    * Spring enterprise: Spring Java EE integration, Spring Integration, Spring Batch, jBPM with Spring, Spring Remoting, messaging, transactions, scaling using Terracotta and GridGrain, and more. ...

    开源工作流的比较和描述

    Shark是一款基于WfMC(Work Flow Management Coalition)标准的开源工作流管理系统,支持XPDL(XML Process Definition Language)格式的工作流定义。Shark的特点在于其高度灵活性和可扩展性,能够满足不同规模企业...

Global site tag (gtag.js) - Google Analytics