10、ERP设计之系统基础管理(BS)- 平台化设计
ShareERP 2013-09-03
ERP业务平台化是每个软件提供商必须要进行的趋势,传统定制化路线已死,不能走定制化的老路了。以往最大问的题是不能累积和沉淀技术及提升项目业务管理能力,其次是管理与成本很高。关于平台化设计的文章很多,不在一一列举,具体来分析一下实现平台化的技术,因为介绍实际的软件架构技术的文章实在太少。
ERP平台化设计基本要素:
1、 业务模块设计(基础平台,以运行业务);
业务模块是业务流程运行的基础,系统在设计前期应先规划业务模块架构体系,就笔者的所设计的系统为例:
- 基本抽象业务单据模块[客户端单据管理],是所有业务模块的基础,提供业务处理的基本功能。
- 编辑业务单据模块[编辑单据管理],继承[客户端单据管理],提供增强编辑业务处理功能。
- 查询统计业务单据模块[查询单据管理],继承[客户端单据管理],提供账表查询、统计分析、图表分析等业务处理功能。
- 如下图1[业务单据框架继承图],在[编辑单据管理]、[查询单据管理]模块下有多个子继承关系的单据管理模块,就是对不同的业务类型抽象出来的业务单据管理模块。
图1: 业务单据框架继承图
2、 业务流程设计(流程为导向驱动业务);
业务流程:由业务事项产生的源头值到事项结束的过程中所产生的一系列活动业务的组合统称为业务流程。业务流程可界定、可规划事务的逻辑顺序,以流程导向驱动业务节点上的具体事项活动。由此,单据模块离不开业务流程的指引。首先,我们在做流程设计时,要抽象出几大基础业务流程:如销售管理,采购管理,生产制造管理,财务成本管理等,有了这些基础业务流程为主线再展开子流程的分析与规划。
业务流程存储表结构,主从架构,主表为流程基本信息(名称、描述、父节点标识),从表为流程业务节点信息(节点名称、描述、子流程标识、显示位置等信息);如果为了编程方便,还可以设计成一张表,不过增加了数据的冗余。
流程驱动:光有流程图,它还只是一张图,能明示方向但不做事,以流程驱动业务节点事项,才是我们要的关键。在架构上我们可以定义工作流引擎,以业务规则来约束工作流以达到流程驱动。关于工作流引擎在以后的章节会详细论述。
3、 业务单据模板设计(业务节点上的实体单据);
在前面章节介绍过【数据库表设计2】,里面有讲到过,表结构的设计相关因素。那么具体业务单据,基本功能应该都要在单据模块设计中体现出来,统一的单据功能如:审核批流、权限控制、业务规则、打印控制、查询控制、日志记录、关联引用控制、自定义扩展等。实现以上单据管理功能,我们要定义具体的单据模板管理表结构,这个表结构有点复杂,以下为说明示例。
单据模板信息表:VM_Template业务单据的基本信息(单据标识、业务控制、规则、显示等)
单据项目表:VM_TemplateItems业务单据的业务数据主从表信息(项目表标识、主/外键标识、业务规则等)
单据项目字段表:VM_VoucherItems业务单据主从表字段栏目信息(字段信息、UI显示描述、逻辑表达式、格式、录入方式、数据参照引用等)
4、 业务单据UI管理设计(单据界面UI管理)
UI管理,可以单独抽象成一个接口,统一处理如UI事件、动态数据源绑定、数据参照、脚本执行等UI相关功能。因为不同业务类型的单据UI以不同的界面显示,并且还有用户级UI界面控制,UI显示相关数据定义可以放在用户[单据项目字段]表中,用以区分不同用户的UI管理需求。用户UI管理需要注意用户不能看到的字段,要在数据权限管理中控制字段的权限。
总结:在程序开发编码创建单据时,可根据单据定义的数据生成各种类型的业务单据,从而达到业务平台化的目的。
下篇:系统基础管理(BS)-单据模板设计 待续……
来源:分享ERP http://www.shareerp.com联系QQ: 908916944
10、ERP设计之系统基础管理(BS)- 平台化设计的更多相关文章
- ERP设计之系统基础管理(BS)-日志模块设计(转载)
原文地址:8.ERP设计之系统基础管理(BS)-日志模块设计作者:ShareERP 日志模块基本要素包括: 用户会话.登录.注销.模块加载/卸载.数据操作(增/删/改/审/弃/关等等).数据恢复.日志 ...
- 12、ERP设计之 系统基础管理(BS)- 模块与菜单的关联
ShareERP2013-10-03 模块:具有功能设计.权限绑定,链接用户菜单与系统的重要桥梁. 菜单:是用于显示与用户交互的重要入口,更是导航系统的舵手,所以它的设计直接影响到用户体验. 菜单可能 ...
- ERP或PLM系统-物料编码管理的技术实现
1 企业现状 企业日常经营过程中会产生大量的文档,如设计图纸.变更单.计算书.设计方案等,如果是制造企业还会产生大量的产品.组成产品的零部件等物料,这些数据在进入信息系统前都需要有一个唯一的标识,也就 ...
- ERP产品购进系统商品管理(三十三)
购进系统总体架构图: 总体业务: 流程图: 自定义函数: -- Description: 根据渠道编号查询渠道名称 -- ======================================= ...
- 扁平化设计的最新趋势 – 长阴影(Long Shadow)
随着互联网的发展,网页设计变得越来越复杂,如今设计的外观和感觉实现网站功能说使用的开发技术一样重要.互联网的功能远远不只是基本的信息共享,现在人们对网站的期望是远远大于几年前的. 如今,HTML5 & ...
- ERP的基础管理-物料编码
在企业ERP系统中,物料编码管理是所有数据的基础,可以这样说:"没有物料编码就没有ERP".实际上物料编码对于制造类企业供应链管理作用不可说不巨大,影响不可谓不深远,甚至我们在考虑 ...
- 我是如何一步步编码完成万仓网ERP系统的(五)产品库设计 1.产品类别
https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/ ...
- 我是如何一步步编码完成万仓网ERP系统的(六)产品库设计 2.百度Ueditor编辑器
https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/ ...
- ERP的权限管理的操作与设计--开源软件诞生24
赤龙ERP用户与权限管理讲解--第24篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/re ...
随机推荐
- UVA 2039 Pets(网络流)
Problem Description Are you interested in pets? There is a very famous pets shop in the center of th ...
- js 常用方法记事本
1.获取被选中行的名称<tab选项卡中为iframe> /* S 获取首页被选中的选项卡名称 */ var currTab = $("#layout_center_tabs&qu ...
- Maven坐标 groupId artifactId version packaging classifier name
groupId定义项目属于哪个组,这个组往往和项目所在的组织或公司存在关联.譬如在googlecode上建立一个名为myapp的项目,那么groupId就应该是com.googlecode.myapp ...
- 反射API
反射,是指一种能在运行时动态加载.分析类的能力.反射被广泛地用于那些需要在运行时检测或修改程序行为的程序中.这是一个相对高级的特性,使用反射技术应当具备相当的Java语言基础.我们可以通过反射机制让应 ...
- 怎样将Emoj表情插入mysql5.6数据库__python+mysqldb
废话不多说,相信看到这里的看客已经看过非常多配置文件的设置方法.可是问题还是没有解决.本文就具体记录一下我的解决方法吧. 我的环境:mysql5.6+python2.7.3+MySQLdb1.2.4 ...
- 【app】遍历目录所有文件
遍历目录所有文件 原创,转载时请注明,谢谢.邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:htt ...
- android.graphics包中的一些类的使用
游戏编程相关参考 Matrix学习系列: http://www.moandroid.com/?p=1781 Android画图学习总结系列: http://www.moandroid.com/?p=7 ...
- setOnClickListener报空指针异常
1.异常提示: 2.错误原因: 先看代码: public class MainActivity extends ActionBarActivity { private Button btn_test; ...
- 多个haproxy 之间跳转
C:\>ping wechatTest.winfae.com 正在 Ping wechatTest.winfae.com [120.55.118.6] 具有 32 字节的数据: 来自 120.5 ...
- Android应用开发学习笔记之ContentProvider
作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz ContentProvider用于为其它应用程序提供共享数据,它为不同应用程序间共享数据提供了统一的操作接口. 一. ...