感觉每次画流程图好麻烦,但是又无可奈何,生无可恋,项目上我都是用流程设计器画好了。
通过流程设计器保存的流程信息其中都会保存到act_re_model 里面,根据model_id 部署流程
部署流程关键代码 根据act_re_model 中的id_ 部署流程
将RepositoryService注入进来就可以了
// 获取模型
Model model = repositoryService.getModel(id);
ObjectNode objectNode = (ObjectNode) new ObjectMapper().readTree(repositoryService.getModelEditorSource(model.getId()));
BpmnModel bpmnModel = new BpmnJsonConverter().convertToBpmnModel(objectNode);
String processName = model.getName()+".bpmn20.xml";
byte[] bytes = new BpmnXMLConverter().convertToXML(bpmnModel);
// 部署流程
Deployment deployment = repositoryService
.createDeployment().name(model.getName())
.addString(processName, new String(bytes,"UTF-8"))
.deploy();
数据库表变更
在部署流程定义这一步
ACT_RE_DEPLOYMENT(部署对象表)
存放流程定义的显示名和部署时间,每部署一次增加一条记录
ACT_RE_PROCDEF(流程定义表)
存放流程定义的属性信息,部署每个新的流程定义都会在这张表中增加一条记录。
注意:当流程定义的key相同的情况下,使用的是版本升级
ACT_GE_PROPERTY(主键生成表)
主张表将生成下次流程部署的主键ID。