今年6月初,接到客户关于“集团客户事业部大客户项目订单”新需求,其业务设置了正常流程和升级流程(是指流程参与者增加了领导,对应的表单发生很小变化)。当时的解决方案是对表单做编程处理,解决差异性问题。

今天,与开发人员讨论设计时,发现专业信息应用类业务的管理,也面临类似情况,例如安全生产管理信息、信息专栏中,非流程类的业务,需要填写多张表单。

到此,对能力平台的设计应该做点儿调整,增加允许一个业务对应多个表单(也是具体某业务)。

设计方案见下文描述。

业务开始

先从模拟业务开始,模拟业务申请处理过程,“流程业务通常情况是这样的,工作人员填写业务申请单(填写表单),并准备好相关资料(添加附件),把业务申请单和资料打包(保存)后,送出传递给流程下一环节审批人。”,详见下图描述。

Created with Raphaël 2.1.0申请人申请人业务目录业务目录业务申请单业务申请单流程列表流程列表1.选中某业务及对应的表单()2.“新增”编制业务申请()3.打开申请单()4.填写申请信息()5.保存申请单()6.自动/手动选择流程()7.启动流程并送下一步()
  • 业务目录:为业务分类及具体业务的树形结构,叶子节点一般为业务表单名称;
  • 业务申请单:为填写业务信息的申请表单,表单可以在多个流程上流转。

业务信息模型

业务模型描述

  • 信息类业务,例如信息专栏,由多组信息构成,每组信息多有不同,在这里把这种信息看作表单式业务。因此,信息专栏/应用由多个通用信息或表单构成。
  • 业务流程,一个业务可以对应多个表单,每个表单所对应的业务又可以拆分为多个独立的流程。

数据库关系模型

注:表单文档存储在文档型数据库(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)
)

数据使用情况举例:

  • 属性类型定义

  • 属性定义

业务信息展现

业务信息展现分为业务定义信息展现和业务运行实例信息展现两种情况。

业务信息定义展现

业务信息展现界面如下图所示,由业务基础信息、表单、流程列表、流程评价(也叫业务评价)构成。其中,表单可能存在多个,那么对应的流程列表随着表单而变化。

注:上图中,遗漏附件,用于存储业务介绍文档(来源于业务开发时的需求),包括业务描述文档、流程图、表单等。因此,设计时把文档及图做为附件方式进行展现。

展现操作过程参考如下顺序图。

Created with Raphaël 2.1.0管理者管理者业务目录业务目录业务信息业务信息业务表单业务表单流程信息流程信息1.选中某业务()2.展现业务信息()3.选中某表单()4.展现业务表单()5.1.展现业务流程全图()5.2.选中某流程()6.展现流程信息()7.展现流程图()8.选中业务变更版本列表()2.展现业务信息()

注:业务信息定义包含“业务全生命周期管理”,支持查看历史版本。

业务实例展现

Created with Raphaël 2.1.0管理者管理者业务目录业务目录业务信息业务信息业务实例列表业务实例列表业务实例信息业务实例信息1.选中某业务()2.展现业务信息()3.展现业务实例列表()4.选中某业务实例()5.展现业务实例表单()5.1.展现业务信息()5.2.展现流程流转记录()

设计对比分析

原设计

