Activiti BpmnModel方式部署

         使用该方式复杂点在于客户端需要手动构造流程引擎中的BpmnModel实例对象,如果开发人员平时设计流程文档时过多依赖图形化工具,可能对流程文档中定义的元素含义与引擎内部相对的元素属性承载类不熟悉,这里举个简单例子,部署下图文档:

 

public void addBpmnModel(){
    SequenceFlow flow1 = new SequenceFlow();
    flow1.setId("flow1");
    flow1.setName("开始节点->任务节点1");
    flow1.setSourceRed("start1");
    flow1.setTargetRef("userTask1");
    SequenceFlow flow2 = new SequenceFlow();
    flow2.setId("flow2");
    flow2.setName("任务节点1->任务节点2");
    flow2.setSourceRed("userTask1");
    flow2.setTargetRef("userTask2");
    SequenceFlow flow3 = new SequenceFlow();
    flow3.setId("flow3");
    flow3.setName("任务节点2->结束节点");
    flow3.setSourceRed("userTask2");
    flow3.setTargetRef("endEvent");
    String resouce = "addBpmnModel";
    BpmnModel bpmnModel = new BpmnModel();
    Process process = new Process();
    process.setId("process1");
    StartEvent startEvent = new StartEvent();
    startEvent.setId("start1");
    startEvent.setName("开始节点");
    startEvent.setOutgoingFlows(Arrays.asList(flow1));
    UserTask userTask1 = new UserTask();
    userTask1.setName("任务节点1");
    userTask1.setId("userTask1");
    userTask1.setIncomingFlows(Arrays.asList(flow1));
    userTask1.setOutgoingFlows(Arrays.asList(flow2));
    UserTask userTask2 = new UserTask();
    userTask2.setName("任务节点2");
    userTask2.setId("userTask1");
    userTask2.setIncomingFlows(Arrays.asList(flow2));
    userTask2.setOutgoingFlows(Arrays.asList(flow3));
    EndEvent endEvent = new EndEvent();
    endEvent.setId("endEvent");
    endEvent.setName("结束节点");
    endEvent.setIncomingFlows(Arrays.asList(flow3));
    process.addFlowElement(start);
process.addFlowElement(flow1);
process.addFlowElement(userTask1);
process.addFlowElement(flow2);
process.addFlowElement(userTask2);
process.addFlowElement(flow3);
process.addFlowElement(endEvent);
bpmModel.addProcess(process);
DeploymentBuilder deploymentBuilder = repositoryService.createDepolyment().addBpmnModel(resouces,bpmnModel);
Deployment deployment = deploymentBuilder.deploy();
}

下图对以上流程更通俗易懂:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值