流程发起人
2017-09-25 21:41
573 查看
设置认证用户
1 <usertask
id="hrAudit" name="人事审批" activiti:assignee="${hrUserId}"></usertask>
动态指定任务办理人,只要在任务完成的时候传递activiti:assignee属性中的变量即可
下面的代码是利用initiator功能,设置一个名称(不是变量而是变量名)到启动事件上,并且在启动流程时调用一些下面的方法:
1
identityService.setAuthenticatedUserId(currentUserId);
其中currentUserId表示当前用户,也就是启动流程的人,配置如下所示:
1 <startevent
id="startevent1" name="Start" activiti:initiator="applyUserId"></startevent>
2 <usertask
id="reportBack" name="销假" activiti:assignee="${applyUserId}"></usertask>
这样流程启动之后如果任务流转至"销假"节点则会自动把任务分配给启动流程的人。
如果在启动流程的时候调用了下面的代码:
1 identityService.setAuthenticatedUserId(currentUserId);
引擎会记录启动人,即在ACT_HI_PROINST表的START_USER_ID字段,可以通过下面的代码获取(procInsId为流程实例id)。
1 HistoricProcessInstance
hi = historyService.createHistoricProcessInstanceQuery().processInstanceId(procInsId).singleResult();
2 hi.getStartUserId();
1 //流程发起前设置发起人,记录在流程历史中 2 identityService.setAuthenticatedUserId("kitty"); 3 //开始流程 4 runtimeService.startProcessInstanceByKey("XML中的ID"); 5 //查询流程发起人 6 logger.info(historyService.createHistoricProcessInstanceQuery() 7 .startedBy("ketty").singleResult().getProcessDefinitionId());
// 根据用户查询用户有权限开启的流程定义
processDefinitionQuery.startableByUser("用户ID");
动态指定任务办理人
手动设置任务办理人
1 <usertaskid="hrAudit" name="人事审批" activiti:assignee="${hrUserId}"></usertask>
动态指定任务办理人,只要在任务完成的时候传递activiti:assignee属性中的变量即可
1 Map<String, Object> variables = new HashMap<String, Object>(); 2 3 variables.put("hrUserId", hrUserId); 4 5 taskService.complete(taskId, variables);
自动设置任务办理人
下面的代码是利用initiator功能,设置一个名称(不是变量而是变量名)到启动事件上,并且在启动流程时调用一些下面的方法:1
identityService.setAuthenticatedUserId(currentUserId);
其中currentUserId表示当前用户,也就是启动流程的人,配置如下所示:
1 <startevent
id="startevent1" name="Start" activiti:initiator="applyUserId"></startevent>
2 <usertask
id="reportBack" name="销假" activiti:assignee="${applyUserId}"></usertask>
这样流程启动之后如果任务流转至"销假"节点则会自动把任务分配给启动流程的人。
获取流程发起人
如果在启动流程的时候调用了下面的代码:1 identityService.setAuthenticatedUserId(currentUserId);
引擎会记录启动人,即在ACT_HI_PROINST表的START_USER_ID字段,可以通过下面的代码获取(procInsId为流程实例id)。
1 HistoricProcessInstance
hi = historyService.createHistoricProcessInstanceQuery().processInstanceId(procInsId).singleResult();
2 hi.getStartUserId();
相关文章推荐
- Activiti中的流程历史保存流程发起人的方法
- Activiti中的流程历史保存流程发起人的方法
- 分享一下“流程开发时如何根据发起人的部门来确定某个选人控件的范围”
- flowable设置流程发起人
- Node.js文章翻译:Node中的流程控制(1)
- Rails中的MVC流程与RESTful路由的流程总结
- Hbase集群启动流程
- Android Surface创建流程
- Extraction流程下载
- 浅析arm平台上uart在kernel上注册和使用的上、下流程
- Android ActivityManagerService 启动流程总结
- Android Framework下StageFright框架流程解读
- 浏览器渲染原理及流程
- Android中ICS4.0源码Launcher启动流程分析【android源码Launcher系列一】
- 软件开发流程 面向对象和面向过程区别
- TCP/IP协议三次握手与四次握手流程解析
- 流程实例管理
- android学习笔记 按电源键屏幕唤醒和屏幕睡眠流程(从上层到kernel)
- D3D渲染流程简介【好】
- Ending、项目流程相关分析图