参照上述描述,原设计是业务下包括表单(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日

业务流程管理模型优化设计相关推荐

  1. 《大数据导论》——2.3节业务流程管理

    本节书摘来自华章社区<大数据导论>一书中的第2章,第2.3节业务流程管理,作者瓦吉德·哈塔克(Wajid Khattak),保罗·布勒(Paul Buhler),更多章节内容可以访问云栖社 ...

  2. BPM业务流程管理的前世今生

    BPM的概念与起源 BPM,即业务流程管理,是一种以规范化的构造端到端的卓越业务流程为中心,以持续的提高组织业务绩效为目的的系统化方法,是一种管理原则. BPM通常也代指BPMS (Business ...

  3. 业务流程管理工具的概览和比较分析

    业务流程管理工具的概览和比较分析 简介: 目前比较流行的工作流开发管理工具众多,包括 JBPM.PegaSystems.Software AG(SAG).IBM Content Management. ...

  4. 制造业的业务流程管理BPM

    为有效协同铺平道路 执行总结 当今制造商们面临着来自许多不同利益相关者的压力.监管者.股东.客户和供应商都影响着运营.一个组织快速地察觉并适应这些压力的能力是一个丰富的竞争优势的源泉.不过,许多旧有的 ...

  5. 什么是案例管理模型和符号(CMMN)

    组织一直在努力改进工作方式,以提高效率并减少错误.这需要分析和不断改进其工作方法,其中可能包括在可预测情况下的非常结构化的工作流程,以及响应动态情况的协议,在这种情况下无法规定固定的流程. CMMN是 ...

  6. 五个思路,教你如何建立金融业的数据分析管理模型

    说起银行.保险.股票投资这样的金融行业,很多人都认为它们是依靠数据驱动的企业,毕竟大数据的诞生本来就是为了金融信息流通而服务的,但在我身边很多搞证券.投资的朋友看来,事实却并非如此. 真正在金融行业做 ...

  7. 宅急送项目的第七天笔记!(JBPM工作流和介绍 -- 权限管理模型)

    一.回顾第一天核心内容  1. JBPM是什么? 为我的项目带来什么?  工作流, 就是将业务流程实现自动化,非人工方式,控制任务的执行 -------- 所有业务流程 执行信息 都可以存放到数据库 ...

  8. 业务流程管理(Business Process Management)

    1.业务流程管理 编辑本义项 BPM 求助编辑百科名片 BPM是Business Process Management的英文字母缩写,大致有五个意思,即业务流程管理,是一套达成企业各种业务环节整合的全 ...

  9. 企业信息化 之 BPM 业务流程管理

    什么是BPM? Business Process Management(BPM),即业务流程管理,是一套达成企业各种业务环节整合的全面管理模式.BPM涵盖了人员.设备.桌面应用系统.企业级 Backo ...

  10. 信管师培训之第十三节课作业(战略管理+业务流程管理+知识管理)

    一.战略管理 1.企业战略的特点有哪些? (1).全局性 (2).长远性 (3).抗争性 (4).纲领性 2.企业战略决策的特点有哪些? (1).决策的对象是复杂的,很难把握住它的结构,并且是没有先例 ...

最新文章

  1. 【hdu 1061】Rightmost Digit(水题 快速幂 分治)
  2. 2440启动文件分析
  3. vim 粘贴代码格式
  4. 使用electron-vue创建项目卡顿的问题
  5. bzoj4565 [HAOI2016]字符合并 结论+状压+区间dp
  6. 十七步学习ROS Toptics -ubuntu 18.04 melodic- ROS/教程/理解主题的概念:ROS/Tutorials/Understanding ROS Toptics
  7. c/c++入门教程 - 1.基础c/c++ - 1.0 Visual Studio 2019安装环境搭建
  8. 软考网络工程师备考技巧大揭秘
  9. 如果我恨一个人,我就领他到中关村买相机。
  10. 一种基于Android、iOS系统的移动端车牌识别方法,实现手机拍照识别车牌
  11. ORA-00937:不是单组分组函数 ORA-22818:这里不允许出现子查询表达式
  12. 如何从ext3升级到ext4?
  13. 企业级LNMP环境搭建
  14. esp12f ESP8266芯片引脚
  15. 为什么女性朋友容易患上拇外翻?
  16. mysql查询是否走索引_探索MySQL是否走索引(一)——范围查询一定走索引吗?
  17. 程序员疯传「编程语言鄙视链」,究竟谁能逃过一劫?
  18. 【python图像处理】单张图像裁剪与批量图片裁剪
  19. 清理C盘垃圾文件的快速方式
  20. 定义长方体类,数据成员有长、宽、高,成员函数有带默认形参值的构造函数(默认长宽高分别为2.5、3.4、2)、计算体积函数,分别构造默认对象和长宽高分别为6.25、4.8、5.2的对象,输出各对象的体积

热门文章

  1. linux进程地址空间内核,菜鸟求问linux进程地址空间问题
  2. “极狐•华为HI版本”的尴尬与困境
  3. 李彦宏计算机领域的贡献,李彦宏:AI让计算机懂得人、响应人的需求
  4. [轉載]房地产崩盘绝非戏言
  5. 服务器 分辨率问题 显示器不显示不出来,遇到显示器分辨率调不了这个问题怎么办?...
  6. scratch实现弹跳小球2
  7. 三维视觉之结构光原理详解
  8. androrid按键事件
  9. aName:array[0..31] of WideChar;//编译提示检测到错误类EAccessViolation//没有初始化
  10. ubuntu 服务器鼠标键盘无反应