V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
flushEvt
V2EX  ›  程序员

camunda+springboot 怎么添加边界事件

  •  
  •   flushEvt · 2023-09-05 16:05:55 +08:00 · 577 次点击
    这是一个创建于 470 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在尝试使用 camunda 做流程引擎,正常的流程还好。现在遇到边界事件时遇到了困难,新增一个边界事件,去发布的时候,会报

    ENGINE-16004 Exception while closing command context: ENGINE-09005 Could not parse BPMN process. Errors:
    * Unsupported boundary event type | resource 11.bpmn | line 51 | column 162
    

    然后我还并不清楚这个比如条件边界事件如何去加 condition expression 。麻烦有没有大佬能解决一下。实在搞不明白这个……

    BoundaryEvent boundaryEvent = createElement(process, BpmnCons.CONDITION_BOUNDARY_ID_PREFIX + IdUtil.simpleUUID(), BoundaryEvent.class);
    boundaryEvent.setAttachedTo(userTask);
    boundaryEvent.setCancelActivity(false);
    
    SequenceFlow sequenceFlow1 = createSequenceFlow(process, boundaryEvent);
    
    FlowNode lastUserTask = nodeNameIdMap.get(processDefine.getBoundary());
    sequenceFlow1.setId(boundaryEvent.getId()+lastUserTask.getId());
    sequenceFlow1.setTarget(lastUserTask);
    lastUserTask.getIncoming().add(sequenceFlow1);
    
    Jrue0011
        1
    Jrue0011  
       2023-09-05 16:27:26 +08:00
    没深入用过 camunda ,你把代码生成的 bpmn 导出成文件,然后跟用 camunda modeler 直接画的对比试试?
    flushEvt
        2
    flushEvt  
    OP
       2023-09-05 16:37:35 +08:00
    已经找到啦
    flushEvt
        3
    flushEvt  
    OP
       2023-09-05 16:38:11 +08:00
    @Jrue0011 camunda 生成 bpmn 文件很麻烦,好像 activiti 有接口去生成。
    Jrue0011
        4
    Jrue0011  
       2023-09-05 16:51:12 +08:00
    @flushEvt model api 本身应该有提供方法能将 model instance 直接写入输出流或者字符串。因为我看你贴出来是代码画 bpmn ,有的时候容易漏了些必要的设置。

    我也是看贴出来的报错是解析 bpmn 出错报了不支持的类型,怀疑是代码没画对,因为记得 boundary event 是有类型的,比如 timer 、message 啥的,可能是需要设置类型啥的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1751 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:30 · PVG 00:30 · LAX 08:30 · JFK 11:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.