最近做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();
记录