开始

基于.NET平台,研发Smartflow-Sharp工作流组件,该工作流组件包含工作流引擎、工作流流程设计器,支持流程在线设计。工作流引擎负责提供对流程的解析,并驱动流程的流转,是工作流组件核心部件。流程设计器是基于SVG研发,支持所有主流浏览器,IE浏览器只支持IE9以上的版本。为了便于后续扩展,支持其他的数据库的访问,经过慎重考虑采用NHibernate组件,适用所有主流数据库系统访问。目前,默认只支持 MSSQLSERVER数据库,若想使用其他的数据库,后续我会在合适的时间提供相关建库脚本。

准备

为了确保示例的正常运行,我们先需要安装示例所需的运行环境。

a) MSSQLSERVE2008
b) NetCore Framework3.1 以上的框架
c) WebApi
d) IIS7.5
e) VS2019 开发工具

启动

下载工作流组件源码压缩包,然后解压打开项目文件夹,在MSSQLSERVER2008中按顺序执行SQL文件夹下SQL脚本,执行完成后会创建Smartflow.Core数据库。在VS中打开项目解决方案,找到Samples\Smartflow.Samples和src\Smartflow.Core的配置文件,调整访问数据库连接字符串,然后直接在IIS上部署,部署好后通过如下面地址查看。
注意:Samples\Smartflow.Samples 项目中找到common.js 文件,调整prefix(Samples部署地址)/smf(流程引擎部署地址)/pending(任务待办页面地址) 三个字段配置。

一、web浏览地址:http://ip:port/login.html
二、工作流组件Swagger地址:http://ip:port/swagger/index.htm

集成

工作流组件采用WebApi方式提供接口与业务系统进行交互。这样开发人员只需要关注具体的业务功能实现,不用过于关注流程后台的实现方式,由工作流组件帮助你实现,这样简化集成复杂性。 Smartflow.Samples是示例项目;Smartflow.Core是API项目,所有工作流接口和页面都封装在此项目中。

工作流组件集成到业务系统中,我将其分为数据库、基础数据、流程设计器等三个部分,逐一阐述集成步骤。

数据库

Smartflow.Core库是工作流组件的基础数据库,流程节点、实例都是存储在这里。在将工作流组件集成到业务系统中,必须将Smartflow.Core库整体拷贝过去。 在Smartflow.Core.t_wf_Category表中初始化配置业务类型,流程模板是与业务类型进行绑定的。

基础数据

为了与业务系统基础数据对接,调整src\Smartflow.Bussiness\Resource\Smartflow.Bussiness.hbm.xml 映射文件,直接读取业务系统基础数据。

流程设计器

流程设计器是提供定义业务流程的工具,通过图形化组合方式模拟现实中业务流程。Smartflow.Samples项目已经集成好页面,建议整体拷贝示例中Samples\Smartflow.Samples\wwwroot\wf文件夹到自已的业务系统中,直接在项目中使用。

流程设计工具

在流程设计工具中我们通过定义不同的图形方式,来模拟现实中业务环节,通过连线的方式表示业务环节的走向,最终形成一个完整的业务流程。 目前流程设计工具支持上下左右连线,且支持折线连接。

定义元素

元素属性设置

a) 连线:设置业务流程走向名称;
b) 任务:设置业务环节节点的名称,配置业务环节参与者;
c) 分支网关:提供基于自定义条件设定,依据条件动态判定业务流转方向;
d) 分叉/聚合网关:两组元素是成对出现的,表示流程是并行流转;
g) 开始/结束:表示业务流程开始和结束。

流程引擎

流程引擎是工作流组件核心部分,本节对流程引擎设计思想进行介绍,以让你更加了解工作流引擎运行机制。

服务容器

WorkflowGlobalServiceProvider是整个流程引擎的服务提供者,贯穿整个流程引擎组件。为了使流程引擎中的服务方便维护管理,流程引擎在设计的的时候引入类似服务容器WorkflowGlobalServiceProvider,即流程引擎中所有的服务是通过容器进行管理。

邮件

工作流引擎组件提供已经封装好的邮件服务,在使用邮件服务的时候,需要在数据库T_MAIL表中进行配置SMTP账户信息,配置好后,后续流程中做的任何一个动作,流程引擎都会向指定的人发送邮件。

FQA问题汇总

1、VS2019 打开解决方案编译不通过 答:请在NuGet的控制台里执行如下命令:
update-package -project Smartflow.Samples -reinstall

2、使用VS2019打开项目解决方案,发现Samples\Smartflow.Samples和src\Smartflow.Core 项目未正常正加载 答:请使用管理员的方式打开VS,然后再打解决方案

未来

作者会对Smartflow-Sharp工作流组件,一直负责到底。未来,我会对工作流管理组件增加更多实用性的功能,以便你能将工作流组件更加快速的融入到业务系统中。期望,能打造成符合中国特色工作流管理平台,造福更多企业和开发人员。如果你觉得能帮助到你,欢迎帮忙推荐。

技术支持/商务合作

qq邮箱:237552006@qq.com