Activiti学习笔记8 — UserTask私有任务的使用
2015-12-02 10:08
465 查看
每一个UserTask都会在Execution表和Task表中各产生一条记录
一、创建流程引擎对象
二、发布一个流程
View Code
四、执行结果
[INFO][2015-12-02 10:07:24,169][com.mcs.activiti.test.TestPrivateUserTask]processInstanceId:112501
[INFO][2015-12-02 10:07:24,223][com.mcs.activiti.test.TestPrivateUserTask]taskName:出差
[INFO][2015-12-02 10:07:24,576][com.mcs.activiti.test.TestPrivateUserTask]UserTask私有任务流程成功执行!
一、创建流程引擎对象
/** * 1、创建流程引擎对象 */ private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
二、发布一个流程
/** * 3、启动流程、执行任务,并查看状态 */ @Test public void testUserTask() { // 获取RuntimeService服务对象的实例 RuntimeService runtimeService = processEngine.getRuntimeService(); String processDefinitionKey = "userSingleTask"; // 自动执行与Key相对应的流程的最高版本 ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey); String processInstanceId = processInstance.getId(); logger.info("processInstanceId:" + processInstance.getId()); // 获取TaskService服务对象的实例 TaskService taskService = processEngine.getTaskService(); String assignee = "user"; List<Task> tasks = taskService.createTaskQuery().taskAssignee(assignee).list(); Assert.assertEquals(1, tasks.size()); Task task = tasks.get(0); logger.info("taskName:" + task.getName()); Assert.assertEquals("出差",task.getName()); //完成任务 taskService.complete(task.getId()); //检查结束状态 ProcessInstance pInstance = runtimeService .createProcessInstanceQuery() .processInstanceId(processInstanceId) .singleResult(); Assert.assertNull(pInstance); logger.info("UserTask私有任务流程成功执行!"); }
View Code
四、执行结果
[INFO][2015-12-02 10:07:24,169][com.mcs.activiti.test.TestPrivateUserTask]processInstanceId:112501
[INFO][2015-12-02 10:07:24,223][com.mcs.activiti.test.TestPrivateUserTask]taskName:出差
[INFO][2015-12-02 10:07:24,576][com.mcs.activiti.test.TestPrivateUserTask]UserTask私有任务流程成功执行!
相关文章推荐
- 三种web性能压力测试工具
- UIWebView添加头部视图
- FlappyBird—仅供娱乐
- Android编程实现在Bitmap上涂鸦效果
- Nodejs-connect 中间件
- 从头认识java-11.4 正则表达式(1)-感性认知
- LeetCode -- Word Ladder
- SELinux 关闭重启方法
- MyBatis mapper文件中的变量引用方式#{}与${}的差别
- Android中的线程通信
- MySQL5.5不支持partition查找
- OpenGL step by step - tutorial_1 "a hello window"
- Leetcode: Generate parentheses
- ERROR: transport error 202: bind failed: Address already in use
- c++与java的区别
- LeetCode -- Valid Sudoku
- Apache Shiro权限管理框架的初次认识
- cookie中domain和path的解释
- 29、OSPF配置实验之被动接口
- 【转载】使用OpenCV的OpenCL(ocl)模块