工作流(系统)主要概念
工作流引擎:工作流的核心组件,对流程实例、任务实例以及其状态进行管理
流程定义:预先定义的业务流转逻辑
流程实例:业务的一次实际流转过程
参与者:任务的执行者
活动(任务):组成流程定义的节点
活动实例:组成流程实例的元素
流转:从一个节点到另一个节点这一行为
工作列表:当前需要办理的任务集合
开发步骤
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的整合 JBPM4.3 转载别人的博客,里面包含2份整合框架的资料,2份关于JBPM的学习
JBPM4.3的初学者视频, 包含了JBPM4.3的插件, 共9个,分开来上传了
jbpm4.3与spring整合的一个小文档
jbpm4.3,jbpm4.3工作流程管理例子
JBPM4.3用户手册JBPM4.3用户手册JBPM4.3用户手册
jbpm jbpm4.3.jar DDDDDDDD
jBPM4.3简略深入 了解(一) 工作流(系统 )首要概念 工作流引擎:工作流的核心组件,对流程实例、任务 实例以及其状态 进行管理 流程定义:预先定义的业务流转逻辑 流程实例:业务的一次实际流转历程
JBPM4.3WEB应用,里面有一个关于请假流程的例子,基本上包含了JBPM4.3的一些常用的方法及服务类,也把它的新特性展现出来了。
jbpm4.3集成到tomcat、eclipse过程
jbpm 4.3 与 spring 集成
超清晰的视频教程,有完整的例子,全面讲解了jbpm4.3,里面有代码,由于视频太大,给大家一个下载地址吧!!
jbpm4.3问题解决方法,我们根据您的错误给出针对性的解答!
JBPM4.3编程指南JBPM4.3编程指南JBPM4.3编程指南JBPM4.3编程指南JBPM4.3编程指南JBPM4.3编程指南JBPM4.3编程指南JBPM4.3编程指南
本示例主要实现了流程的基本管理,流程实例的管理,...使用本例子只需要拷贝jbpm4.3的lib的jar包到本实例lib里面即可运行,注意用tomcat6的话必须把juel.jar,juel-engine.jar、juel-impl.jar剪切到tomcat的lib目录下。
jbpm4.3 英文帮助文档 不是中文的还是很全的
jBPM4.3用户指南 在这个用户指南里, 我们将介绍在持久执行模式下的jPDL流程语言。 持久执行模式是指流程定义、 流程执行以及流程历史都保存在关系数据库中, 这是jBPM实际通常使用的方式。 这个用户指南介绍了...
jbpm4.3 中文文档 jbpm4.3 中文文档
jbpm4.3表结构和表字段说明
部署ssh所必需jar包另有部署方案,方案很完善可以提供源代码
jbpm4.3 请假流程实例示例jbpm4.3 请假流程实例示例jbpm4.3 请假流程实例示例jbpm4.3 请假流程实例示例jbpm4.3 请假流程实例示例