.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了。