开源工作流引擎(含流程设计器)

工作流引擎

源码

该流程引擎完全开源免费,致力于打造与平台组织架构无关、高扩展的工作流引擎。
通过自定义用户选择器和条件处理器实现既有业务的组织架构关联和审批过程处理。

开源工作流引擎(含流程设计器)_第1张图片

开源工作流引擎(含流程设计器)_第2张图片

开源工作流引擎(含流程设计器)_第3张图片

使用介绍

直接从git下载源码编译。
建议以分布式子系统或者微服务形式部署。
项目自带流程编辑器,以及 简单的流程模拟功能.

后台结构介绍

开源工作流引擎(含流程设计器)_第4张图片

WorkFlowCore

是整个引擎的核心,核心通过抽象,允许 部分功能通过外部扩展

WorkFlowCore.Framework

是抽象的其中一个扩展,默认实现了以json文件为持久化的仓储 Repository和两个事件处理demo

WorkFlowCore.Host

是web服务的启动项目,在这里写接口代码

WorkFlowCore.Selector

是抽象的其中一个扩展,默认实现两个 用户选择器和条件处理器,

WorkFlowCore.Test

单元测试

需要自己实现的内容:

Repository

框架默认实现的只是一个以json文件为持久化的仓储,实际使用应该实现自己的持久化程序,实现 IBasicRepository 接口,将程序注册到容器服务中。

开源工作流引擎(含流程设计器)_第5张图片

开源工作流引擎(含流程设计器)_第6张图片

开源工作流引擎(含流程设计器)_第7张图片

实现自己的用户选择器

不同项目的组织架构不同,这也是为什么要写这个框架,就是要把用户的选择从框架中抽取出来。
实现自定义用户选择器需要实现 IUserSelector 接口:
GetSelections 方法返回用户的选项类型,可以返回一些类型(比如角色,职位等组织架构信息)也可以直接返回用户列表

GetUsers 方法是在流程审批过程中,结合流程的各项参数去解析获取实际的用户数据,这里返回的是根据条件匹配到的用户列表。

开源工作流引擎(含流程设计器)_第8张图片

自己实现的选择器需要注册到容器服务中
开源工作流引擎(含流程设计器)_第9张图片

实现自己的条件处理器

一般的条件处理使用默认的条件处理可以完成,但是需要复杂的条件处理就需要自定义实现。比如需要根据表单中某个值去获取其它信息进行判断,就需要自己解析。
具体解析要看表单数据格式,具体问题具体分析。

要自定义 条件处理器 需要实现 ICondition 接口,该接口只有一个方法 CanAccept,结合流程数据判断某个路径是否能走。

开源工作流引擎(含流程设计器)_第10张图片

注册选择器到容器服务中
开源工作流引擎(含流程设计器)_第11张图片

事件扩展

目前系统提供 流程推送事件和流程结束事件,需要实现更多扩展功能比如通知处理流程,流程结束后推送消息之类的需求,需要自己实现
ISendTaskEventHandler 和 ITaskFinishedEventHandler

实现的事件扩展需要注册到服务中

开源工作流引擎(含流程设计器)_第12张图片

你可能感兴趣的:(c#,c#,vue.js,工作流,workflow)