1、概述

        基于PaaS平台开发流程审批业务功能,首先要体现云计算PaaS平台的特性,例如多租户、统一平台、技术规范等。因此,为了达到快速、规范化开发业务功能的要求,在此设计流程审批界面框架,对业务数据和流程数据进行解耦。

1.1、设计目标

  • 流程审批单框架与业务表单松耦合;
  • 审批单上的对象支持通过配置实现数据规则控制和显隐控制等;
  • 功能按钮、数据项支持按流程环节配置规则;
  • 支持个性化规则开发;
  • 表单、业务功能直接按规范开发;
  • 数据按租户隔离(例如:按业务模块隔离),业务数据与平台数据隔离;
  • 审批意见显隐、控制支持可配置。


2、流程审批界面需求分析

2.1、审批界面样例分析

        1、以审批意见为主体关注点的审批界面,例如下图所示公文审批稿签界面,在业务流转过程中,处理人员重点关注流程上人员(特别是领导)对业务处理意见,此种情况适合公文文件审批。


        2、以业务为主体的业务单据界面,例如下图所示的报销申请单界面,业务是以流转业务单据为核心,流程上的处理人员按责任分工审核单据并给相关人员,此种情况适合以业务数据流转为主的业务。



        3、混合型业务审批界面,例如下图采购申请审批界面,业务流转过程中,业务单据信息和审批意见信息都受到关注,同时显示比较直观。



2.2、需求归纳总结

        1、审批界面需求关键点

需求点

简要说明

备注

业务表单

具体业务数据,根据实际业务,个性化差异较大

在使用数据规则时与流程有耦合

审批意见

流转过程中所填写的审批意见

与流程环境耦合紧密

界面操作功能

保存、送出、打印、查看流转记录、退回等流程处理功能

与流程功能有些耦合


        2、审批框架界面需求

  • 业务表单嵌入到框架页面里,按SOA原则,业务表单对数据处理服务(Web Service)是独立的;
  • 审批意见可以设置成显隐,如果是显示审批意见,则属于追加行数据模式;
  • 界面操作功能,一般以按钮的形式存在,功能主要分为两大类,一是业务功能,在JavaScript代码中实现具体业务,另一种是流程功能,由框架及嵌入业务代码方式实现,例如“送出”操作,流程走到下一步,同时需要调用业务的保存数据的功能。


3、审批界面功能设计

3.1、审批界面示意图


        1、如上图所示,界面分为4个核心功能区域:

  • 功能按钮区:放置业务审批单功能按钮的区域,按钮可以分成三种类型:流程专用、业务专用、混合功能;
  • 特殊功能区:用于个性化业务、流程功能所使用功能按钮、下拉列表等;
  • 业务表单区:放置具体业务单据的区域,文件类业务可以隐藏此部分内容;
  • 审批意见区:是可以设置成显隐的区域,用于显示审批意见,对于文件类业务,直接显示个性化审批单。

        2、界面样式

        界面样式按模版和个性化方式处理,模版适用于对界面要求不高,专注于业务单据处理类审批业务,界面上实际上也是以个性化业务表单为主,而审批历史可能是以弹出窗口内容显示。


3.2、界面中控件分析及功能按钮设计


界面中控件 区域 流程环节 显/隐 读/写 数据规则 样式 自定义
按钮 功能按钮区
业务表单区
意见区
- - -
单/多行输入框 业务表单区
意见区
下拉列表 业务表单区 可以是WS
单选按钮 业务表单区
时间控件 业务表单区
选择框 业务表单区
意见区
......              

3.2.1、按钮功能分析及设计

        以“保存”按钮为例,保存操作在不同环节所实现的功能是不一样的,例如:申请时保存操作核心是插入并保存业务单据数据,而审批过程中,一般对业务数据是很少操作的,因此,在其他流程环节中,“保存”操作可能只是保存审批意见,以及操作流程,因此设计方案可以有两个:

  • 方案一:直接在界面中开发“保存”按钮功能,再根据环节判读,执行不同的功能;
  • 方案二:在不同环节中使用不同的函数(方法),替换执行其“保存”操作,相当于有很多保存按钮定义在界面中,这样需要定义按钮,按钮也就相当于接口,动态加载类(代码),按环节定义来执行代码。

3.2.2、按钮显隐定义

        详见“3.4、审批单数据规则设计”章节。







3.3、弹出窗口界面设计




3.4、审批单数据规则设计

          审批单上的数据项分为显示/隐藏、读/写等控制规则,也包括显示样式、数据有效性等控制规则,以及数据回写控制等等。



3.5、审批意见显示设计



3.6、审批意见填写的设计方案

  • 方案一:审批单上直接显示意见填写输入框,通过“保存”或“送出”按钮直接保存意见内容;
  • 方案二:单独设置审批意见操作按钮,或送出中隐含,此功能相当于新开意见输入窗口,进行意见填写操作。

        学习发微博方式填写意见,实时反馈还可以输入多少个字符,防止出现多写保存不上的问题。讲个故事,某天省公司老总批文填写意见,写了700多字,提交保存时被告知超限,没了!还好,系统有个后台日志功能记录了此事,否则,不知有多少人挨骂了。





4、技术架构

4.1、技术架构框图


          界面开发基于静态HTML技术,使用JavaScript语言和Cordys BOP4平台界面JavaScript类包。


4.2、流转规则定义

        规则定义在框架内进行,通过框架内专业JavaScript对象与业务表单具体对象对应,避免业务表单直接与流程定义配置直接耦合。




5、数据库设计




6、审批单与流程服务接口设计

6.1、审批单、流程服务接口逻辑分析



6.2、在业务应用层面增加流程及其环节定义的基础数据

        在业务表单与流程服务间,增加流程及其流程环节信息的定义数据,只要在审批单上有控制需求,则在业务层面定义相对应的环节,与流程服务对应上,以此与流程服务解耦。



其他设计

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