`
卡拉阿风
  • 浏览: 100809 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jBPM4.3简单深入理解(一)

    博客分类:
  • jBPM
阅读更多
工作流(系统)主要概念
工作流引擎:工作流的核心组件,对流程实例、任务实例以及其状态进行管理
流程定义:预先定义的业务流转逻辑
流程实例:业务的一次实际流转过程
参与者:任务的执行者
活动(任务):组成流程定义的节点
活动实例:组成流程实例的元素
流转:从一个节点到另一个节点这一行为
工作列表:当前需要办理的任务集合

开发步骤
1)根据实际应用场景创建流程文件;
   即编写*.jpdl.xml文件
2)部署流程文件或流程资源到系统中;
3)执行流程(使用指定的流程定义);
   3.1)启动流程实例
   3.2)获取任务
   3.3)开始任务
   3.4)结束任务
3.1到3.4是办理一个任务的过程,流程的执行就是启动流程实例+一次次办理任务的过程。

流程在实际应用场景中的一些操作
一.流程的定义管理
流程定义的发布、查询、删除、暂停、恢复
二.流程实例管理
流程实例的启动、显示流程图、执行、暂停、恢复
三.任务管理
分配任务、收回任务、定时任务、任务与表单绑定
四.流程的历史查询
任务的历史、流程实例历史、活动历史

---下面开始进行代码描述------
在详细描述之前,我们先来了解一下流程引擎ProcessEngine
引用
One ProcessEngine object can be used by all requests and threads in an application. Here's how you can obtain a ProcessEngine

我把这个交给spring去管理
<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper" />
<bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" />

我们需要的一些服务都是通过流程引擎得到的
RepositoryService repositoryService = processEngine.getRepositoryService();
ExecutionService executionService = processEngine.getExecutionService();
TaskService taskService = processEngine.getTaskService();
HistoryService historyService = processEngine.getHistoryService();
ManagementService managementService = processEngine.getManagementService();


一.流程的定义管理
1.1流程定义的发布(即部署流程文件或流程资源到系统中)
流程定义*.jpdl.xml的内容可以从文件, 网址,字符串,输入流或zip输入流中获得
public interface NewDeployment extends Deployment {
...
/** adds a resource as a string */
NewDeployment addResourceFromString(String resourceName, String string);

/** adds a resource as a string */
NewDeployment addResourceFromInputStream(String resourceName, InputStream inputStream);
  
/** adds a resource as a resource from the classpath */
NewDeployment addResourceFromClasspath(String resourceName);
  
/** adds a resource as a url */
NewDeployment addResourceFromUrl(URL url);
  
/** adds a resource as a zip stream */
NewDeployment addResourcesFromZipInputStream(ZipInputStream zipInputStream);

/** adds a resource from a file */
NewDeployment addResourceFromFile(File file);
...
}

在测试的时候
ProcessEngine processEngine = new Configuration().buildProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
 
//布署当前目录下test.jpdl.xml文件
String deploymentId = repositoryService.createDeployment()
                      .addResourceFromClasspath("test.jpdl.xml").deploy();

在我们实际应用中,addResourceFromInputStream和addResourcesFromZipInputStream运用较多。

二、流程实例管理
2.1流程实例启动
启动方法参看org.jbpm.api.ExecutionService。
启动一个新的流程实例的最简单最常用的方法:
ProcessInstance processInstance = executionService.startProcessInstanceByKey("test");

test即test.jpdl.xml中process name。
有的时候,我们在刚启动实例的时候就需要加一个变量进去。
我们假设在填写请假单之前需要传入一个applyName参数进去
...
<process name="leave" xmlns="http://jbpm.org/4.3/jpdl">
   <start g="67,6,48,48" name="开始">
      <transition g="-30,-10" name="请假" to="填写请假单"/>
   </start>
   <task assignee="#{applyName}" g="45,102,92,52" name="填写请假单">
      <transition g="591,124:-127,-18" name="提交申请" to="主管审核"/>
   </task>
...

我们可以这样来实现
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("applyName", "dyaln");
ExecutionService executionService = processEngine.getExecutionService();
ProcessInstance processInstance = executionService.startProcessInstanceByKey("leave",variables);
1
0
分享到:
评论
5 楼 linhao0907 2012-06-29  
请问下, 当我从jsp上传一个xml文件时,后台通过addResourceFromFile()并不能部署到数据库, 只有jbpm4_deployment有数据,而jbpm4_deployprop没有数据,请问是为什么呢
4 楼 卡拉阿风 2010-02-24  
fying0728 写道
可不可以给一个例子?全面一些的,有代码的

可以到family168上查找
3 楼 fying0728 2010-02-10  
可不可以给一个例子?全面一些的,有代码的
2 楼 卡拉阿风 2010-01-25  
judykula 写道
为什么我整合完后 每次启动tomcat 到
ProcessEngine processEngine = new Configuration().buildProcessEngine(); 
句都出错?
我能发布流程定义文件。说明已经整合成功。经过跟中我发现applicationContext总是空的。请问你知道有什么解决办法吗?


引用
A ProcessEngine is thread safe and can be stored in a static member field or even better in JNDI or some other central location. One ProcessEngine object can be used by all requests and threads in an application.

流程引擎是线程安全的,它可以保存在静态变量中, 甚至JNDI中或者其他重要位置。 在应用中,所有线程和请求都可以使用同一个流程引擎对象
<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper" />
	<bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" />

所以ProcessEngine processEngine在实际应用中不需要我们再次去创建
1 楼 judykula 2010-01-25  
为什么我整合完后 每次启动tomcat 到
ProcessEngine processEngine = new Configuration().buildProcessEngine(); 
句都出错?
我能发布流程定义文件。说明已经整合成功。经过跟中我发现applicationContext总是空的。请问你知道有什么解决办法吗?

相关推荐

    SSH+JBPM4.3的整合 JBPM4.3

    SSH+JBPM4.3的整合是企业级应用开发中的一种常见组合...无论是对于初学者还是经验丰富的开发者,深入理解这一整合都对提升Java Web开发能力大有裨益。通过学习和实践,你可以创建出高效、灵活且易于维护的企业级应用。

    jbpm4.3工作流程管理例子

    jbpm4.3是JBoss Business Process Management (BPM) Suite的一个版本,它是一个开源的企业级BPM平台,用于设计、执行和管理业务流程。在这个"jbpm4.3工作流程管理例子"中,我们将深入探讨jbpm4.3的核心特性和如何...

    JBPM4.3培训学习视频, 包含了JBPM4.3的eclipse插件

    【JBPM4.3培训学习视频】是一套针对初学者设计的教程,旨在帮助学习者掌握JBPM4.3这一企业级工作流管理系统的核心概念和技术。JBPM是Java Business Process Management的缩写,是一个开源的工作流和业务流程管理平台...

    jBPM4.3.rar_JBPM4.3

    jbPM 4.3是该系统的一个重要版本,虽然其帮助文档是英文的,但内容全面,对于深入理解和使用jbPM具有很高的参考价值。 **1. jbPM 概述** jbPM 是基于Java平台的,它实现了业务流程建模、执行、监控和管理的功能。...

    jbpm4.3视频教程+代码

    【jbpm4.3视频教程+代码】是一个深入学习和实践Jbpm4.3的资源包,包含高质量的视频教程和相应的代码示例。Jbpm,全称Java Business Process Management,是一款开源的工作流管理系统,它允许开发者设计、部署和执行...

    JBPM4.3-例子(简单使用)

    在这个例子中,我们将深入探讨JBPM4.3的简单使用,特别是通过一个名为“leave_web”的Web应用程序来展示其核心功能。 首先,让我们了解JBPM4.3的主要特性。这个版本引入了改进的图形化工作流设计器,使得流程模型的...

    jbpm4.3、ssh环境搭建

    ### jBPM4.3与SSH环境搭建详解 #### 一、引言 jBPM (JBoss Business Process Management) 是一个开源的工作流管理系统,它提供了用于定义业务流程的工具和APIs。本文将详细介绍如何在开发环境中安装并配置jBPM4.3...

    jbpm4.3问题解决

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

    jbpm4.3简单实例

    【jbpm4.3简单实例】是一个教程,旨在教授如何使用jbpm4.3这个工作流管理系统的基础功能。jbPM(Business Process Management)是Java领域的一款开源的工作流引擎,它允许开发者通过定义业务流程来自动化企业的业务...

    jbpm4.3 - demo

    【jbpm4.3 - demo】是一个针对jbpm4.3版本的工作流示例项目,旨在帮助学习者理解和掌握jbpm工作流引擎的使用。jbPM(Java Business Process Management)是一个开源的企业级业务流程管理系统,它允许开发者设计、...

    jbpm4.3 中文文档

    jbpm4.3是JBoss企业级业务流程管理(Business Process Management)平台的一个版本,它提供了全面的工作流...通过深入学习,开发者不仅能熟练操作jbpm4.3,还能理解业务流程管理的核心理念,提升企业流程自动化的能力。

    jbpm4.3 开发指南

    **jbpm4.3 开发指南** JBPM(Java Business Process Management)是一...通过深入学习"jbpm4.3开发指南",开发者不仅可以掌握jbpm4.3的具体用法,还能理解BPM系统的设计理念,为后续的业务流程管理项目打下坚实基础。

    JBPM4.3完整示例

    JBPM4.3是该系统的早期版本,但仍然包含了丰富的功能和完整的示例,适用于学习和理解工作流管理的基本概念和操作。 在"JBPM4.3完整示例"中,我们可以深入探索以下几个关键知识点: 1. **流程定义(Process ...

    jbpm4.3中文开发指南

    本指南将深入探讨JBPM4.3的主要特性和开发实践。 1. **流程建模**:JBPM4.3支持BPMN 2.0标准,这是一种广泛接受的业务流程建模语言。通过图形化工具,开发者可以创建直观的流程图,包括任务、事件、网关等元素,...

    jbpm4.3工作流

    "jbpm4web"可能是jbpm4.3的一个示例项目,它可能包含一个基于Web的用户界面,用于展示如何在Web环境中使用jbpm进行流程管理和任务处理。用户可以通过这个示例了解如何在实际项目中集成jbpm4.3,以及如何设计和交互...

    jbpm4.3官方例子及文档

    每个示例通常包含流程定义文件、启动代码以及解释文档,通过阅读和运行这些示例,你可以深入理解jbpm4.3的使用方法。 最后,文档部分提供了详尽的指南和API参考,帮助开发者了解jbpm4.3的各个组件和接口。这些文档...

    jBPM4.3简略深入 了解(一)

    ### jBPM4.3简略深入了解(一) #### 一、基础知识 ##### 工作流引擎 工作流引擎是jBPM中的核心组件之一,它负责管理流程实例、任务实例及其状态。简单来说,工作流引擎是实现业务流程自动化的关键部分。它通过...

    jbpm-4.3-src.rar_bdf-jbpm4 src _jboss 4.3_jboss jbpm4.3_jbpm-4.3

    综上所述,jbpm-4.3-src的源代码包为开发者提供了一次深入理解jBPM工作流程引擎的机会,同时也为定制和优化流程管理解决方案提供了可能。对于想要学习和应用BPM技术的人来说,这是一个宝贵的资源。

    jbpm4.3 工作流实例 java

    jbpm4web项目则为开发者提供了一个参考实例,帮助理解和实践jbpm4.3在Web应用中的应用。在实际开发中,理解jbpm的核心概念、与Java的集成方式以及SSH框架的配合,对于构建高效、灵活的企业级应用至关重要。

    JBPM4.3开发指南(chm版)

    "JBPM4.3开发指南"的chm版是一份宝贵的资料,它涵盖了JBPM4.3的主要特性和开发实践。通过阅读这份指南,开发者可以了解如何使用JBPM4.3进行流程建模、任务管理和系统集成等操作。 总之,JBPM4.3是一个强大且灵活的...

Global site tag (gtag.js) - Google Analytics