`

activiti 问题

阅读更多

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);

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics