activiti 多方向流程实例(六)
2016-04-29 20:03
274 查看
import java.io.InputStream; import java.util.List; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.activiti.engine.TaskService; import org.activiti.engine.repository.Deployment; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.junit.Test; /** * 多方向流程实例<br> * * * select * from act_re_deployment ; # 部署对象表<br> * * select * from act_re_procdef; # 流程定义表<br> * select * from act_ge_bytearray; #资源文件表<br> * select * from act_ge_property; #<br> * * select * from act_ru_execution; # 正在执行的对象<br> * select * from act_hi_procinst; #流程实例历史表<br> * select * from act_ru_task; # 正在执行的任务表(只有节点是UserTask时,该表中才存在数据)<br> * * select * from act_hi_taskinst; #任务历史表<br> * * select * from act_ru_variable; #变量表<br> * * @author ZHEN.L * */ public class SequenceFlowTest { ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /** * 部署流程定义 */ @Test public void deloymentProcessDefinition() { InputStream bpmn = this.getClass().getResourceAsStream( "diagrams/sequenceFlow.bpmn"); InputStream png = this.getClass().getResourceAsStream( "diagrams/sequenceFlow.png"); Deployment deployment = processEngine.getRepositoryService() .createDeployment().addInputStream("sequenceFlow.bpmn", bpmn) .addInputStream("sequenceFlow.png", png).name("多箭头流程实例") .deploy(); System.out.println(deployment.getId() + "; " + deployment.getName()); } /** * 启动流程实例 */ @Test public void startProcessInstance() { String processDefinitionKey = "sequenceFlow"; ProcessInstance p = processEngine.getRuntimeService() .startProcessInstanceByKey(processDefinitionKey); // 根据key启动,启动最新版本 System.out.println(p.getId() + "; " + p.getProcessDefinitionId()); } /** * 查询任务 */ @Test public void findTask() { String assignee = "向问天"; // String assignee = "任我行"; List<Task> list = processEngine.getTaskService().createTaskQuery() .taskAssignee(assignee).list(); if (list != null && list.size() > 0) { for (Task t : list) { System.out.println(t.getId() + "; " + t.getName() + "; " + t.getAssignee() + "; " + t.getProcessInstanceId()); } } } /** * 完成任务 */ @Test public void completeTask(){ String taskId = "2706"; TaskService taskService = processEngine.getTaskService(); taskService.setVariable(taskId, "money", 50); taskService.complete(taskId); } }
相关文章推荐
- Java应用调优指南之-工具篇
- 看病要排队
- 第九届河南省赛选拔赛总结,心已碎,人已废
- 机器学习之高斯混合模型
- ELK---日志分析系统
- 一些经典的php函数方法代码整理
- Android手机震动
- 小何讲进程: Linux进程控制编程 (fork、vfork)
- 最小生成树(二)--prim算法实现以及堆优化
- 1032 - Fast Bit Calculations 数位dp
- Java mail学习之邮件基础
- 更轻量的 View Controllers
- Leetcode Single Number 136
- HDU 3555 Bomb 数位Dp
- 打劫房屋 II
- mysql关闭与删除bin-log日志详解
- Xshell和Xftp的安装与使用教程
- 查找某一目录下的所有文件名
- Zabbix通过SNMP监控Linux主机
- 判断是否为闰年