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)
提交回复