请教如何实现 BPMN 图自动布局的其他实现方法?

2021-11-07 13:34:58 +08:00
 devilte

有一个功能是, 后端通过算法生成一个 BPMN 图出来给前端, 但是图形里所有节点元素的位置都是 x=0 y=0. 需要有一个 自动布局 BPMN 的工具来实现这个 BPMN 图在画布里呈现出来的是可读(有布局) 的效果.

目前在用的是bpmn-auto-layout这个 js 工具库, 但是发现有以下问题:

  1. 解析不了后端生成的 BPMN 图形, 源码里各种报错, 但是该数据上传到 bpmn-js 线上编辑器能正常上传;后面下了源码改了一点点入口代码勉强能解析, 但是还是会有些 BPMN 传进去报错;

  2. 最近遇到部分 BPMN 数据直接导致页面卡死, 必须从任务管理器强关才行, 怀疑是 bpmn-auto-layout 内部代码陷入死循环;

  3. 这个库看起来也没人维护了

目前暂时也没有发现其他类似功能的前端库, 或者是有只是我没找到?

改库里的源码或者自己写一个都需要大量时间, 甚至效果并不理想,目前时间还挺急的.

所以来请教万能的 Ver 们有没有解决方案, 跪谢~

python 有类似的功能库的话也可推荐一下😬

1820 次点击
所在节点    JavaScript
2 条回复
mouxinzi
2021-11-08 14:38:25 +08:00
我们是用 bpmn-moddle 解决图元问题
所有节点都是 x=y=0 那看看能不能在生成 bpmn.xml 的时候 解决这个问题
devilte
2021-11-08 16:33:34 +08:00
@mouxinzi 我们 bpmn.xml 的生成是算法根据流程数据 计算出数据关系然后生成的,所以位置信息不属于他们关心的?或者是 python 那边没有类似的布局库,所以就放在前端做布局。

不过昨天正发愁的时候,无意中找到了 java 有一个叫 activiti 的库,里面有我们需要的 bpmn 的自动布局功能,刚好我们的后端服务是 java ,就把文档和使用案例都发给 java 那边,让他们在中间做一下处理后再给前端,现在基本满足了这个需求,目前还没发现是否有其他附带问题。

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

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

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

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

© 2021 V2EX