1.engine.getRepositoryService().createProcessDefinitionQuery().list()
时运时打印
SQL:select * from ( select a.*, ROWNUM rnum from ( select RES.* from ACT_RE_PROCDEF RES
order by order by RES.ID_ asc ) a where ROWNUM < ?) where rnum >= ? 为什么
mybatis3.3的bug,需要换成3.2.x
2.Activiti设置流程发起用户信息
1)解决办法很简单只要在启动流程之前调用API即可:
identityService.setAuthenticatedUserId(userId);
而且这行代码需要和activiti:initiator配合使用
<startevent id="startevent1" name="Start" activiti:initiator="applyUserId"></startevent>
2): runtimeService.startProcessInstanceByKey("leave");
代码启动一个流程,在启动流程的时候会判断有没有activiti:initiator属性,
如果有属性activiti:initiator的值作为一个变量添加到流程实例中,
如:applyUserId,不要以为applyUserId是一个特殊的变量,它就是一个普通的变量而已。
<usertask id="reportBack" name="销假" activiti:assignee="${applyUserId}">
在流程XML中代码出使用${applyUserId}作为activiti:initiator的值,
引擎会在创建任务的使用用变量 applyUserId替换
//设置当前用户
processEngine.getIdentityService().setAuthenticatedUserId(currentUserId);