camunda+springboot 怎么添加边界事件

2023-09-05 16:05:55 +08:00
 flushEvt

最近在尝试使用 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);
559 次点击
所在节点    程序员
4 条回复
Jrue0011
2023-09-05 16:27:26 +08:00
没深入用过 camunda ,你把代码生成的 bpmn 导出成文件,然后跟用 camunda modeler 直接画的对比试试?
flushEvt
2023-09-05 16:37:35 +08:00
已经找到啦
flushEvt
2023-09-05 16:38:11 +08:00
@Jrue0011 camunda 生成 bpmn 文件很麻烦,好像 activiti 有接口去生成。
Jrue0011
2023-09-05 16:51:12 +08:00
@flushEvt model api 本身应该有提供方法能将 model instance 直接写入输出流或者字符串。因为我看你贴出来是代码画 bpmn ,有的时候容易漏了些必要的设置。

我也是看贴出来的报错是解析 bpmn 出错报了不支持的类型,怀疑是代码没画对,因为记得 boundary event 是有类型的,比如 timer 、message 啥的,可能是需要设置类型啥的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/971128

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX