public void parallel_build_test01() {
BpmnModelInstance modelInstance = Bpmn.createExecutableProcess("process")
.startEvent()
.subProcess()
.embeddedSubProcess()
.startEvent()
.inclusiveGateway("inclusive_open")
.condition("br_1", "${type=='all' or ids.contains('s01')")
.serviceTask()
.exclusiveGateway("exclusive_in")
.receiveTask()
.inclusiveGateway("inclusive_close")
.moveToLastGateway()
.connectTo("inclusive_close")
.moveToNode("inclusive_open")
.condition("br_2", "${type=='all' or ids.contains('u01')")
.userTask("u01")
.connectTo("inclusive_close")
.moveToNode("inclusive_open")
.condition("br_3", "${type=='all' or ids.contains('u02')")
.userTask("u02")
.connectTo("inclusive_close")
.exclusiveGateway("exclusive_in_out")
.condition("inclusive_result1", "${localPass==1}")
.endEvent("sub_end")
.moveToLastGateway()
.condition("inclusive_result2", "${localPass==0}")
.endEvent("terminate_end1")
.subProcessDone()
.exclusiveGateway("exclusive_out")
.condition("out_result1", "${pass==1}")
.endEvent("process_end")
.moveToLastGateway()
.condition("out_result2", "${pass==0}")
.endEvent("terminate_end2")
.done();
创建终止结束事件
EndEvent terminateEnd1 = modelInstance.getModelElementById("terminate_end1");
TerminateEventDefinition terminateEventDefinition1 = modelInstance.newInstance(TerminateEventDefinition.class);
terminateEnd1.addChildElement(terminateEventDefinition1);
EndEvent terminateEnd2 = modelInstance.getModelElementById("terminate_end2");
TerminateEventDefinition terminateEventDefinition2 = modelInstance.newInstance(TerminateEventDefinition.class);
terminateEnd2.addChildElement(terminateEventDefinition2);
// 验证并写入模型到文件
Bpmn.validateModel(modelInstance);
Bpmn.writeModelToFile(new File("parallelBuild.bpmn"), modelInstance);
}
手动添加终止结束事件
最新推荐文章于 2024-09-15 19:46:31 发布