工作流(系统)主要概念
工作流引擎:工作流的核心组件,对流程实例、任务实例以及其状态进行管理
流程定义:预先定义的业务流转逻辑
流程实例:业务的一次实际流转过程
参与者:任务的执行者
活动(任务):组成流程定义的节点
活动实例:组成流程实例的元素
流转:从一个节点到另一个节点这一行为
工作列表:当前需要办理的任务集合
开发步骤
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);
分享到:
相关推荐
SSH+JBPM4.3的整合是企业级应用开发中的一种常见组合...无论是对于初学者还是经验丰富的开发者,深入理解这一整合都对提升Java Web开发能力大有裨益。通过学习和实践,你可以创建出高效、灵活且易于维护的企业级应用。
jbpm4.3是JBoss Business Process Management (BPM) Suite的一个版本,它是一个开源的企业级BPM平台,用于设计、执行和管理业务流程。在这个"jbpm4.3工作流程管理例子"中,我们将深入探讨jbpm4.3的核心特性和如何...
【JBPM4.3培训学习视频】是一套针对初学者设计的教程,旨在帮助学习者掌握JBPM4.3这一企业级工作流管理系统的核心概念和技术。JBPM是Java Business Process Management的缩写,是一个开源的工作流和业务流程管理平台...
jbPM 4.3是该系统的一个重要版本,虽然其帮助文档是英文的,但内容全面,对于深入理解和使用jbPM具有很高的参考价值。 **1. jbPM 概述** jbPM 是基于Java平台的,它实现了业务流程建模、执行、监控和管理的功能。...
【jbpm4.3视频教程+代码】是一个深入学习和实践Jbpm4.3的资源包,包含高质量的视频教程和相应的代码示例。Jbpm,全称Java Business Process Management,是一款开源的工作流管理系统,它允许开发者设计、部署和执行...
在这个例子中,我们将深入探讨JBPM4.3的简单使用,特别是通过一个名为“leave_web”的Web应用程序来展示其核心功能。 首先,让我们了解JBPM4.3的主要特性。这个版本引入了改进的图形化工作流设计器,使得流程模型的...
### jBPM4.3与SSH环境搭建详解 #### 一、引言 jBPM (JBoss Business Process Management) 是一个开源的工作流管理系统,它提供了用于定义业务流程的工具和APIs。本文将详细介绍如何在开发环境中安装并配置jBPM4.3...
总之,解决jbpm4.3问题需要对jbpm的工作原理、数据库结构以及部署环境有深入的理解。通过对错误日志的分析、数据库的检查以及配置的核查,我们可以逐步找到问题的根源并采取相应措施进行修复。同时,持续学习和关注...
【jbpm4.3简单实例】是一个教程,旨在教授如何使用jbpm4.3这个工作流管理系统的基础功能。jbPM(Business Process Management)是Java领域的一款开源的工作流引擎,它允许开发者通过定义业务流程来自动化企业的业务...
【jbpm4.3 - demo】是一个针对jbpm4.3版本的工作流示例项目,旨在帮助学习者理解和掌握jbpm工作流引擎的使用。jbPM(Java Business Process Management)是一个开源的企业级业务流程管理系统,它允许开发者设计、...
jbpm4.3是JBoss企业级业务流程管理(Business Process Management)平台的一个版本,它提供了全面的工作流...通过深入学习,开发者不仅能熟练操作jbpm4.3,还能理解业务流程管理的核心理念,提升企业流程自动化的能力。
**jbpm4.3 开发指南** JBPM(Java Business Process Management)是一...通过深入学习"jbpm4.3开发指南",开发者不仅可以掌握jbpm4.3的具体用法,还能理解BPM系统的设计理念,为后续的业务流程管理项目打下坚实基础。
JBPM4.3是该系统的早期版本,但仍然包含了丰富的功能和完整的示例,适用于学习和理解工作流管理的基本概念和操作。 在"JBPM4.3完整示例"中,我们可以深入探索以下几个关键知识点: 1. **流程定义(Process ...
本指南将深入探讨JBPM4.3的主要特性和开发实践。 1. **流程建模**:JBPM4.3支持BPMN 2.0标准,这是一种广泛接受的业务流程建模语言。通过图形化工具,开发者可以创建直观的流程图,包括任务、事件、网关等元素,...
"jbpm4web"可能是jbpm4.3的一个示例项目,它可能包含一个基于Web的用户界面,用于展示如何在Web环境中使用jbpm进行流程管理和任务处理。用户可以通过这个示例了解如何在实际项目中集成jbpm4.3,以及如何设计和交互...
每个示例通常包含流程定义文件、启动代码以及解释文档,通过阅读和运行这些示例,你可以深入理解jbpm4.3的使用方法。 最后,文档部分提供了详尽的指南和API参考,帮助开发者了解jbpm4.3的各个组件和接口。这些文档...
### jBPM4.3简略深入了解(一) #### 一、基础知识 ##### 工作流引擎 工作流引擎是jBPM中的核心组件之一,它负责管理流程实例、任务实例及其状态。简单来说,工作流引擎是实现业务流程自动化的关键部分。它通过...
综上所述,jbpm-4.3-src的源代码包为开发者提供了一次深入理解jBPM工作流程引擎的机会,同时也为定制和优化流程管理解决方案提供了可能。对于想要学习和应用BPM技术的人来说,这是一个宝贵的资源。
jbpm4web项目则为开发者提供了一个参考实例,帮助理解和实践jbpm4.3在Web应用中的应用。在实际开发中,理解jbpm的核心概念、与Java的集成方式以及SSH框架的配合,对于构建高效、灵活的企业级应用至关重要。
"JBPM4.3开发指南"的chm版是一份宝贵的资料,它涵盖了JBPM4.3的主要特性和开发实践。通过阅读这份指南,开发者可以了解如何使用JBPM4.3进行流程建模、任务管理和系统集成等操作。 总之,JBPM4.3是一个强大且灵活的...