jbpm4.4 demo1
2024-10-15 19:00:27
package cn.itcast.a_helloworld; import java.util.List; import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.task.Task;
import org.junit.Test; public class HelloWorld_API { private static ProcessEngine processEngine;
static {
Configuration cfg = new Configuration();
cfg.setResource("jbpm.cfg.xml");
processEngine = cfg.buildProcessEngine();
} // 1,部署流程定义文档
@Test
public void testDeployProcessDefinition() throws Exception {
String id = processEngine.getRepositoryService()//
.createDeployment()//
.addResourceFromClasspath("helloworld/helloworld.jpdl.xml")//
.addResourceFromClasspath("helloworld/helloworld.png")//
.deploy();
System.out.println(id);
} // 2,启动流程实例
/**
* 根据pdkey启动流程实例,是该key下,最高版本
*/
@Test
public void testStartProcessInstance() throws Exception {
ProcessInstance instance = processEngine.getExecutionService().startProcessInstanceByKey("hellokey");
System.out.println(instance.toString());
System.out.println(instance.getId() + " " + instance.getKey() + " " + instance.getName() + " " + instance.getPriority() + " " + instance.getProcessDefinitionId() + " " + instance.getState()
+ " " + instance.getProcessInstance().toString() ) ;
} // 3,查询我的任务列表
@Test
public void testFindMyTaskList() throws Exception {
// 查询
// String userId = "员工";
String userId = "部门经理";
//String userId = "总经理";
List<Task> list = processEngine.getTaskService().findPersonalTasks(userId);
// 显示
for (Task task : list) {
System.out.println("id=" + task.getId() + ", name=" + task.getName() + ", assignee=" + task.getAssignee() + " " + task.getActivityName());
System.out.println(task.getDescription() + " " + task.getFormResourceName() + " " + task.getPriority() + " " + task.getDuedate() + " " + task.getCreateTime());
System.out.println();
}
} // 4,办理任务
@Test
public void testCompleteTask() throws Exception {
String taskId = "160002";
processEngine.getTaskService().completeTask(taskId);
}
}
<?xml version="1.0" encoding="UTF-8"?> <process name="hellokey" key="hellokey" xmlns="http://jbpm.org/4.4/jpdl">
<start g="115,21,48,48" name="start1">
<transition g="-71,-17" name="to 提交申请" to="提交申请"/>
</start>
<end g="115,353,48,48" name="end1"/>
<task assignee="员工" g="81,101,117,52" name="提交申请">
<transition g="-78,-15" name="to 部门经理[审批]" to="部门经理[审批]"/>
</task>
<task assignee="部门经理" g="81,185,117,52" name="部门经理[审批]">
<transition g="-95,-17" name="to 总经理[审批]" to="总经理[审批]"/>
</task>
<task assignee="总经理" g="81,269,117,52" name="总经理[审批]">
<transition g="-47,-17" name="to end1" to="end1"/>
</task>
</process>
最新文章
- 【转】局域网内访问VS2012 调试的IIS Express web服务器
- 含有Date和Timestamp的Java和Json互相转化
- Linux同步机制 - 基本概念(死锁,活锁,饿死,优先级反转,护航现象)
- 使用tornado的gen.coroutine进行异步编程
- 数论(毕达哥拉斯定理):POJ 1305 Fermat vs. Pythagoras
- Java DES 测试
- Raid1源代码分析--初始化流程
- asp.net web api帮助文档的说明
- Maven+struts2+spring4+hibernate4的环境搭建
- python3 selenium 鼠标悬停操作
- java_弹球小游戏
- Python从入门到精通之Seventh!
- ajax如何增加请求头
- Java编程的逻辑 (94) - 组合式异步编程
- A股主要指数的市盈率(PE)估值高度
- 利用pl/sql执行计划评估SQL语句的性能简析
- 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
- React创建组件的三种方式及其区别
- python模拟自动登录网站(urllib2)
- 分享10款效果惊艳的HTML5图片特效