如果使用的是activiti自带的前端设计器,画完图保存model时会生成两个主要参数,一个是json.xml【json串】,一个是svg.xml,一个是数据,一个是图片,样板参见:
链接:https://share.weiyun.com/XgJg85XC 密码:88e79q
那么保存的时候是json串,引擎认识的却是符合bpmn2.0规范的xml,所以在首次的部署的时候要将json串转换为BpmnModel,再将BpmnModel转换成xml保存进数据库,以后每次使用就直接将xml转换成BpmnModel,这套操作确实有点啰嗦,实际项目中如果不用activiti自带的设计器,可以考虑用插件,直接生成的是xml,或者自己开发设计器,在后端生成节点及其属性,引擎有现成的节点实体,如:开始节点StartEvent,线SequenceFlow等。
Model modelData = repositoryService.getModel(modelId);
ObjectNode modelNode = (ObjectNode) new ObjectMapper().readTree(repositoryService.getModelEditorSource(modelData.getId()));// readTree(这里面是json)
BpmnModel model = new BpmnJso