今天上午抽时间调研了一下如何实现使用python读取数据动态生成业务流程图的方法。
总结来讲,可能实现的方案有两个,涉及问题一个。
调研关键词: 流程图 自动生成 python visio 挖掘 等
1. 用Python调用Graphviz来实现复杂的流程图生成
可参考网址:
一个例子:
https://my.oschina.net/u/4608163/blog/4487632
https://blog.csdn.net/Jhone_csdn/article/details/88975961?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-14.control&dist_request_id=a64112af-2a84-4f51-8537-ad7e15dd320b&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-14.control
(问题是如何实现拖拽流程图呢?)
类似的其它库或方案:
https://www.cnpython.com/qa/123618
https://www.it1352.com/833470.html
https://www.cnblogs.com/allen2333/p/10163860.html
vue+g6
https://blog.csdn.net/qq_32352777/article/details/88047406?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161424288716780357236676%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161424288716780357236676&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-19-88047406.first_rank_v2_pc_rank_v29_10&utm_term=%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%81%E7%A8%8B%E5%9B%BE
可拖拽流程图的实现+代码按流程图执行
https://www.bthlt.com/go/#/report
2. 使用python控制visio进行流程图生成
如果原始数据是微软系,可以用python直接读取visio
查了一下,用win32com来实现
这里论证了这个的可能性:
https://zhuanlan.zhihu.com/p/137882288
用python来控制visio的sdk,上面文章引用这个贴子,里面说的比较清楚了应该:
https://stackoverflow.com/questions/33488183/use-vss-stencil-file-to-generate-shapes-by-python-code-use-vdx?noredirect=1
解决闪烁问题
http://www.cocoachina.com/articles/38936
visio见
https://www.jianshu.com/p/ae5177be824d
—
这个文章对流程图的定义和相关工具介绍的比较清楚
中提到的这个工具可以生成流程图,但导出的数据是加密的,看起来不可用。
https://app.diagrams.net/
https://app.creately.com/
3. 关于是否支持手动拖动
前面两个方案哪个支持手动拖动,需要具体实验验证。
这里讨论了这个问题的可行性
https://www.tapd.cn/forum/view/59231
如果是页端,前端的js
https://blog.csdn.net/ejufang/article/details/104233794/
这里提到jsplumb
https://www.zhihu.com/question/445412065
中文说明:
https://www.cnblogs.com/xcj26/p/9870734.html
一个实例:
https://www.jianshu.com/p/a3cd623cdbb7
随后看到一个国产的蚂蚁金服的g6 看起来效果不错
https://cloud.tencent.com/developer/article/1410551
在线演示:
https://www.bthlt.com/go/#/report
这里有个纯html5的拖拽
https://www.cnblogs.com/zjhr/p/8514001.html
canvas绘制
https://github.com/SharonHuang123/workflow
可拖拽的例子,
vue项目里引用Gojs画可拖拽流程图 但调研gojs可能是收费的
https://blog.csdn.net/WULIhuihui/article/details/108210547?utm_medium=distribute.pc_relevant_download.none-task-blog-BlogCommendFromBaidu-2.nonecase&dist_request_id=1fdbdbfc-40e6-4069-9eeb-9f0b8704395e&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-BlogCommendFromBaidu-2.nonecas
https://github.com/MrXiaoMings/AnimalFlow
这里有个动态点击和拖动的解决
https://stackoverflow.com/questions/5759878/is-there-an-interactive-graphing-library-for-python
4. 关于拖拽生成流程图的js
https://github.com/xiaojiwei/strawberry
https://github.com/TsangTszKin/flow-editor
https://github.com/search?q=%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%A8%8B%E5%9B%BE
5. 有向无环图可视化
https://www.jb51.net/article/174783.htm
https://zhuanlan.zhihu.com/p/40852672