最近做activiti流程發起人的控制,最開始的想法是新建一張表 ,通過控制流程定義id與發起人id進行控制,如果這樣每次發布新的流程就必須
重新設置流程發起人,因為通過流程定義不能獲取流程模型id,雖然很不合理,但是確實獲取不到流程模型id,最后問了同事,可以通過process的key、以及
defination的key 來進行控制,流程定義的key很好獲取,可以通過processDef.getKey()獲取,但是流程模型的key不好獲取,數據庫里的key並不是流程模型的key
流程模型的key存放在xml里,可通過如下方法獲取,
JsonNode modelNode = new ObjectMapper().readTree(repositoryService
.getModelEditorSource(modelId));
BpmnModel bpmnModel = new BpmnJsonConverter()
.convertToBpmnModel(modelNode);
String key = bpmnModel.getProcesses().get(0).getId();
記錄