`
yxgyh
  • 浏览: 275735 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

JBPM工作原理及其步骤

    博客分类:
  • jBPM
阅读更多

理解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

分享到:
评论
1 楼 yuyue618 2010-03-29  
不是吧, 这也叫原理.

相关推荐

    JBPM工作原理及表结构详解

    本文将深入探讨JBPM的工作原理、表结构及其在实际操作中的应用。 1. **JBPM特色** - **灵活的建模**:JBPM支持BPMN 2.0标准,允许用户通过图形化界面设计复杂的工作流程。 - **持久化存储**:JBPM将流程实例和...

    JBPM工作流详解

    ### JBPM工作流详解 #### 一、工作流基础与概念 ...通过以上步骤,可以在 Eclipse 中集成并使用 Jbpm 4.4,实现流程定义和管理工作流。这不仅能够提高项目的自动化程度,还能优化业务流程,提高工作效率。

    jbpm示例 安装步骤

    "jbpm安装步骤及示例开发步骤.txt"文件应当详细说明了每一步的操作,包括如何下载和安装jbpm runtime,如何配置jbpm的工作目录,以及如何启动和测试示例。这个文档是安装和运行示例的关键,务必仔细阅读并按照步骤...

    工作流JBPM开发计划书

    - **内部构造研究**:深入研究JBPM的核心组件及其工作原理。 - **流程驱动机制(TOKEN机制)**:理解TOKEN机制如何推动流程的执行和流转。 - **事件模型**:分析事件在流程中的作用及其触发条件。 - **数据库结构...

    JBPM_DEMO例子 Hello World

    理解并实践这个例子,对于掌握JBPM的工作原理及其API的使用非常有帮助。例如,如何使用JbpmRuntimeManager来获取运行时服务,如何使用ProcessInstanceService来启动流程实例,以及如何通过TaskService来处理任务等。...

    自己写的jbpm学习资料

    开发者需深入理解jBPM的工作机制及其特定的语言语法,才能充分发挥其潜力。 #### 五、结论 jBPM作为一款成熟且灵活的工作流管理工具,为企业级应用程序提供了强大的业务流程自动化能力。通过深入学习其原理和实践...

    jbpm开发工作流程管理

    为了更好地理解jBPM的工作原理,可以通过一个简单的示例来进行实际操作体验。 **1. 启动JBoss服务器** - 进入`jbpm-server`目录,运行`start.bat`脚本启动JBoss服务器。 - 查看控制台输出确认jBPM是否已正确启动。...

    jBPM4.4 详解 API 中文

    ### jBPM4.4 API 详解:工作流自动化的核心技术 ...以上步骤不仅为jBPM4.4的开发环境搭建提供了详实的指南,同时也深入解析了工作流自动化的基本原理与jBPM4.4的工作机制,为IT从业者及开发者提供了宝贵的参考资料。

    jbpm4流程提交及执行完整代码

    下面将详细解释这些文件及其背后的流程管理和执行原理。 首先,`Service.java`通常是一个核心服务类,它封装了与jbpm4引擎交互的逻辑。在jbpm4中,我们可以通过服务接口来启动流程实例、完成任务、查询流程状态等。...

    jbpm实战讲解.pdf

    - Fork-Join活动是流程分支和合并的关键,这部分解释了其工作原理,并给出了示例,有助于理解流程控制流。 **1.8 Task活动讲解** - Task活动涉及任务分配、候选人选择和自定义任务处理器,是工作流中任务管理的...

    jbpm4.3问题解决

    总之,解决jbpm4.3问题需要对jbpm的工作原理、数据库结构以及部署环境有深入的理解。通过对错误日志的分析、数据库的检查以及配置的核查,我们可以逐步找到问题的根源并采取相应措施进行修复。同时,持续学习和关注...

    jbpm_websale.rar_JSF_java JBPM_jbpm_jbpm websale_websale jb

    1. **流程模型**:JBPM工作流定义文件(.bpmn或.jbpm),描述了网上销售的各个步骤,如用户下单、订单审批、支付处理、库存检查等。 2. **实体类**:用于表示业务对象,例如订单、商品、用户等。这些实体类通常与...

    JBPM.rar_jbpm

    理解和掌握JBPM的内部原理及节点机制,对于开发人员和业务分析师来说,是实现企业数字化转型和提升业务流程效率的关键。通过阅读提供的"JBPM.pdf"文件,读者可以更深入地学习和实践JBPM的相关知识。

    jbpm4 s2sh 请假流程

    在这个教程中,我们将深入理解jbpm4的工作原理以及如何将其与SSH框架集成,以构建一个完整的业务流程管理系统。 jbpm4是Java Business Process Management的第四个版本,它是一个开源的工作流和业务流程管理(BPM)...

    工作流(JBPM)一些有用资料整合

    工作流(Workflow)是软件系统中用于自动化业务过程的技术,它可以帮助组织管理和控制...通过研读这些内容,开发者可以掌握工作流管理系统的原理,提高在企业应用中的实践能力,从而提升整个项目的业务流程自动化水平。

    jbpm jpdl 帮助文档pdf版

    - **功能特点**:支持拖拽操作,可视化编辑工作流节点及其连接线等。 #### 1.4 The jBPM console web application - **控制台Web应用**:用于监控正在运行的工作流实例。 - **功能**:可以查看流程状态、修改流程...

    JBPM 开发指南流程

    ### JBPM 开发指南流程详解 #### 一、概述 JBPM是一个强大的开源工作流引擎,完全基于Java语言开发,并且其持久层采用的是...通过本文的介绍,希望能够帮助读者更好地理解JBPM的工作原理及其在实际项目中的应用价值。

    JBPM开发向导(jBPM Developer Guide)

    该书由Mauricio "Salaboy" Salatino撰写,旨在帮助开发者深入理解JBPM框架的核心概念、工作原理以及如何在实际项目中应用这一强大的业务流程管理(Business Process Management, BPM)工具。 #### 关键知识点解析 ##...

Global site tag (gtag.js) - Google Analytics