开源项目 Ruby 开发的业务流程引擎有吗?

fengfans · 2019年04月22日 · 最后由 jasl 回复于 2019年04月27日 · 6896 次阅读

要搭一个业务流程引擎 (bpm),解决连接不同应用系统的业务流程,开发基于后端数据库的移动端应用,请求推荐。

github 上有一些基于有限状态机的,能解决 95%以上的场景。

你看能不能基于这个 https://github.com/geekq/workflow 来实现你想要的业务逻辑呢?

我实现了一个类似你这种需求的东西但是不保证能够满足你的需求,毕竟我是给我们公司定制的。代码不能开源但是可以给你提供一种思路。 需求背景:A 业务订单流程和 B 业务订单流程有相似之处但是也有不同的分支,比如 A 订单状态是 已支付--->待发货,而 B 业务是 已支付--->等待制作--->等待入库--->等待发货 C 业务又有其他的逻辑在里面等等。 这里 每个不同的业务我们把它想象成不同的模型

状态机我使用了 AASM, B 继承 A 将会获得和 A 一样的工作流,如果有不同的在 B 工作流中添加,或者重写就可以了。 以后如果想要实现工作流引擎 那么将会实现,后天管理页面中定制一个工作流 A,然后在已有状态中选择第一步执行什么然后到下一步是什么这种定制的可能。

kevinyu 回复

你这个是在同一个系统中,楼主要的是连接不同的应用系统。 基本上有状态机可以解决流程跳转问题,简单的会签通过子流程来设计也没问题。 跨系统流程,需要从权限体系上着手,流程引擎只解决流程模型和流程跳转,至于待办节点到了哪个应用系统,应由权限模型决定。这样流程和系统是解耦的,系统与流程引擎的交互是统一的。

另外也可以评估下 https://github.com/trailblazer/trailblazer-activity 不过这个局限是静态定义流程

需要 登录 后方可回复, 如果你还没有账号请 注册新账号