flowable设置流程发起人
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                flowable设置流程发起人
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                先來看一段API調用:
?
List hpis = historyService.createHistoricProcessInstanceQuery().startedBy(userCode).list();查詢結果為空,這是為什么?
?
?
1.原因說明
當通過runtimeService接口啟動(startProcessInstance[Byxxx])流程的時候會設置一個變量,代碼片段(ExecutionEntityManagerImpl.java#createProcessInstanceExecution):
?
String authenticatedUserId = Authentication.getAuthenticatedUserId();processInstanceExecution.setStartActivityId(startActivityId);processInstanceExecution.setStartTime(CommandContextUtil.getProcessEngineConfiguration().getClock().getCurrentTime());processInstanceExecution.setStartUserId(authenticatedUserId);// Store in databaseinsert(processInstanceExecution, false);if (initiatorVariableName != null) {processInstanceExecution.setVariable(initiatorVariableName, authenticatedUserId);}?
從上面的代碼片段中可以看出在啟動流程的時候引擎會先從Authentication讀取已認證用戶信息authenticatedUserId?,并將此id
?
設為當前流程實例的startUserId,并作為流程變量和initiatorVariableName(在流程圖里自定義)綁定;現在我們只要能設置認證
用戶的ID就可以了。
?
2.解決問題
查看API發現Authentication有一個方法:setAuthenticatedUserId()。
解決辦法很簡單只要在啟動流程之前調用API即可:Authentication.setAuthenticatedUserId(userId);
當流程啟動之后可以到表ACT_HI_PROCINST中查看字段START_USER_ID_的值來驗證是否生效。
?
?
3.結束
問題很簡單,但是官網的手冊沒有提到,希望讓遇到問題的人少走彎路。
總結
以上是生活随笔為你收集整理的flowable设置流程发起人的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: Java 多线程:Inheritable
 - 下一篇: 微服务部署:蓝绿部署、滚动部署、灰度发布