基于Metronic的Bootstrap开发框架--工作流模块功能介绍
在很早之前的随笔里面,已经介绍了WInform框架中工作流模块的功能,不过由于工作流模块中界面处理部分比较麻烦,一直没有在Bootstrap框架中进行集成,最近由于项目的关系,花了不少精力,把工作流模块重新梳理迁移到Bootstrap框架上,本篇随笔主要介绍基于Metronic的Bootstrap开发框架的工作模块功能。
1、工作流的设计模型
在我们开始介绍工作流模块功能之前,我们需要了解下工作流模块的设计模型,以便我们更好深入了解各个部分的功能。
我们知道,我们在Office里面创建任何文档,都有一个模板的概念,这样我们方便利用一些现成的数据和布局,工作流也一样,有一个流程模板的概念。每个流程模板,本身会预定义了一系列的处理流程,以便在流程实例里面进行不同的处理,因此流程模板还包含了多个流程步骤对象。每个流程实例,除了他们自己的流程数据和字段信息外,它本身还有一个表单设计的问题,如费用审批,可能包含填写的费用清单数据等,所以流程实例还应该包含了流程的业务表单对象。
在工作流处理表中,首先我们区分流程模板和流程实例两个部分,这个其实就是类似模板和具体文档的概念,我们一份模板可以创建很多个类似的文档,文档样式结构类似的。同理,流程模板实例为流程实例后,就是具体的一个流程表单信息了,其中流程模板和流程实例表单都包括了各个流程步骤。在流程实例的层次上,我们运行的时候,需要记录一些日志方便跟踪,如流程步骤的处理日志,流程实例表单的处理日志等这些信息。
一旦流程实例根据模板创建后,流程先根据模板初始化后,在处理过程还可以动态增加一些审批步骤,使得我们的处理更加弹性化。
当然,为了更好的处理流程的相关信息,还需要记录流程处理人,流程会签人、流程阅办人,以及常用审批意见等相关辅助表,以便对流程的各个处理信息进行合理处理和展示。
对于一个流程处理操作,我们知道一般有审批通过、拒绝、退回到某步骤、转发到内部阅读、阅读,以及包括起草者能撤销表单呢等操作,当然如果还有一些具体的业务,可能还会有一些流程的处理才操作,不过基本上也可以归结为上面几种,只是他们每步处理的数据内容不同而已。因此审批的操作步骤分类如下所示。
在流程审批中,一般还有一种流程处理就是会签的操作,会签处理是几个审批步骤中审批人同时处理是否通过的,一般同时通过即为通过。
会签是指创建一个或多个子流程供相关人员进行审批,等待全部人员完成处理后再次回到主流程上,然后决定是否继续流转到下一个流程步骤上去,一般的申请单的主流程如下所示。
这里设置的会签处理就是其中一个步骤,一旦会签处理步骤发起会签,就会构建多个可供审批的子流程了,如下所示。
在会签发起的步骤,指定参与具体流程会签审批的人员,然后流程则会流转到不同人员进行相关的处理【待办事项】。
我在工作流中定义会签完成后,由会签发起人审核(会签结果审核),决定是否进入下一步流程,在审核过程中决定如何处理这个申请单。
2、工作流模块介绍
1)流程环节管理
从上面的基础知识介绍中,我们知道,流程环节是构成流程模板和流程实例的基本单元,我们需要定义不同类型的流程处理环节,如审批、会签、阅办等等,不同类型的流程环节,在流程步骤的处理环节中是不一样的,我们也为这些不同的环节定义不同的审批界面。
首先我们在Bootstrap框架的系统菜单中选择【工作流管理】【工作流维护】【流程环节管理】菜单,就可以进入对应的流程环节管理界面。
在流程环节管理界面中,会列出系统所有定义好的流程环节,我们也可以定义自己的流程步骤。
在系统主界面里面,我们一般已经预定义了一些常规的如审批、会签、阅办、归档等类型,我们如果需要定义特殊的审批界面,我们就可以在这里定义一些不同的流程环节,也可以对已有的环节进行一定的修改处理。
2)流程模板管理
通过第一步的流程环节定义,我们接下来就基于流程环节,定义流程模板的内容了,流程模板是我们开展一些工作流的基础,也就是说,我们先有特定流程的模板,然后才有具体的流程示例。
流程模板我们定义的时候,需要指定它的具体名称,另外有几个字段是必须注意的,就是它的对应业务表名和创建流程URL、查看流程URL这几个信息。
指定这些内容,我们在指定的视图页面中处理不同的流程信息,创建在Create视图、查看在ViewDetail视图,其中还会包含一个index视图列出该类型的申请单,这几个列表都可以使用代码生成工具快速生成,具体代码的生成过程,我会在随后的文章中及进行详细介绍。
这样的自动化,可以迅速提高我们开发工作流业务的效率,并且和整个系统风格保持统一。这个就是我们整个开发框架系列的精髓所在,以工具提高效率,统一过程。
再次回到流程模板的处理来,我们刚才只是定义了流程模板的一些基础信息,对于这个流程模板,我们还需要确定它的流程步骤,这个才是工作流的灵魂所在,动态化的流程步骤,可以满足我们大多数变化流程的需要。
流程步骤的定义,如下界面所示,可以指定流程处理人,通过选定角色、部门或者具体人员都可以,如果没有选择具体的处理人,那么默认会以当前用户部门的人员供选择。
如但用户选择人员的时候,弹出层可以根据组织机构、角色进行用户的筛选和选择。
3)业务受理列表
业务受理列表,是根据我们数据库中定义的流程模板,动态列出申请单的创建入口,提供一个统一的入口方便我们处理。
一下是我们工作流模块中定义好的一些流程模板,可以供创建业务表单。
这些业务表单入口,单击后就可以创建对应类型的申请单了,我们以刚才介绍的请假申请为例,单击后进入请假申请单的Create视图界面,创建新的申请。
其他的业务申请单也是类似,我们只需要使用代码生成工具Database2Sharp对具体业务表单的工作流模块代码进行生成后,就可以配置使用,并且可以创建对应的业务表单的了。
对于一些具有明细表单的操作,也有案例可以供参考。
4)我的审批工作
我的审批工作是列出和我相关的审批表单,包括已办、待办、 发起的几种类型的分类,其中每个种类型又可以继续细化不同表单类型,方便我们快速选择查看,如下列表所示。
通过快速定位所需要的类型申请单,我们可以很好的完成一些待办工作,以及可以查看自己参与的流程申请单的处理情况等等。
双击其中的申请单,可以查看具体的申请详细信息,包括流程审批信息和业务表单信息等。
而如果是流程处理中的申请单,我们可以在相关的处理按钮中执行我们自己的审批操作。
5)所有申请单
所有申请单是提供一个给流程管理员的一个入口,方便对一些错误或者不需要的申请单进行删除等维护操作。
这里面列出的是系统所有的申请单,这个页面一般不暴露给普通用户,而是作为后台数据管理的一个页面,对不需要的数据进行删除操作的。
6)我的草稿
我的草稿是提供一个界面维护我自己的申请单草稿的,界面效果如下所示。
在我们创建申请单的时候,有时候录入数据后暂时想存起来而不提交的话,保存为草稿就可以,下次则可以直接从草稿中继续申请单的处理。
基于Metronic的Bootstrap开发框架--工作流模块功能介绍的更多相关文章
- 基于Metronic的Bootstrap开发框架--工作流模块功能介绍(2)
本篇继续<基于Metronic的Bootstrap开发框架--工作流模块功能介绍>,继续介绍基于Metronic的Bootstrap开发框架的工作模块功能,介绍工作流模块中相关业务表单的界 ...
- 基于Metronic的Bootstrap开发框架经验总结(8)--框架功能总体界面介绍
在前面介绍了一系列的<基于Metronic的Bootstrap开发框架经验总结>的随笔文章,随笔主要是介绍各个知识点的内容,对框架的总体性界面没有很好的阐述,本篇随笔主要介绍这个Boots ...
- 基于Metronic的Bootstrap开发框架经验总结(13)--页面链接收藏夹功能的实现2(利用Sortable进行拖动排序)
在上篇随笔<基于Metronic的Bootstrap开发框架经验总结(12)--页面链接收藏夹功能的实现>上,我介绍了链接收藏夹功能的实现,以及对收藏记录的排序处理.该篇随笔主要使用功能按 ...
- 基于Metronic的Bootstrap开发框架经验总结(12)--页面链接收藏夹功能的实现
在一个系统里面,往往有很多菜单项目,每个菜单项对应一个页面,一般用户只需要用到一些常用的功能,如果每次都需要去各个层次的菜单里面去找对应的功能,那确实有点繁琐.特别是在菜单繁多,而客户又对系统整体不熟 ...
- 基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理
最近一直很多事情,博客停下来好久没写了,整理下思路,把最近研究的基于Metronic的Bootstrap开发框架进行经验的总结出来和大家分享下,同时也记录自己对Bootstrap开发的学习研究的点点滴 ...
- (转)基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理
http://www.cnblogs.com/wuhuacong/p/4757984.html 最近一直很多事情,博客停下来好久没写了,整理下思路,把最近研究的基于Metronic的Bootstrap ...
- 基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用
Bootstrap文件上传插件File Input是一个不错的文件上传控件,但是搜索使用到的案例不多,使用的时候,也是一步一个脚印一样摸着石头过河,这个控件在界面呈现上,叫我之前使用过的Uploadi ...
- 基于Metronic的Bootstrap开发框架经验总结(11)--页面菜单的几种呈现方式
在常规的后台管理系统或者前端界面中,一般都有一个导航菜单提供给用户,方便选择所需的内容.基于Metronic的Bootstrap开发框架,是整合了Metroinc样式,以及Boostrap组件模块的内 ...
- 基于Metronic的Bootstrap开发框架经验总结(10)--优化Bootstrap图标管理
在基于Bootstrap开发的项目中,鲜艳颜色的按钮,以及丰富的图表是很吸引人的特点,为了将这个特点发挥到极致,可以利用Bootstrap图标抽取到数据库里面,并在界面中进行管理和使用,这样我们可以把 ...
随机推荐
- Mybatis学习笔记之二(动态mapper开发和spring-mybatis整合)
一.输入映射和输出映射 1.1 parameterType(输入类型) [传递简单类型] 详情参考Mybatis学习笔记之一(环境搭建和入门案例介绍) 使用#{}占位符,或者${}进行sql拼接. [ ...
- [三]基础数据类型之Integer详解
Integer 基本数据类型int 的包装类 Integer 类型的对象包含一个 int 类型的字段 属性简介 值为 2^31-1 的常量,它表示 int 类型能够表示的最大值 @N ...
- iframe跨域通信实战
"长时间不写文章,开头的方式总是那么出奇的相似",最近很忙,好久没写博客了啊(是不是?). 更换工作已经有三个月有余,这段三个月把过去三年没加过的班都加了一次.收获挺多,发现的问题 ...
- jsp基础语言-jsp异常
JSP异常 jsp页面执行时会出现两种异常,实际是javax.servlet.jsp包中的两类异常JsError和JspException. 1.JsError 在jsp文件转换成servlet文件时 ...
- vue+axios 前端实现的常用拦截
一.路由拦截使用 首先在定义路由的时候就需要多添加一个自定义字段requireAuth,用于判断该路由的访问是否需要登录.如果用户已经登录,则顺利进入路由,否则就进入登录页面,路由配置如下: cons ...
- 谷歌浏览器扩展程序manifest.json参数详解
{ // Required "manifest_version": 2, // manifest编写规范版本,目前主流2 "name": "My Ex ...
- 简易仿ios菊花加载loading图
原文链接:https://mp.weixin.qq.com/s/wBbQgOfr59wntNK9ZJ5iRw 项目中经常会用到加载数据的loading显示图,除了设计根据app自身设计的动画loadi ...
- matlab练习程序(渲染三原色)
这里我用的空间是x向右为正,y向下为正,z向屏幕里面为正.相当于标准右手系绕x轴旋转了180度. 将三个点光源放在 r = [0.3,0,0.5];g = [0.3,-0.5*cos(pi/6),-0 ...
- ORA-02030: can only select from fixed tables/views
有时候给一些普通用户授予查询系统对象(例如dynamic performance views)权限时会遇到"ORA-02030: can only select from fixed tab ...
- C# List集合去重使用lambda表达式
name age sex Lucy 22 woman Lily 23 woman Tom 24 man Lucy 22 woman Lily 23 woman LiLei 25 man List< ...