`
shaqiang32
  • 浏览: 105426 次
  • 性别: 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

分享到:
评论

相关推荐

    JBPM流程引擎资料

    首先,文档提到了jBPM的基本概念。jBPM是一个轻量级流程引擎,它允许开发者以模块化的方式管理业务流程。文档还涉及了许可证与最终用户许可协议,引导用户在合法合规的前提下使用jBPM。它提供了对jBPM4.4版本的下载...

    jbpm业务流程

    jbpm(Java Business Process Management)是...通过学习和研究这个jbpm业务流程设计demo,开发者可以了解jbpm的基本用法,掌握如何在实际项目中运用jbpm进行业务流程的开发和管理,从而提升企业的业务流程自动化水平。

    揭秘jbpm流程引擎内核设计思想及构架.doc

    jbpm流程引擎内核是指流程引擎中最基本的对象和服务,以及用于解决流程运行问题的调度机制和执行机制。它是流程引擎的灵魂,掌握了流程引擎内核的设计思想和结构,才能真正理解流程引擎的工作原理。 流程引擎内核的...

    jbpm4基本jar包

    jbpm4是一个开源的工作流程管理框架,它提供了强大的业务流程建模、执行和监控能力,使得开发人员可以轻松地集成业务逻辑和工作流程到应用程序中。这个基本jar包包含了jbpm4运行所需的关键库文件,是搭建和运行jbpm4...

    jbpm_流程_能让你熟练的掌握

    Hello World例子是jbpm流程开发的入门级示例,旨在帮助读者快速了解jbpm的基本概念和开发流程。 学习JPDL JPDL(Java Process Definition Language)是jbpm流程定义语言,用于定义jbpm流程。学习JPDL是jbpm流程...

    JBPM流程代码演示

    本教程通过一系列代码示例,旨在帮助理解如何在Java应用程序中集成并运行JBPM流程。 在提供的文件列表中,我们可以看到以下几个关键文件: 1. **WorkFlowApplicationImpl.java**:这个文件可能是实现工作流应用的...

    JBPM工作流程API和Jar.zip

    这个压缩包“JBPM工作流程API和Jar.zip”包含的是JBPM的相关API文档和必要的JAR文件,这些是开发基于JBPM的应用程序所必需的资源。 首先,我们要了解JBPM的核心概念。JBPM提供了流程定义语言BPMN 2.0(Business ...

    jbpm4.4基本操作

    本文将详细介绍在JBPM4.4中进行的一些基本操作,包括安装插件、发布流程模板、创建流程实例、理解流程的signal操作、任务节点的任务分配以及如何获取并完成任务列表中的任务。 首先,让我们来探讨如何安装JBPM4插件...

    jbpm4.4基本语法

    JBPM4.4 是一款强大的工作流管理系统,用于构建和管理业务流程。在这个系统中,有几个核心的对象和服务,它们构成了JBPM的核心功能。 1. **ProcessEngine对象**:ProcessEngine 是整个jbpm的核心,它是从 ...

    jbpm3基本资料和代码总结

    **jbpm3基本资料与代码总结** jbpm(Java Business Process Management)是一个开源的工作流管理系统,专注于业务流程的建模、执行和管理。jbpm3是该系统的第三个主要版本,它提供了一整套工具和API,帮助开发者...

    JBPM4.4流程管理Demo(附学习资料)

    【JBPM4.4流程管理Demo】是一个基于JBPM4.4版本的...通过深入研究和实践这个【JBPM4.4流程管理Demo】,开发者不仅可以掌握JBPM的基本操作,还能了解到如何在实际业务场景中应用工作流引擎,提高工作效率和流程规范性。

    jbpm 请假流程定义发布项目

    总结,jbpm请假流程定义发布项目是一个实用的学习和实践案例,涵盖了jbpm的基本使用、数据库集成、流程定义以及流程的监控与管理。通过对该项目的研究,开发者不仅可以了解jbpm的工作原理,还能掌握如何在实际环境中...

    JBPM报销流程实例-完整例子

    在理解了JBPM的基本原理和报销流程实例的配置后,你可以通过提供的文件进行实际操作。文件列表中的"jbpm"很可能包含了流程定义文件(如BPMN2 XML)、数据库脚本、配置文件以及可能的示例代码或文档。通过解压文件并...

    JBPM工作原理及表结构详解

    - **活动 (ACTIVITY)**:活动是流程图中的基本单元,可以是用户任务、服务任务、子流程等,表示工作流程中的具体步骤。 3. **所用到的表** - **资源库与运行时表结构**:用于存储流程定义、部署信息等。 - **...

    jBPM4.4.rar_jbpm4.4_jbpm4.4 PDF

    在《jBPM4.4中文用户手册》中,用户可以找到更详细的使用指南,包括安装配置、基本操作、示例教程以及常见问题解答等内容。手册将帮助用户快速上手,实现jBPM在实际项目中的应用。 总的来说,jBPM4.4是企业级业务...

    揭秘jbpm流程引擎内核设计思想及构架.docx

    jbpm流程引擎内核是指流程引擎的最微小结构,仅包含最基本的对象和服务,以及用于解决流程运行问题的调度机制和执行机制。jbpm流程引擎内核的设计思想是基于微内核的流程引擎构架,通过抽象出良好的引擎内核结构,...

    JBPM工作流DEMO

    总的来说,JBPM工作流DEMO提供了一个实践工作流管理系统的起点,通过学习和研究这个DEMO,开发者能够掌握如何在Java环境中使用JBPM来设计、实现和管理复杂的业务流程,并结合`SimpleDateFormat`等基本Java类处理流程...

    一个简单的jbpm 请假流程

    jbpm,全称为Java Business Process Management,是一款开源的工作流管理...这个“一个简单的jbpm 请假流程”项目是一个很好的学习起点,通过它,你可以了解jbpm的基本用法,以及如何将工作流概念应用于实际业务场景。

    jbpm4 完整的请假流程

    jbpm4是一个基于Java的...通过深入研究这个“jbpm4 完整的请假流程”,不仅可以掌握jbpm4的基本用法,还能理解业务流程管理系统的运作机制,这对于在实际工作中设计和实现复杂的企业级流程管理解决方案具有重要意义。

Global site tag (gtag.js) - Google Analytics