Jbpm笔记之二 -- 流程实例-任务
来源:互联网 发布:gta5a卡优化 编辑:程序博客网 时间:2024/05/04 17:21
package cn.jbpm.pi;import java.util.List;import org.jbpm.api.ProcessInstance;import org.jbpm.api.history.HistoryTask;import org.jbpm.api.task.Task;import org.junit.Test;import cn.itcast.jbpm.utils.BaseJbpm;public class PITest extends BaseJbpm{/** * 涉及到得表 * JBPM4_EXECUTION:表示当前正在执行的流程实例 * 字段: * DBID_:主键 * ID_:流程实例ID * ACTIVITYNAME_:当前流程实例活跃的节点 * PROCDEFID_:流程定义ID * JBPM4_HIST_PROCINST:表示历史的流程实例,但是当前正在运行的流程实例也在这里 * 字段: * DBID_:主键 * ID_:流程实例ID * START_:整个流程实例开始时间 * END_:流程实例的结束时间,如果该流程实例为当前正在运行的流程实例,该值为空 * STATE:表示流程实例的状态 ,如果是正在运行,为sctive,如果流程实例结束 为ended * JBPM4_TASK:表示当前正在执行的任务 * 说明:任务是jbpm流程图的一个节点 * 字段: * DBID_:主键、任务ID * NAME_:任务名称 * ASSIGNEE_:任务的执行人 * JBPM4_HIST_TASK:表示历史的任务,但是当前正在执行的任务也在这里 * 字段: * STATE:如果一个任务被完成以后,值为completed * end_:任务的结束时间有值了 * JBPM4_HIST_ACTINST:表示历史的节点 * 字段: * TYPE_:节点类型 * 说明:当启动流程实例的时候,会自动的离开开始节点,流向下一个节点 * jbpm4_task为临时表,当当前的任务完成以后,该数据就被删除了 */@Testpublic void testStartPIByPDID(){ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceById("qingjia-3");System.out.println(pi.getId());System.out.println(pi.getState());}/** * 根据pdkey启动流程实例,是该key下,最高版本 */@Testpublic void testStartPIByPDKEY(){processEngine.getExecutionService().startProcessInstanceByKey("qingjia");}/** * 完成任务去JBPM4_HIST_TASK可以车看完成的任务 */@Testpublic void testFinishTask(){processEngine.getTaskService().completeTask("30002");}/** * 查询所有的流程实例 */@Testpublic void testQueryAllPI(){List<ProcessInstance> piList = processEngine.getExecutionService()//获取执行的服务.createProcessInstanceQuery()//创建流程实例查询///.processDefinitionId("")//可以根据pdid查询流程实例,很多个.list();for(ProcessInstance pi:piList){/** * 可以查询piid,pdid,state等 *///System.out.println(pi.getProcessInstance().getName());System.out.println(pi.getState());//获取流程实例的状态System.out.println(pi.getKey());}}/** * 查询所有的正在执行的任务 */@Testpublic void testQueryAllTask(){List<Task> taskList = processEngine.getTaskService()//获取任务服务.createTaskQuery()//创建任务查询//.processDefinitionId("").list();for(Task task:taskList){System.out.println("assignee: " + task.getAssignee());//获取任务查询人System.out.println("name: " + task.getName());//获取任务名称System.out.println("createtime: " + task.getCreateTime());//获取任务创建时间}}/** * 可以根据任务的执行人查询当前正在执行的任务 * 可以根据pdid查询当前正在执行的任务 */@Testpublic void testQueryTaskByPDID(){List<Task> taskList = processEngine.getTaskService()//获取任务服务.createTaskQuery()//创建任务查询.processDefinitionId("qingjia-1").list();System.out.println(taskList.size());}/** * Execution * * 如果不存在并发的情况,那么exection和process instance是一样的 * * 如果存在并发的情况,execution代表分支,process instance代表主线 * * 根据executionID查询任务,有唯一的一个 */@Testpublic void testQueryTaskByTaskID(){Task task = processEngine.getTaskService().getTask("60001");//根据任务的id获取任务 DBID为主键System.out.println(task.getName());}/** * 查询已经完成的所有的任务 */@Testpublic void testQueryAllHistTask(){List<HistoryTask> histTaskList = processEngine.getHistoryService()//获取历史服务.createHistoryTaskQuery()//创建历史任务查询//.assignee("") 可以根据任务的执行人查询已经完成的任务//.executionId("")可以根据executionID查询已经完成的任务.state("completed").list();for(HistoryTask histTask:histTaskList){System.out.println(histTask.getAssignee());System.out.println(histTask.getEndTime());//打印出任务结束的时间}}/** * 直接结束流程实例 */@Testpublic void testEndPI(){processEngine.getExecutionService().endProcessInstance("qingjia.70001", "error");}/** * 根据 piid查询流程实例,如果查询出来的结果为null,说明该流程实例已经结束了 */@Testpublic void testIsEndPI(){ProcessInstance pi = processEngine.getExecutionService().createProcessInstanceQuery().processInstanceId("qingjia.70001").uniqueResult();System.out.println(pi);//如果该值为null,说明该流程实例已经结束了}}
0 0
- Jbpm笔记之二 -- 流程实例-任务
- JBPM流程部署之流程实例迁移
- Jbpm流程管理实例(二)
- Jbpm笔记之三 -- 流程变量
- JBPM流程部署之流程实例迁移解析与扩展
- 07-jbpm工作流之根据流程变量分配任务Task
- JBPM具体应用之流程变量与任务变量
- jbpm学习笔记(三)--管理流程实例
- jbpm 笔记 流程部署
- 剑侠3d任务系统开发笔记(二)之任务流程的确定
- JBPM工作流引擎之并发流程&组任务&事件&自定义任务
- jbpm发布流程定义,启动流程实例
- java流程管理 之 jbpm流程实例 发布、查看、终止、删除
- java流程管理 之 jbpm流程实例 发布、查看、终止、删除
- JBPM 工作流引擎 JBPM指南 例子:任务指派实例(3.4)
- 最新JBoss jBPM 3.1 开始指南之二---执行示例流程和管理执行中的流程
- activiti学习笔记(二) 获取流程实例
- jbpm中定义定义流程实例
- 完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三
- 使用反射机制获取 蓝牙BluetoothDevice API
- #ifdef __cplusplus extern "C" 笔记
- SYSTEM BUS 与APIC BUS 的比较
- Auto Complete -- Typeahead 和DateRangePicker
- Jbpm笔记之二 -- 流程实例-任务
- myeclipse中deploy按钮以及manage deployments按钮无效
- Java线程:线程的调度-让步
- 初创团队的技术选择
- extern声明外部变量
- 【程序设计】CreateThread()与_beginthreadex()的区别
- android之Fragment(官网资料翻译)
- 关于OneThink 1.0.131129开发版的安装检测文件权限bug
- cocos2d-x-3.2 Physics