flowable之将editor-app集成到task中
**
因为最近实验室项目开发的需要,需要将modeler模块的editor-app集成到task中。 首先我们需要将task模块的editor-app文件复制到task模块的workflow下面,然后将里面module的flowableModeler改成flowableApp。 另外有一个细节需要注意,有时候程序会找不对应的js和css文件,你需要拷贝到外层,激活一下(这点不知为何,有知道的小伙伴可以解答一下)
接下来我们要做的是将流程实例读入到editor-app中,通过查看代码我们发现modeler的接口,我们需要将model的接口改成流程实例的接口:
更改接口主代码为:
HistoricProcessInstance processInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
String processDefId = processInstance.getProcessDefinitionId();
ProcessDefinition processDefiniton = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefId).singleResult();
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefId);
Date deploymentTime = repositoryService.createDeploymentQuery().deploymentId(processDefiniton.getDeploymentId()).singleResult().getDeploymentTime();
ObjectNode BpmnmodelNode = objectMapper.createObjectNode();
String modelId="22c32914-d393-11ea-950f-fae4e3d6256d";
BpmnmodelNode.put("modelId",modelId );
BpmnmodelNode.put("name",processDefiniton.getName());
BpmnmodelNode.put("key",processDefiniton.getKey());
BpmnmodelNode.putPOJO("lastUpdated",deploymentTime);
BpmnmodelNode.put("lastUpdatedBy","admin");
BpmnJsonConverter bpmnJsonConverter = new BpmnJsonConverter();
ObjectNode BpmnmodelJson = bpmnJsonConverter.convertToJson(bpmnModel);
if (BpmnmodelJson!=null) {
try {
ObjectNode editorJsonNode = (ObjectNode) objectMapper.readTree(String.valueOf(BpmnmodelJson));
editorJsonNode.put("modelType", "model");
editorJsonNode.put("modelId",modelId);
BpmnmodelNode.set("model", editorJsonNode);
} catch (Exception e) {
//LOGGER.error("Error reading editor json {}", processInstanceId, e);
throw new InternalServerErrorException("Error reading editor json " + processInstanceId);
}
} else {
ObjectNode editorJsonNode = objectMapper.createObjectNode();
editorJsonNode.put("id", "canvas");
editorJsonNode.put("resourceId", "canvas");
ObjectNode stencilSetNode = objectMapper.createObjectNode();
stencilSetNode.put("namespace", "http://b3mn.org/stencilset/bpmn2.0#");
editorJsonNode.put("modelType", "model");
BpmnmodelNode.set("model", editorJsonNode);
}
System.out.println(BpmnmodelJson);
return BpmnmodelNode;
综上,便可将流程实例读到编辑器中,后续将会将在编辑器中更改过的实例进行保存,待后续更新