Flowable增加流程转模型功能,现在导入的流程无法转为模型进行编辑
	@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;
	}按上述代码实现模型转换,仅供参考。
扫一扫访问 Blade技术社区 移动端