package cn.itcast.jbpm.firstapp;
import java.util.List;
import org.hibernate.cfg.Configuration;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.taskmgmt.exe.TaskInstance;
import org.junit.Test;
public class HelloWorld {
//生成数据表
@Test
public void createSchema(){
new Configuration().configure().buildSessionFactory();
}
//发布工作流版本
@Test
public void deployProcessDefintion(){
String path = "app/helloworld.zip";
//1.加载jbpm的配置文件
JbpmConfiguration jcf = JbpmConfiguration.getInstance();
JbpmContext jContext = jcf.createJbpmContext();
//2.加载app
ProcessDefinition pd = ProcessDefinition.parseParResource(path);
//3.发布流
jContext.deployProcessDefinition(pd);
jContext.close();
}
//找到最新版本并创建实例
@Test
public void instanceProcess(){
JbpmConfiguration jcf = JbpmConfiguration.getInstance();
JbpmContext jContext = jcf.createJbpmContext();
//找到最新版本的helloworld工作流app
ProcessDefinition pd = jContext.getGraphSession()//
.findLatestProcessDefinition("helloworld");
//实例工作流
ProcessInstance pi = pd.createProcessInstance();
pi.getRootToken().signal();
jContext.close();
}
//获取未完成的任务列表
@Test
public void getTaskInstanceList(){
JbpmConfiguration jcf = JbpmConfiguration.getInstance();
JbpmContext jContext = jcf.createJbpmContext();
String actorId = "员工";
List<TaskInstance> list = jContext.getTaskList(actorId);
System.out.println("----------> 【" + actorId + "】的任务列表:");
for (TaskInstance ti : list) {
System.out.println("id=" + ti.getId()// 主键值
+ ",name=" + ti.getName()// 任务名称
+ ",actorId=" + ti.getActorId()// 办理者
+ ",createTime=" + ti.getCreate()// 创建时间
+ ",startTime=" + ti.getStart()// 开始时间
+ ",endTime=" + ti.getEnd()); // 结束时间
}
jContext.close();
}
long taskInstanceId =2;
//开始未完成的任务(Task)根据对应表中的Id
@Test
public void startTask(){
JbpmConfiguration jcf = JbpmConfiguration.getInstance();
JbpmContext jContext = jcf.createJbpmContext();
TaskInstance ti = jContext.getTaskInstance(taskInstanceId);
ti.start();
jContext.close();
}
//结束未完成的任务(Task)
@Test
public void endTask(){
JbpmConfiguration jcf = JbpmConfiguration.getInstance();
JbpmContext jContext = jcf.createJbpmContext();
TaskInstance taskInstance = jContext.getTaskInstance(taskInstanceId);
taskInstance.end();
jContext.close();
}
}
分享到:
相关推荐
第一篇 jBPM工作流开发基础 1 第1章 工作流基础 2 1.1 工作流概念 2 1.1.1 工作流管理思想之于企业现代化管理 2 1.1.2 工作流技术在企业中的应用 5 1.1.3 如何从一个开发者的角度看工作流技术 6 1.2 工作流管理系统...
学习jbpm 的最佳例子,例子是用orcal10g 做为数据库的项目实例。本项目对jbpm 用户组 的重写 webroot 下 db 文件夹下有 自己用户角色,关系表的 sql 语句,和基本数据 可以帮助测试,流程跟踪的展示!
系统采用多层的系统架构进行功能开发,有利于代码功能责任分开,同时有利于不同开发人员的分工及合作,也有利于代码的单元测试。系统总体结构如下图所示: 【图二】BPMX3多层架构 •数据访问层Dao: 负责与数据库...
说明,这篇文章说使用的流程实例是,学习《一个JBPM工作流管理示例》文章中的流程而来。原文中的流程实例不是jbpm3.1版本,不能适用于jbpm3.1。本人将其改写,并加入自己的设计和实现。原文地址为...
此实例包括的是一个员工请假审批的流程实例,和流程相关的代码以及相应的测试代码。此流程在Eclipse3.1.2 ,JBoss-IDE 1.6环境...说明,这篇文章说使用的流程实例是,学习《一个JBPM工作流管理示例》文章中的流程而来。
本系统主要使用了Java技术Springboot框架技术,结合JBPM工作流引擎以及功能强大的MySQL数据库管理工具。系统实现了个人中心、学生管理、教师管理、班级管理、综合测评管理等功能的管理,完成了系统设计任务的所有...
本系统主要使用了Java技术Springboot框架技术,结合JBPM工作流引擎以及功能强大的MySQL数据库管理工具。系统实现了个人中心、学生管理、教师管理、班级管理、综合测评管理等功能的管理,完成了系统设计任务的所有...
由于本人之前没有工作流及JBPM的相关基础,刚开始学习Activiti的时候可以说是无比痛苦的,根本不知道从何下手,这里也建议大家先进行工作流及BPMN2.0规范的学习,有了一定的基础后,再着手学习Activiti。 1.3.2. ...
系统设置负责整个系统的基础参数配置及管理功能,如系统的账号,角色管理,岗位人员管理,部门人员管理,人员维度管理,附件管理,报表设置,数据字典,签章管理,套红模板管理,工作流相关的配置及管理。...
1.1.3. 运行测试........................................................................................................................................................... 15 1.2. 第一个例子:注册示例....