本文为通用流程化应用审批设计思路表单部分。
审批单结构分析
审批单承载流程化应用所需要的业务信息,以及业务操作处理入口。为了实现审批单与具体业务松藕、快速开发的目标,在此提出审批单框架的设计思路。如下图所示,审批单界面分为4个核心功能区域:
(1)功能按钮区:放置业务审批单功能按钮的区域,按钮可以分成三种类型:流程专用、业务专用、混合功能;
(2)特殊功能区:用于个性化业务、流程功能所使用功能按钮、下拉列表等;
(3)业务表单区:放置具体业务单据的区域,文件类业务可以隐藏此部分内容;
(4)审批意见区:是可以设置成显隐的区域,用于显示审批意见,对于文件类业务,直接显示个性化审批单。
界面操作功能,一般以按钮的形式存在,功能主要分为两大类,一是业务功能,在JavaScript代码中实现具体业务,另一种是流程功能,由框架及嵌入业务代码方式实现,例如“送出”操作,流程走到下一步,同时需要调用业务的保存数据的功能。
以“保存”按钮为例,保存操作在不同环节所实现的功能是不一样的,例如:申请时保存操作核心是插入并保存业务单据数据,而审批过程中,一般对业务数据是很少操作的,因此,在其他流程环节中,“保存”操作可能只是保存审批意见,以及操作流程。
在不同环节中使用不同的函数(方法),替换执行其“保存”操作,相当于有很多保存按钮定义在界面中,这样需要定义按钮,按钮也就相当于接口,动态加载类(代码),按环节定义来执行代码。
审批单设计及使用管理体系
审批单设计与流程关系紧密,与流程环节密不可分。在这里,重点谈审批单设计。
审批单设计为四层架构:
(1)界面展现层:用于展现界面功能、数据、样式等内容,主要使用JavaScript、HTML、CSS等技术;
(2)业务逻辑处理层:用于处理表单所涉及到的业务,也包含和流程相关的内容,在这里也算业务处理,主要使用JavaScript函数(接口)和Web Service API等技术;
(3)数据适配层:用于通过表单配置定义来转换表单数据为数据库可存储数据,以及业务处理可用数据,例如和流程相关的数据,主要使用Web Service等技术;
(4)数据操作处理层:用于表单数据在数据库层面的增、删、改、查处理,主要使用Web Service、Java等技术。
支持上述四层模型,另外需要支撑功能有:
(1)表单设计器:本方案使用Cordys XForm Designer做为快速开发平台,另外隐含有通用应用个性化配置;
(2)数据及功能定义:支持表单数据项灵活定义、审批单功能按钮显隐及功能定义、表单数据权限定义等。
审批单初始化及保存操作设计
如下图所示,通过序列图方式描述四个主要层次互动关系。图中,描述业务执行者打开审批单及保存操作时,界面及后台各层主要完成的操作。
(1)初始化界面(JavaScript函数),主要是完成界面加载操作,加载内容包括:按钮、数据项、审批意见和数据内容。其中初始化按钮、初始化数据项、初始化数据内容、审批意见显隐控制都可设计成JavaScript函数,可用在初始化界面主函数中调用。
例如界面层“2:初始化按钮(函数)”,通过“3:获取按钮显隐及功能定义”Web Service从“界面配置及表单定义”服务中取出配置信息,加载到界面层,而按钮的显隐还与流程环节相关,所以,还需通过“4:环节按钮个性化配置”Web Service从“流程环节配置及定义服务”中取出配置定义信息,转换到界面层展现处理。
(2)编辑数据项和添加审批意见,这里主要是界面层的操作及代码,其中添加意见是临时保存。
(3)保存操作,先保存意见,再保存其他业务数据。
例如界面层保存操作中调用“21:保存表单内容数据”Web Service从“审批单数据内容服务”中进行处理,处理主要是通过调用“审批单数据适配服务”中“22:数据适配对应”Web Service来进行,在此中,调用“23:获取数据项定义”,以及“24:按定义进行业务处理”,最后“25:保存表单数据”。
上图中,“界面”属于界面展现层,“界面配置及表单定义”、“审批单数据适配服务”、“流程环节配置及定义服务”属于数据适配层,“审批单数据内容服务”、“意见内容服务”、“业务逻辑处理服务”属于业务逻辑处理层,“表单数据操作处理服务”属于数据操作处理层。
数据存储设计
表单数据在数据库存储采用冗余字段的模式,并区分预定义出数值型、时间型、字符型数据字段。
按表单式样,数据库对应设计为单表、一对一多表、一对多主从表三种模式,对于审批单中非统计类数据项处理,采用文档型数据设计模式(例如:Lotus Notes/Domino数据文档存储模式)。
参考资料:
1、基于PaaS平台开发流程审批框架界面设计方案(草稿) 2014年1月,作者:肖永威
2、云计算统一办公运营平台服务能力设计方案 2014年11月,作者:肖永威