该流程引擎完全开源免费,致力于打造与平台组织架构无关、高扩展的工作流引擎。
通过自定义用户选择器和条件处理器实现既有业务的组织架构关联和审批过程处理。
直接从git下载源码编译。
建议以分布式子系统或者微服务形式部署。
项目自带流程编辑器,以及 简单的流程模拟功能.
WorkFlowCore
是整个引擎的核心,核心通过抽象,允许 部分功能通过外部扩展
WorkFlowCore.Framework
是抽象的其中一个扩展,默认实现了以json文件为持久化的仓储 Repository和两个事件处理demo
WorkFlowCore.Host
是web服务的启动项目,在这里写接口代码
WorkFlowCore.Selector
是抽象的其中一个扩展,默认实现两个 用户选择器和条件处理器,
WorkFlowCore.Test
单元测试
Repository
框架默认实现的只是一个以json文件为持久化的仓储,实际使用应该实现自己的持久化程序,实现 IBasicRepository 接口,将程序注册到容器服务中。
不同项目的组织架构不同,这也是为什么要写这个框架,就是要把用户的选择从框架中抽取出来。
实现自定义用户选择器需要实现 IUserSelector 接口:
GetSelections 方法返回用户的选项类型,可以返回一些类型(比如角色,职位等组织架构信息)也可以直接返回用户列表
GetUsers 方法是在流程审批过程中,结合流程的各项参数去解析获取实际的用户数据,这里返回的是根据条件匹配到的用户列表。
自己实现的选择器需要注册到容器服务中
一般的条件处理使用默认的条件处理可以完成,但是需要复杂的条件处理就需要自定义实现。比如需要根据表单中某个值去获取其它信息进行判断,就需要自己解析。
具体解析要看表单数据格式,具体问题具体分析。
要自定义 条件处理器 需要实现 ICondition 接口,该接口只有一个方法 CanAccept,结合流程数据判断某个路径是否能走。
注册选择器到容器服务中
目前系统提供 流程推送事件和流程结束事件,需要实现更多扩展功能比如通知处理流程,流程结束后推送消息之类的需求,需要自己实现ISendTaskEventHandler 和 ITaskFinishedEventHandler
实现的事件扩展需要注册到服务中
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习