Flowable增加流程转模型功能

Flowable增加流程转模型功能,现在导入的流程无法转为模型进行编辑

1条回答
  • 2019-07-03 12:40
    @Override
    public FlowModel convertToModel(String processId) throws UnsupportedEncodingException, XMLStreamException {
    ProcessDefinition processDefinition  = repositoryService.createProcessDefinitionQuery().processDefinitionId(processId).singleResult();
    InputStream bpmnStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(),
         processDefinition.getResourceName());
    XMLInputFactory xif = XMLInputFactory.newInstance();
    InputStreamReader in = new InputStreamReader(bpmnStream, "UTF-8");
    XMLStreamReader xtr = xif.createXMLStreamReader(in);
    BpmnModel bpmnModel = new BpmnXMLConverter().convertToBpmnModel(xtr);
    BpmnJsonConverter converter = new BpmnJsonConverter();
    ObjectNode modelNode = converter.convertToJson(bpmnModel);
    FlowModel modelData = new FlowModel();
    modelData.setModelKey(processDefinition.getKey());
    modelData.setName(processDefinition.getName());
    modelData.setVersion(Integer.parseInt(String.valueOf(repositoryService.createModelQuery().modelKey(processId).count()+1)));
    modelData.setModelType(1);
    modelData.setCreated(org.flowable.dmn.engine.impl.el.util.DateUtil.now());
    modelData.setLastUpdated(org.flowable.dmn.engine.impl.el.util.DateUtil.now());
    modelData.setCreatedBy("admin");
    modelData.setLastUpdatedBy("admin");
    modelData.setModelEditorJson(modelNode.toString());
    modelData.setTenantId("0000"); 
    modelData.setThumbnail(modelNode.toString().getBytes("utf-8"));
    modelData.setId(UUID.randomUUID().toString());
    save(modelData);
    return modelData;
    }

     按上述代码实现模型转换,仅供参考。

    0 讨论(0)
代码语言
提交回复