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>

下载demo

最新文章

  1. 【转】局域网内访问VS2012 调试的IIS Express web服务器
  2. 含有Date和Timestamp的Java和Json互相转化
  3. Linux同步机制 - 基本概念(死锁,活锁,饿死,优先级反转,护航现象)
  4. 使用tornado的gen.coroutine进行异步编程
  5. 数论(毕达哥拉斯定理):POJ 1305 Fermat vs. Pythagoras
  6. Java DES 测试
  7. Raid1源代码分析--初始化流程
  8. asp.net web api帮助文档的说明
  9. Maven+struts2+spring4+hibernate4的环境搭建
  10. python3 selenium 鼠标悬停操作
  11. java_弹球小游戏
  12. Python从入门到精通之Seventh!
  13. ajax如何增加请求头
  14. Java编程的逻辑 (94) - 组合式异步编程
  15. A股主要指数的市盈率(PE)估值高度
  16. 利用pl/sql执行计划评估SQL语句的性能简析
  17. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
  18. React创建组件的三种方式及其区别
  19. python模拟自动登录网站(urllib2)
  20. 分享10款效果惊艳的HTML5图片特效

热门文章

  1. C语言预处理运算符
  2. android 开发adb server is out of date 解决方案
  3. thinkphp 调用函数
  4. MS提供的虚拟机IE测试
  5. 转:为什么Eclipse中 按 F3 无效
  6. C#中的ODBC、OLEDB连接
  7. 转:理解 Linux 的硬链接与软链接
  8. windows上制作懒人版MAC cdr/iso
  9. [转] Java之ACM速成
  10. java 页面url传值中文乱码的解决方法