`

JBPM基础

阅读更多
该框架的使用需要结合hibernate

1.创建基本的数据库表
 JbpmConfiguration.getInstance().createSchema();


2.定义流程 例如
<?xml version="1.0" encoding="UTF-8"?>
<!-- 定义文档 -->
<process-definition name="文档测试流程">
<!-- 文档开始 -->
<start-state name="开始">
<transition name="提交张三审批" to="张三审批">
</transition>
</start-state>
<!-- 各个流程的节点 -->
<task-node name="张三审批">
<task name="审批1">
<assignment actor-id="张三"/>
<transition name="提交李四审批" to="李四审批">
</transition>
</task>
</task-node>
<task-node name="李四审批">
<task name="审批2">
<assignment actor-id="李四"/>
<transition name="提交王五审批" to="王五审批">
</transition>
</task>
</task-node>
<task-node name="王五审批">
<task name="审批2">
<assignment actor-id="王五"/>
<transition name="提交王五审批" to="结束">
</transition>
</task>
</task-node>
<!-- 结束 -->
<end-state name="结束"></end-state>
</process-definition>


3.部署流程到数据库
//2创建processdefinition对象

       ProcessDefinition processdefinition = ProcessDefinition.parseXmlResource("processdefinition.xml");

              //3创建jbpmContext对象, jbpmContext类似于hibernate session的功能
       JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
     
       try {
           //4部署流程到数据库
           jbpmContext.deployProcessDefinition(processdefinition);

       } finally {

           //5关闭context对象
           jbpmContext.close();

       }


4.创建公文
Session session=HibernateUtil.getSession();
		Transaction tx=session.beginTransaction();
		Document doc=new Document();
		doc.setContent("测试文档内容");
		doc.setCreator("测试文档作者");
		doc.setTitle("测试文档标题");
		session.save(doc);
		tx.commit();
		session.close();


5.最关键的步骤,创建流程实例,并且和公文绑定

  ProcessInstance processInstance = new ProcessInstance(processdefinition);
           //存储流程实例processInstance
       jbpmContext.save(processInstance);
        doc.setProcessInstanceId(processInstance.getId());
           //绑定公文到流程实例(ContextInstance 相当于变量的容器)
       processInstance.getContextInstance().setVariable("document", doc.getId());


6.提交公文

    Document doc =(Document) jbpmContext.getSession().load(Document.class, 1);
           //根据流程实例ID加载流程实例
       ProcessInstance processInstance = jbpmContext.getProcessInstance(doc.getProcessInstanceId());
            // 触发流程往下走(即到达第一个节点)
       processInstance.getRootToken().signal();


7.得到公文所处在的流程节点

processInstance.getRootToken().getNode().getName()


8.得到用户的公文

  List tasks2 = jbpmContext.getTaskMgmtSession().findTaskInstances("王五");


9.流程是否结束

processInstance.hasEnded();




分享到:
评论

相关推荐

    jbpm基础入门

    jbpm基础入门实例,包括数据库创建,部署流程定义,创建公文,将公文提交到第一个环节,公文当前所处的环节是什么?,如何得知在某个用户手上有哪些待审公文?,如何得知在某个用户手上有哪些待审公文?,如何得知从...

    jbpm开发入门指南的例子

    一、jbpm基础概念 1. 流程定义(Process Definition):jbpm使用BPMN 2.0(Business Process Model and Notation)标准来图形化地表示业务流程,它包含任务(Task)、事件(Event)、网关(Gateway)等元素。 2. ...

    jbpm4.3、ssh环境搭建

    #### 二、jBPM基础知识 在深入讨论环境搭建之前,我们需要先了解一些基础知识: 1. **UML 2.0 活动图**:jBPM采用了UML 2.0活动图作为其核心模型之一。理解这些图可以帮助开发者更好地设计和实现工作流。 2. **...

    jbpmOA项目代码经典

    1. **jbpm基础**:掌握BPMN 2.0语言,了解jbpm的主要组件和服务,如流程定义、流程实例、任务服务等。 2. **流程定义与执行**:学习如何使用jbpm提供的工具或XML文件来创建流程定义,并理解流程实例的启动、执行和...

    jbpm工作流程

    - **jbpm工作流入门教程.pdf**:这可能是关于jbpm基础知识和实践操作的指南,包括流程设计、部署、执行等。 - **jb51.net.txt**:可能包含jb51网站上的相关文章链接或教程摘要,jb51.net是一个技术分享平台。 - *...

    Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8整合

    JBPM基础知识** 理解JBPM的基础概念至关重要,包括任务、事件、工作流实例等。流程定义文件(jpdl)用于描述业务流程,通过XML格式定义各个节点(如开始、结束、决策、用户任务等)和它们之间的连接。 **4. 整合...

    JBPM7基础开发

    "JBPM7基础开发" JBPM7 基础开发是基于流程引擎的开发方式和实现方式的简单说明。流程引擎是一个自动化管理和优化流程的工具,旨在提高不同部门之间业务的整合效率,降低开发和维护成本。 概念1:BPM(业务流程...

    jbpm学习资料汇总

    1. **jbpm基础**:介绍jbpm的基本架构,包括工作流引擎、任务服务、流程定义(BPMN2.0)和业务规则引擎(Drools)等组成部分,以及它们如何协同工作来处理业务流程。 2. **流程建模**:详细讲解如何使用BPMN2.0语言...

    jBPM开发入门指南

    ### 一、jBPM基础知识 1. **流程定义**: jBPM使用Business Process Model and Notation(BPMN)2.0标准来表示业务流程,这是一个图形化的建模语言,便于理解和设计流程。 2. **流程实例**: 当一个流程定义被执行时...

    jbpm2.rar_java 工作流_jbpm_工作流

    1. **JBPM基础**:了解JBPM的基本概念、架构和组件,如流程定义语言(BPMN)、流程引擎、任务服务等。 2. **业务流程建模**:学习使用BPMN 2.0标准来创建和编辑流程模型,理解各种流程元素如开始事件、结束事件、...

    jbpm4jbpm5

    总的来说,这个主题资料包提供了jbpm4和jbpm5的基础知识、实战经验和用户操作指导,对于想要学习或深化jbpm流程管理框架理解的开发者非常有价值。通过学习这些文档,开发者可以掌握jbpm的核心概念,熟练地设计和部署...

    Jbpm HelloWorld

    "HelloWorld"是学习任何新技术时的经典入门示例,Jbpm HelloWorld则是对Jbpm基础功能的初步探索。 在这个项目中,我们将深入理解Jbpm的核心概念和组件,以及如何通过编写简单的代码来实现一个工作流实例。Jbpm的...

    jbpm工作流 基础视频

    本套基础视频教程将引导学习者深入理解jbpm的核心概念和技术。首先,我们会介绍jbpm的安装与配置,包括下载jbpm的最新版本,设置开发环境,如集成IDEA或Eclipse等开发工具,并讲解如何配置数据库连接,以便jbpm能够...

    根据资料完成的JBPM例子

    1. **JBPM基础**:理解工作流的概念,JBPM架构及其组件,如流程定义、任务服务、执行服务等。 2. **BPMN 2.0**:学习BPMN语言,如何用XML编写流程定义,包括开始事件、结束事件、任务、网关等元素。 3. **流程实例的...

    深入浅出jBPM完整版part1

    ...................................15 1.3.3 测试helloworld流程......................16 第 2 章 jBPM 基础...........................................19 2.1 JbpmConfiguration和 JbpmContext..................

    jBPM4入门基础环境配置

    **jBPM4入门基础环境配置** jBPM(Java Business Process Management)是一个开源的工作流管理系统,主要用于处理业务流程的建模、部署、执行和监控。jBPM4是其第四个主要版本,它提供了丰富的功能,包括流程定义、...

    jbpm-3.1.2.zip_jbpm_jbpm 3.1.2_jbpm-3.1.2.rar_jbpm3.1.2_工作流

    总之,jBpm 3.1.2是业务流程自动化领域的一个强大工具,它为开发高效、灵活的工作流应用提供了坚实的基础。无论是对于企业内部的流程优化,还是为客户提供定制化的流程解决方案,jBpm都是一个值得信赖的选择。通过...

Global site tag (gtag.js) - Google Analytics