在较早博客随笔里面写过文章《Winform开发框架之简易工作流设计》之后,很久没有对工作流部分进行详细的介绍了,本篇继续这个主题,详细介绍其中的设计、实现及效果给大家,这个工作流在好几年前就应用在了市行业审批系统上,经过不断的改造适合更广泛的审批流程处理,从最初的Web上扩展到WInform上,并从WInform框架到混合框架上都实现了不错的处理。
在工作流处理表中,首先我们区分流程模板和流程实例两个部分,这个其实就是类似模板和具体文档的概念,我们一份模板可以创建很多个类似的文档,文档样式结构类似的。同理,流程模板实例为流程实例后,就是具体的一个流程表单信息了,其中流程模板和流程实例表单都包括了各个流程步骤。在流程实例的层次上,我们运行的时候,需要记录一些日志方便跟踪,如流程步骤的处理日志,流程实例表单的处理日志等这些信息。
当然实际的流程实例里面需要记录很多信息,其中流程步骤日志、申请单处理日志等信息是必须要记录的,方便我们跟踪相关的处理记录。因此工作流业务表包含多两个日志记录的表,如下所示。
一旦流程实例根据模板创建后,流程先根据模板初始化后,在处理过程还可以动态增加一些审批步骤,使得我们的处理更加弹性化。
当然,为了更好的处理流程的相关信息,还需要记录流程处理人,流程会签人、流程阅办人,以及常用审批意见等相关辅助表,以便对流程的各个处理信息进行合理处理和展示。
下面是具体表单的查看信息,包含了相关的处理步骤信息,以及相关的流程日志信息。
详细表单查看界面如下所示。
流程日志分为几个部分:申请单处理日志、申请单处理历史信息、申请单系统日志等几个部分
对于一个流程处理操作,我们知道一般有审批通过、拒绝、退回到某步骤、转发到内部阅读、阅读,以及包括起草者能撤销表单呢等操作,当然如果还有一些具体的业务,可能还会有一些流程的处理才操作,不过基本上也可以归结为上面几种,只是他们每步处理的数据内容不同而已。因此审批的操作步骤分类如下所示。
如审批界面如下所示,里面包含了通过、拒绝,跳回到某步骤,增加步骤等功能集合。