activiti7自动生成工作流节点连接不正常问题

该博客介绍了如何使用BPMN进行流程建模,包括创建开始事件、结束事件、服务任务、用户任务、排他网关及序列流,并通过BpmnAutoLayout进行布局。然后,将建模的流程转换为JSON格式,利用BpmnJsonConverter进行转换,并在模型服务中保存。整个过程展示了BPMN模型到实际工作流系统的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        Process process = new Process();
        BpmnModel model = new BpmnModel();
        model.addProcess(process);
        process.setId("multiple-process1113");
        process.setName("测试流程");

        StartEvent startEvent = createStartEvent();
        EndEvent endEvent = createEndEvent();
        ServiceTask rejectService = createServiceTask("审核不通过");
        ServiceTask approveService = createServiceTask("审核通过");
        UserTask userTask = createUserTask("中药师审核", "1'");
        ExclusiveGateway gateway = createExclusiveGateway();

        process.addFlowElement(startEvent);
        process.addFlowElement(userTask);
        process.addFlowElement(gateway);
        process.addFlowElement(rejectService);
        process.addFlowElement(approveService);
        process.addFlowElement(endEvent);
        SequenceFlow flow1 = createSequenceFlow(startEvent.getId(), userTask.getId(), null, null);
        startEvent.setOutgoingFlows(Arrays.asList(flow1));
        process.addFlowElement(flow1);
        SequenceFlow flow2 = createSequenceFlow(userTask.getId(), gateway.getId(), null, null);
        userTask.setOutgoingFlows(Arrays.asList(flow2));
        process.addFlowElement(flow2);
        SequenceFlow flow3 = createSequenceFlow(gateway.getId(), rejectService.getId(), "审核通过", "${agree==true}");
        process.addFlowElement(flow3);
        SequenceFlow flow4 = createSequenceFlow(gateway.getId(), approveService.getId(), "审核不通过", "${agree==false}");
        process.addFlowElement(flow4);
        gateway.setOutgoingFlows(Arrays.asList(flow3, flow4));
        SequenceFlow flow5 = createSequenceFlow(rejectService.getId(), endEvent.getId(), null, null);
        rejectService.setOutgoingFlows(Arrays.asList(flow5));
        SequenceFlow flow6 = createSequenceFlow(approveService.getId(), endEvent.getId(), null, null);
        approveService.setOutgoingFlows(Arrays.asList(flow6));
        process.addFlowElement(flow5);
        process.addFlowElement(flow6);

        BpmnAutoLayout layout = new BpmnAutoLayout(model);
        layout.execute();

        // 转换成json 
        BpmnJsonConverter jsonConverter = new BpmnJsonConverter();
        ObjectNode objectNode = jsonConverter.convertToJson(model);
        String modelId = modelService.createDefaultModel(null, "test", "test", "test");
        repositoryService.addModelEditorSource(modelId, 
        objectNode.toString().getBytes("utf-8"));

节点需要设置setOutgoingFlows   否则显示json不正确

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值