.net工作流系统集成自定义表单
工作流系统一般都包含工作流引擎,工作流引擎是对业务流程的抽象,是实现流程自动化的微内核,利用工作流引擎的基本元素能搭建出各种各样的流程,但仅限于流程,不涉及到业务实现。
流程的每个节点上可以挂接需要处理的业务模块,例如一个简单的报销流程,如下图:在填写报销单的流程节点上,就可以挂接上 填写报销单 这样一个业务模块;到审批的节点上,挂接 审批报销单模块。
工作流引擎是不负责这些具体业务模块的实现的,否则就不是对业务流程的抽象了。
这些具体业务模块的实现,可以是开发人员做好的一些业务模块,也可以是用一些表单工具做的自定义业务表单。
无论是定制的业务模块,还是利用表单工具做的自定义表单,都需要在这些模块中集成流程。
好的工作流引擎都应该是封装好的,对外仅提供调用的api函数。这样才能方便的将流程与业务模块集成在一起。
工作流引擎对外提供的api应该包含:
流程的初始化函数:给定一个具体的业务流程名称,启动流程,获得一个流程实例id.
流程的执行函数 :给定一个具体的流程实例id, 执行他的任务,使得流程递进,达到流程的流转。
获得与修改流程实例的状态:获得与修改一个具体流程实例的状态。指流程实例的 激活,挂起,与 完成 等状态。
获得流程定义任意节点的信息:获得指定流程指定节点的任务信息,包括流程定义的属性,自定义信息等等。
。。。。。。。
在业务模块中,嵌入流程引擎的api函数的调用,启动一个流程,或 通过给定的流程实例id,去执行它的当前任务,将当前任务提交,使得流程流转。当然,业务模块的业务数据提交和流程的流转应该保持在一个事务中,达到流程的长事务一致性。
下面以eworkflow.net+eform.net为例,说明.net工作流系统与自定义表单系统的集成。
还是以报销流程为例,先将业务流程转换成eworkflow的流程。(流程图如上图中简单报销流程)
再设计好业务表,这里我们设计了两张表,报销主表和明细表。
从上面的流程中可以看出,需要有报销单填写模块,和审核模块。
用eform画好 报销单,如下:
注:eworkflow .net工作流系统中已经集成好了eform .net自定义表单系统了。表单属性中 选择 工作流工具栏
工作流工具栏也是用eform设计的一个页面,此页面中已经做好了和流程的集成。在表单提交到后台保存的之后,再执行流程的相应动作,达到流程的递进。
用eform画好 报销单的审核 如下:(同样在表单属性中,选择 工作流工具栏)
画好的页面保存在workflow\example_dj\目录中。
在流程设计器中,打开报销流程,在相应节点上挂接好 业务表单。
这样报销流程就设计好了,可以启动执行了。
有更细一些的控制,就在流程设计器中打开报销流程,修改流程节点的属性,或修改流程的流转。
在eform自定义表单系统的代码中已经有通用的模块集成了eworkflow .net工作流系统了,所以不需要再写代码调用流程api了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!