在很早以前的随笔里面,已经介绍了WInform框架中工做流模块的功能,不过因为工做流模块中界面处理部分比较麻烦,一直没有在Bootstrap框架中进行集成,最近因为项目的关系,花了很多精力,把工做流模块从新梳理迁移到Bootstrap框架上,本篇随笔主要介绍基于Metronic的Bootstrap开发框架的工做模块功能。数据库
在咱们开始介绍工做流模块功能以前,咱们须要了解下工做流模块的设计模型,以便咱们更好深刻了解各个部分的功能。框架
咱们知道,咱们在Office里面建立任何文档,都有一个模板的概念,这样咱们方便利用一些现成的数据和布局,工做流也同样,有一个流程模板的概念。每一个流程模板,自己会预约义了一系列的处理流程,以便在流程实例里面进行不一样的处理,所以流程模板还包含了多个流程步骤对象。每一个流程实例,除了他们本身的流程数据和字段信息外,它自己还有一个表单设计的问题,如费用审批,可能包含填写的费用清单数据等,因此流程实例还应该包含了流程的业务表单对象。工具
在工做流处理表中,首先咱们区分流程模板和流程实例两个部分,这个其实就是相似模板和具体文档的概念,咱们一份模板能够建立不少个相似的文档,文档样式结构相似的。同理,流程模板实例为流程实例后,就是具体的一个流程表单信息了,其中流程模板和流程实例表单都包括了各个流程步骤。在流程实例的层次上,咱们运行的时候,须要记录一些日志方便跟踪,如流程步骤的处理日志,流程实例表单的处理日志等这些信息。布局
一旦流程实例根据模板建立后,流程先根据模板初始化后,在处理过程还能够动态增长一些审批步骤,使得咱们的处理更加弹性化。设计
固然,为了更好的处理流程的相关信息,还须要记录流程处理人,流程会签人、流程阅办人,以及经常使用审批意见等相关辅助表,以便对流程的各个处理信息进行合理处理和展现。3d
对于一个流程处理操做,咱们知道通常有审批经过、拒绝、退回到某步骤、转发到内部阅读、阅读,以及包括起草者能撤销表单呢等操做,固然若是还有一些具体的业务,可能还会有一些流程的处理才操做,不过基本上也能够归结为上面几种,只是他们每步处理的数据内容不一样而已。所以审批的操做步骤分类以下所示。日志
在流程审批中,通常还有一种流程处理就是会签的操做,会签处理是几个审批步骤中审批人同时处理是否经过的,通常同时经过即为经过。orm
会签是指建立一个或多个子流程供相关人员进行审批,等待所有人员完成处理后再次回到主流程上,而后决定是否继续流转到下一个流程步骤上去,通常的申请单的主流程以下所示。对象
这里设置的会签处理就是其中一个步骤,一旦会签处理步骤发起会签,就会构建多个可供审批的子流程了,以下所示。blog
在会签发起的步骤,指定参与具体流程会签审批的人员,而后流程则会流转到不一样人员进行相关的处理【待办事项】。
我在工做流中定义会签完成后,由会签发起人审核(会签结果审核),决定是否进入下一步流程,在审核过程当中决定如何处理这个申请单。
1)流程环节管理
从上面的基础知识介绍中,咱们知道,流程环节是构成流程模板和流程实例的基本单元,咱们须要定义不一样类型的流程处理环节,如审批、会签、阅办等等,不一样类型的流程环节,在流程步骤的处理环节中是不同的,咱们也为这些不一样的环节定义不一样的审批界面。
首先咱们在Bootstrap框架的系统菜单中选择【工做流管理】【工做流维护】【流程环节管理】菜单,就能够进入对应的流程环节管理界面。
在流程环节管理界面中,会列出系统全部定义好的流程环节,咱们也能够定义本身的流程步骤。
在系统主界面里面,咱们通常已经预约义了一些常规的如审批、会签、阅办、归档等类型,咱们若是须要定义特殊的审批界面,咱们就能够在这里定义一些不一样的流程环节,也能够对已有的环节进行必定的修改处理。
2)流程模板管理
经过第一步的流程环节定义,咱们接下来就基于流程环节,定义流程模板的内容了,流程模板是咱们开展一些工做流的基础,也就是说,咱们先有特定流程的模板,而后才有具体的流程示例。
流程模板咱们定义的时候,须要指定它的具体名称,另外有几个字段是必须注意的,就是它的对应业务表名和建立流程URL、查看流程URL这几个信息。
指定这些内容,咱们在指定的视图页面中处理不一样的流程信息,建立在Create视图、查看在ViewDetail视图,其中还会包含一个index视图列出该类型的申请单,这几个列表均可以使用代码生成工具快速生成,具体代码的生成过程,我会在随后的文章中及进行详细介绍。
这样的自动化,能够迅速提升咱们开发工做流业务的效率,而且和整个系统风格保持统一。这个就是咱们整个开发框架系列的精髓所在,以工具提升效率,统一过程。
再次回到流程模板的处理来,咱们刚才只是定义了流程模板的一些基础信息,对于这个流程模板,咱们还须要肯定它的流程步骤,这个才是工做流的灵魂所在,动态化的流程步骤,能够知足咱们大多数变化流程的须要。
流程步骤的定义,以下界面所示,能够指定流程处理人,经过选定角色、部门或者具体人员均可以,若是没有选择具体的处理人,那么默认会以当前用户部门的人员供选择。
如但用户选择人员的时候,弹出层能够根据组织机构、角色进行用户的筛选和选择。
3)业务受理列表
业务受理列表,是根据咱们数据库中定义的流程模板,动态列出申请单的建立入口,提供一个统一的入口方便咱们处理。
一下是咱们工做流模块中定义好的一些流程模板,能够供建立业务表单。
这些业务表单入口,单击后就能够建立对应类型的申请单了,咱们以刚才介绍的请假申请为例,单击后进入请假申请单的Create视图界面,建立新的申请。
其余的业务申请单也是相似,咱们只须要使用代码生成工具Database2Sharp对具体业务表单的工做流模块代码进行生成后,就能够配置使用,而且能够建立对应的业务表单的了。
对于一些具备明细表单的操做,也有案例能够供参考。
4)个人审批工做
个人审批工做是列出和我相关的审批表单,包括已办、待办、 发起的几种类型的分类,其中每一个种类型又能够继续细化不一样表单类型,方便咱们快速选择查看,以下列表所示。
经过快速定位所须要的类型申请单,咱们能够很好的完成一些待办工做,以及能够查看本身参与的流程申请单的处理状况等等。
双击其中的申请单,能够查看具体的申请详细信息,包括流程审批信息和业务表单信息等。
而若是是流程处理中的申请单,咱们能够在相关的处理按钮中执行咱们本身的审批操做。
5)全部申请单
全部申请单是提供一个给流程管理员的一个入口,方便对一些错误或者不须要的申请单进行删除等维护操做。
这里面列出的是系统全部的申请单,这个页面通常不暴露给普通用户,而是做为后台数据管理的一个页面,对不须要的数据进行删除操做的。
6)个人草稿
个人草稿是提供一个界面维护我本身的申请单草稿的,界面效果以下所示。
在咱们建立申请单的时候,有时候录入数据后暂时想存起来而不提交的话,保存为草稿就能够,下次则能够直接从草稿中继续申请单的处理。