activiti表达式中如何使用发起人的id
解决方法:
如果我想在用户任务里直接指定任务处理人时候发起流程的人,那么在发起流程要设置发起人id:
try {
identityService.setAuthenticatedUserId("123456");
Map variableMap = new HashMap();
ProcessInstance pi = runtimeService.startProcessInstanceByKey("myProcess", variableMap);
} finally {
identityService.setAuthenticatedUserId(null);
}
在用户任务中的指派人表达中使用${authenticatedUserId}就可以指派任务给打起人:
<userTask activiti:assignee="${authenticatedUserId}" activiti:exclusive="true" id="_6" name="UserTask"/>
还有一种方法就是设计流程图时在启动节点中设置Initiator,这个属性就是设置发起人的id变量名,如果设置为startUserId,启动时一样要指定启动人id,那么用户任务中指派人表达式:
<userTask activiti:assignee="${startUserId}" activiti:exclusive="true" id="_6" name="UserTask"/>