camunda 动态生成流程(代码生成xml)
camunda 动态创建流程XML
根据caunda-model的能力,将xml代码化,将用户数据的结构转换成xml,进而发布到camuda里。
代码是提供参考,已经验证完成,并在生产环境使用。
<dependency>
<groupId>org.camunda.bpm.model</groupId>
<artifactId>camunda-bpmn-model</artifactId>
<version>7.20.0-alpha3</version>
</dependency>
public class TestCamunda {
public static String url = "http://localhost:8080/engine-rest/deployment/create";
public static void main(String[] args) {
autoGenerateBPMN();
}
// 子流程
CamundaFlowCreateParam param = new CamundaFlowCreateParam("t1", "开始", "head");
CamundaFlowCreateParam param2 = new CamundaFlowCreateParam("t3", "调用", "user-service");
CamundaFlowCreateParam param5 = new CamundaFlowCreateParam("t6", "结束", "end");
param.setNextList(Lists.newArrayList(param2));
param2.setNextList(Lists.newArrayList(param5));
// 父流程
CamundaFlowCreateParam parent_param = new CamundaFlowCreateParam("t1", "开始", "head");
CamundaFlowCreateParam parent_param2 = new CamundaFlowCreateParam("t3", "调用-父", "call");
parent_param2.setSubProcessId("t-5");
CamundaFlowCreateParam parent_param5 = new CamundaFlowCreateParam("t6", "结束", "end");
parent_param.setNextList(Lists.newArrayList(parent_param2));
parent_param2.setNextList(Lists.newArrayList(parent_param5)