一个golang编写的基于状态机的工作流引擎。
此项目用于学习研究。
- db_script 数据库表结构参考,用于存储流程定义和流程实列信息。
- engine 基于状态机的流程引擎。
- entity 实体和接口定义。
- service 流程服务的实现,目前只提供了空的实现。
- util 辅助用的方法。
- extention 扩展能力,目前支持在流程节点进入和退出时,触发外部调用。
- xml——define 用xml定义流程节点信息的例子。
-
workflow 流程引擎,可以实例化。
-
flow 流程定义,一个流程会包含许多步骤(节点)。
-
status 流程节点,因为基于状态机所以取名status,一般会称为节点。
-
tansition 迁移,就是流程节点与节点之间的流向线条。
-
condition 条件,控制流程走向的条件,比如:金额 > 1000 就到更高级别领导审批。
-
paticipant 参与人,流程节点处理人的寻找规则。
-
flowcase 流程实例
-
choice 选择项,如:同意,不同意。
-
flowcaseservice 流程实例服务,包含流程实例的处理逻辑,与数据库存储的实现。
-
flowdefineservice 流程定义的管理逻辑,与数据存储实现。
-
orgservice 组织服务,配合参与人规则,负责具体的实现如何找到对应节点时的处理人。
- 没有实现会签,会审。
- 没有实现流程嵌套(子流程)。