今年6月初,接到客户关于“集团客户事业部大客户项目订单”新需求,其业务设置了正常流程和升级流程(是指流程参与者增加了领导,对应的表单发生很小变化)。当时的解决方案是对表单做编程处理,解决差异性问题。
今天,与开发人员讨论设计时,发现专业信息应用类业务的管理,也面临类似情况,例如安全生产管理信息、信息专栏中,非流程类的业务,需要填写多张表单。
到此,对能力平台的设计应该做点儿调整,增加允许一个业务对应多个表单(也是具体某业务)。
设计方案见下文描述。
先从模拟业务开始,模拟业务申请处理过程,“流程业务通常情况是这样的,工作人员填写业务申请单(填写表单),并准备好相关资料(添加附件),把业务申请单和资料打包(保存)后,送出传递给流程下一环节审批人。”,详见下图描述。
注:表单文档存储在文档型数据库(MongoDB)中,不在此体现。
业务分类管理不是固定的,从软件系统角度来看是可以任意变化的,在设计上使用属性表的模式管理。
/*属性表*/
create table BPM_MANAGER.SM_ATTRIBUTE
(
ATTR_ID VARCHAR2(50) not null,
ATTR_TYPE_ID VARCHAR2(50) not null,
ATTR_VALUE VARCHAR2(30) not null,
ATTR_CODE VARCHAR2(30),
SORT_NO INTEGER,
STATUS_SIGN INTEGER default 1 not null,
ATTR_DESC VARCHAR2(50)
)
/*属性类型表*/
create table BPM_MANAGER.SM_ATTRIBUTE_TYPE
(
ATTR_TYPE_ID VARCHAR2(50) not null,
TYPE_NAME VARCHAR2(30) not null,
TYPE_CODE VARCHAR2(30),
STATUS_SIGN INTEGER default 1 not null,
DESC_MEMO VARCHAR2(200)
)
数据使用情况举例:
业务信息展现分为业务定义信息展现和业务运行实例信息展现两种情况。
业务信息展现界面如下图所示,由业务基础信息、表单、流程列表、流程评价(也叫业务评价)构成。其中,表单可能存在多个,那么对应的流程列表随着表单而变化。
注:上图中,遗漏附件,用于存储业务介绍文档(来源于业务开发时的需求),包括业务描述文档、流程图、表单等。因此,设计时把文档及图做为附件方式进行展现。
展现操作过程参考如下顺序图。
注:业务信息定义包含“业务全生命周期管理”,支持查看历史版本。
参照上述描述,原设计是业务下包括表单(1对1关系)和流程(1对多或1对0关系)。
在此设计模型下,针对开篇的需求,开发人员的解决方案是编码控制表单。相当于个性化处理。
注:原设计编码实现情况,业务信息展现内容不完整,偏离设计较大;开始业务申请部分,入口偏离设计较大,而填写表单及启动流程部分属于核心功能,大部分实现,且基本不受影响。
对比项目 | 新方案 | 原设计 | 设计变更修改点 |
---|---|---|---|
业务与表单关系 | 1对多 | 1对1 | 表单定义表中增加业务ID |
业务与流程关系 | 无 | 1对多 | 取消业务与流程间关系(可保留) |
表单与流程关系 | 1对多 | 有(数据项) | 流程定义中增加表单ID |
多表单需求支持 | 满足 | 编码支持 | 业务定义展示及开始业务入口 |
专业信息支持 | 满足 | 编码支持 | 简化设计 |
注:专业信息是指无工作流的填写表单的业务,例如安全信息管理。
通过上述分析,在业务流程部分编码阶段、信息管理设计阶段,为了满足用户需求,此设计变更方案是比较合理,且工作量变动不大,可以进行后续设计讨论。
参考:
1.用MongoDB数据库来管理办公系统中文档型的表单和信息——通用流程化应用审批单设计思路(二,续) 肖永威 2015年1月1日
2.UML建模实践——选“对”企业架构建模视角很关键 肖永威 2015年4月6日
2015年6月30日
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/xiaoyw71/article/details/46650053