activiti 根据模型id部署流程

感觉每次画流程图好麻烦,但是又无可奈何,生无可恋,项目上我都是用流程设计器画好了。

activiti 根据模型id部署流程_第1张图片

通过流程设计器保存的流程信息其中都会保存到act_re_model 里面,根据model_id 部署流程

activiti 根据模型id部署流程_第2张图片

部署流程关键代码  根据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();

数据库表变更

    activiti 根据模型id部署流程_第3张图片

             在部署流程定义这一步

        ACT_RE_DEPLOYMENT(部署对象表)

         存放流程定义的显示名和部署时间,每部署一次增加一条记录

         activiti 根据模型id部署流程_第4张图片

        ACT_RE_PROCDEF(流程定义表)

         存放流程定义的属性信息,部署每个新的流程定义都会在这张表中增加一条记录。

              注意:当流程定义的key相同的情况下,使用的是版本升级

       activiti 根据模型id部署流程_第5张图片

       
        ACT_GE_PROPERTY(主键生成表)

         主张表将生成下次流程部署的主键ID。

         activiti 根据模型id部署流程_第6张图片

你可能感兴趣的:(activiti工作流)