工作流--JBPM(二) 简单的流程演示
2016-11-06 17:40
309 查看
上篇介绍了一下JBPM的基本概念与插件的安装,本篇主要是用一个简单的demo来实现一个流程的处理。
1、配置环境
从官网上下载jbpm4.4的jar包,引入到MyEclipse。
添加jbpm.cfg.xml和jbpm.hibernate.cfg.xml文件。
创建日志文件log4j.properties。
2、建立程序
新建一个java项目,然后选择New-->Other-->jBoss JBPM,建立JBPM文件,命名为helloworld。如图:
创建好之后,开始画流程,打开helloworld文件,进行绘制流程,流程如下:
流程绘制好之后,会产生两个文件:helloworld.jpdl.xml和helloworld.png
3、编写程序
首先创建一个HelloWordAPI的Java测试类,第一步就是创建JBPM所需要的数据库,如下:
创建流程引擎并部署流程、并启动流程:
//流程引擎
private static ProcessEngine processEngine =new Configuration() //
.setResource("jbpm.cfg.xml") //
.buildProcessEngine();
// 1、部署流程
@Test
public void deployProcessDefintion() throws Exception {
processEngine.getRepositoryService() //
.createDeployment() //
.addResourceFromClasspath("helloworld/helloworld.jpdl.xml") //
.addResourceFromClasspath("helloworld/helloworld.png") //
.deploy();
}
// 2、启动流程实例
@Test
public void startProcessInstance() throws Exception {
processEngine.getExecutionService().startProcessInstanceByKey("helloworld");
} 启动之后,数据存入库中,如下:
接下来进行办理任务,此次演示使用手动设置流程ID,为‘40002’,对应上图最后一条数据(该数据的主要标识是流程执行EXECUTION_ID,在下边的结果中会展示):
// 4、办理任务
@Test
public void completeTask() throws Exception {
String taskId="40002";
processEngine.getTaskService().completeTask(taskId);
} 结果如下,流程流转到下一节点,即部门经理审批:
也可以对每个流程进行任务列表的查询,如下:
// 3、查看我的个人任务列表
@Test
public void findMyProcessTaskList() throws Exception {
String userId="员工";
// String userId="部门经理";
// String userId="总经理";
//查询
List<Task> taskList=processEngine.getTaskService().findPersonalTasks(userId);
for(Task task:taskList){
System.out.println("id="+task.getId()+",name="+task.getName()+",assignee="+task.getAssignee());
}
}
小结:
JBPM流程处理,其实跟其他的工作流程的处理如Activity的处理过程基本类似。上述demo只是简单的介绍了一下一个流程从部署启动到结束的过程流转,通过实例演示,能够清晰的看到流转过程,在这个过程中还涉及到流程流转记录的存储问题及流程处理,还有待接下来的深入研究。
1、配置环境
从官网上下载jbpm4.4的jar包,引入到MyEclipse。
添加jbpm.cfg.xml和jbpm.hibernate.cfg.xml文件。
创建日志文件log4j.properties。
2、建立程序
新建一个java项目,然后选择New-->Other-->jBoss JBPM,建立JBPM文件,命名为helloworld。如图:
创建好之后,开始画流程,打开helloworld文件,进行绘制流程,流程如下:
流程绘制好之后,会产生两个文件:helloworld.jpdl.xml和helloworld.png
3、编写程序
首先创建一个HelloWordAPI的Java测试类,第一步就是创建JBPM所需要的数据库,如下:
//建表 @Test public void createTables() throws Exception{ new org.hibernate.cfg.Configuration() // .configure("jbpm.hibernate.cfg.xml") //配置文件,指定映射文件 .buildSessionFactory();//创建sessionFactory }
创建流程引擎并部署流程、并启动流程:
//流程引擎
private static ProcessEngine processEngine =new Configuration() //
.setResource("jbpm.cfg.xml") //
.buildProcessEngine();
// 1、部署流程
@Test
public void deployProcessDefintion() throws Exception {
processEngine.getRepositoryService() //
.createDeployment() //
.addResourceFromClasspath("helloworld/helloworld.jpdl.xml") //
.addResourceFromClasspath("helloworld/helloworld.png") //
.deploy();
}
// 2、启动流程实例
@Test
public void startProcessInstance() throws Exception {
processEngine.getExecutionService().startProcessInstanceByKey("helloworld");
} 启动之后,数据存入库中,如下:
接下来进行办理任务,此次演示使用手动设置流程ID,为‘40002’,对应上图最后一条数据(该数据的主要标识是流程执行EXECUTION_ID,在下边的结果中会展示):
// 4、办理任务
@Test
public void completeTask() throws Exception {
String taskId="40002";
processEngine.getTaskService().completeTask(taskId);
} 结果如下,流程流转到下一节点,即部门经理审批:
也可以对每个流程进行任务列表的查询,如下:
// 3、查看我的个人任务列表
@Test
public void findMyProcessTaskList() throws Exception {
String userId="员工";
// String userId="部门经理";
// String userId="总经理";
//查询
List<Task> taskList=processEngine.getTaskService().findPersonalTasks(userId);
for(Task task:taskList){
System.out.println("id="+task.getId()+",name="+task.getName()+",assignee="+task.getAssignee());
}
}
小结:
JBPM流程处理,其实跟其他的工作流程的处理如Activity的处理过程基本类似。上述demo只是简单的介绍了一下一个流程从部署启动到结束的过程流转,通过实例演示,能够清晰的看到流转过程,在这个过程中还涉及到流程流转记录的存储问题及流程处理,还有待接下来的深入研究。
相关文章推荐
- jbpm工作流之简单请假流程例子(源码)
- 工作流的原理和JBPM的简单使用
- JBPM工作流简单步骤
- JBPM4.4 入门 简单的请假流程
- JBPM4工作流之在myecplsie中安装jBPM4.0开发插件以及JBPM4的简单介绍和入门
- jbpm简单流程的实现--纪念3天来的奋斗历程
- 一个简单的态机模式工作流演示
- 实例演示使用RDIFramework.NET 框架的工作流组件进行业务流程的定义—请假申请流程-WinForm
- 07-jbpm工作流之根据流程变量分配任务Task
- WM最简单流程演示(转载自Kanter Wang)
- Activiti或者jbpm工作流的流程回退
- 使用Java开源工作流jBPM开发一个简单的Demo
- Jbpm3.2 开发HelloWorld (简单请假流程)客户端
- jBPM学习笔记5--简单流程测试剖析
- 08-jbpm工作流之Decision流程决策(判断活动执行方向)
- 简单工作流引擎是按一个单据的(类型),单据的(主键) 来处理流程步骤的,这个就是工作流设计的核心思想
- JBPM3.2 工作流演示例子(jbpm-console websale DEMO) 移植到 To
- 简单状态机模式工作流演示
- JBPM3.2 工作流演示例子(jbpm-console websale DEMO) 移植到 To
- JBPM学习(一):实现一个简单的工作流例子全过程