流程引擎之Camunda开发记录(七)从中间节点开启实例
2022-04-26 本文已影响0人
_花
通过节点ID启动与通过连线ID启动有什么区别?
实际项目中连线可以配置执行监听器,走连线可以触发监听器
1、从节点之前开启
@Test
public void createProcessInstanceByKey() {
String processInstanceByKey = "leave";
String activityId = "Activity_1r8r4jn";
ProcessInstantiationBuilder processInstantiationBuilder = runtimeService.createProcessInstanceByKey(processInstanceByKey);
ProcessInstance processInstance = processInstantiationBuilder.businessKey("001")
//某节点之前开始
.startBeforeActivity(activityId)
.execute();
System.out.println(processInstance.getId() + "," + processInstance.getBusinessKey() + "," + processInstance.getProcessDefinitionId());
}
2、从连线处开启
@Test
public void createProcessInstanceByKey2() {
String processInstanceByKey = "leave";
String activityId = "Flow_1c279og";
ProcessInstantiationBuilder processInstantiationBuilder = runtimeService.createProcessInstanceByKey(processInstanceByKey);
ProcessInstance processInstance = processInstantiationBuilder.businessKey("001")
//从连线开始触发
.startTransition(activityId)
.execute();
System.out.println(processInstance.getId() + "," + processInstance.getBusinessKey() + "," + processInstance.getProcessDefinitionId());
}
3、从节点之后开启
@Test
public void createProcessInstanceByKey3() {
String processInstanceByKey = "leave";
String activityId = "Activity_0zafxq7";
ProcessInstantiationBuilder processInstantiationBuilder = runtimeService.createProcessInstanceByKey(processInstanceByKey);
ProcessInstance processInstance = processInstantiationBuilder.businessKey("001")
//某节点之后
.startAfterActivity(activityId)
.execute();
System.out.println(processInstance.getId() + "," + processInstance.getBusinessKey() + "," + processInstance.getProcessDefinitionId());
}
4、跳过监控
@Test
public void createProcessInstanceByKey4() {
String processInstanceByKey = "leave";
String activityId = "Activity_0zafxq7";
//跳过监听器
boolean skipCustomListeners = true;
boolean skipIoMappings = true;
ProcessInstantiationBuilder processInstantiationBuilder = runtimeService.createProcessInstanceByKey(processInstanceByKey);
ProcessInstance processInstance = processInstantiationBuilder.businessKey("001")
.startAfterActivity(activityId)
.execute(skipCustomListeners, skipIoMappings);
System.out.println(processInstance.getId() + "," + processInstance.getBusinessKey() + "," + processInstance.getProcessDefinitionId());