在启动流程之前调用API即可:identityService.setAuthenticatedUserId(userId);
1 2 |
identityService.setAuthenticatedUserId(userId); processInstance = runtimeService.startProcessInstanceByKey("leave", entityId, variables); |
当流程启动之后可以到表ACT_HI_PROCINST中查看字段START_USER_ID_的值来验证是否生效。
如果你在调用IdentityService.setAuthenticatedUserId(String)
提交之前设置了认证用户,那么提交表单的用户将被保存在历史信息中并可以在开始表单中 使用HistoricProcessInstance.getStartUserId()
获取,在任务表单中用HistoricActivityInstance.getAssignee()获取。
initiator/发起者:当流程启动时,把当前登录的用户保存到哪个变量名中。 示例如下:
1 |
<startEvent id="request" activiti:initiator="initiator" /> |
登录的用户必须使用IdentityService.setAuthenticatedUserId(String)方法设置, 并像这样包含在try-finally代码中:
1 2 3 4 5 6 |
try { identityService.setAuthenticatedUserId("bono"); runtimeService.startProcessInstanceByKey("someProcessKey"); } finally { identityService.setAuthenticatedUserId(null); } |