美文网首页
流程引擎之Camunda开发记录(七)从中间节点开启实例

流程引擎之Camunda开发记录(七)从中间节点开启实例

作者: _花 | 来源:发表于2022-04-26 19:20 被阅读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());

相关文章

网友评论

      本文标题:流程引擎之Camunda开发记录(七)从中间节点开启实例

      本文链接:https://www.haomeiwen.com/subject/opxlertx.html