一个ERP系统的磕磕碰碰
历时5个月的开发,终于可以交付使用了。在这期间系统从需求分析、系统架构设计、开发、测试、运行、迭代、交付,整个忐忑波荡的一路走来,终于有时间静下心来写一篇总结跟各位博友一起探讨、学习了。如果对大家有帮助了希望大家点下支持,推荐。
业务分析
随着信息化的发展(这东西发展真快),相信大家或企业越来越意识到企业内部信息化建设的重要性和优越性,我所接手的这家客户也是。之前是用友系统的客户,由于公司业务的发展,系统无法支持公司内部业务的发展,还有,抛弃原有系统的使用,打算定制开发一套符合自己公司业务运营的系统,于是本人参加了这个项目,并带领我的团队(朋友一人,哈哈)参与了这个项目的开发。
由于一些业务信息的敏感问题,我把部分信息的用XX替换了,表示该公司的一些特定内容,当然大家做需求分析时结合自己的情况在这些项目上去追加符合自己的实际业务内容就可以了。如下图这家公司的业务分析汇总。

业务设计介绍
订单部分
对于任何企业或者公司甚至是个人都一样,大家在进行任何买卖操作时都会去创建订单,以此来确定自己的购买计划、生产计划、销售计划、、、、、、对于这些订单的情况,系统需要有一个非常明确的业务数据支持和订单业务流程支持,而满足这些数据的支持需要你与你的客户做深入的探讨和分析系统去如何设计(由于本人开发过程中是敏捷开发,基本都是code 完个界面, 然后确认完后进入下一个 code界面 ,没有系统设计,导致了表字段的不足,尤其是后面业务统计功能时,严重的缺少些冗余字段导致统计sql 过于复杂)。
对于订单的制定,相信大部分系统基本是对于一些表单的维护,订单部分就是这样了,对于订单制定完后下一步,公司会基于这些订单去做相应的预算。其实预算无非就是把若干的订单合并到一起,来支持某个产品的生产或制造。当然对于这个预算单还是复杂度会根据你的产品订单的情况来决定的。
合同部分
对于合同部分,这家公司的业务是对于审批通过的订单回去生成合同,因此大部分的订单的归属是生成合同,在这个模块中最大的坑是合同的模板问。其中模板的选择和打印如何去封装好以及满足灵活的更换,这块本人也没有太多涉猎,希望万能的博友对于打印方面有独特见解的予以帮助,合同的制定业务过程还有复杂的地方就是合同条款,对于合同条款部分会有各种的约束,如付款情况的条款、结算情况的条款、交货、验货等条款的约束对后续业务流程的影响,也是设计人员在设计过程中需要着重考虑的(否则这里会是一个大坑)。
付款部分
对于付款部分,金额的管理是这个环节最重要的部分。对于这个金额管理合同的初始金额、每一笔的付款金额、最终的结算金额、最终的付款金额都需要系统在设计时做好充分的考虑,标准系统不知道怎么去设计的,这个流水账付款(如我们系统付款申请付错问题,实际付款和申请付款出现错误时)问题,我们和业务最后考虑是在结算时把之前的错误款项对冲回来,不然系统确实挺复杂的(不知道大家有什么高见么)。
结算部分
对于结算部分,业务还是蛮简单的,只需根据合同的物料明细做物料明细的数量确认就OK了,补充发生的扣款情况(扣款明细)、汇总物料的结算总计就OK了。
总结
至此业务分析就差不多了,如果你也是在做需求分析的话希望这些对你有所帮助,当然我写的很简单,发现确实越来越懒了。如果有什么需要讨论的,如论是技术还是业务欢迎加本人 QQ群33176382
系统架构

从业务分析情况来看整个公司的业务流程是订单确认阶段----->订单执行阶段----->订单付款阶段-------->订单结算结算,在每个阶段中的数据都会有相应的审批阶段为了满足系统的运行有相应的统计功能模块,系统基础数据设置(如数据字典等),系统设置(如人员、权限、组织结构、角色等)
相信大家最关心的是代码了好了现在上码(难道大家不喜欢无码的么? O(∩_∩)O )
解决方案

对这些SOA的设计来说基本都是类似的,如果大家愿意研究更多推荐ABP,我也是研究它结合自己的开发经验这样设计的。
对了这是一家服装外贸公司的项目,如果大家需要的话可以邮箱联系qianthinkover@163.com,当然我肯定不会免费的啦。需要的话邮件里聊吧谢谢大家的阅读,对于框架里面的一些代码封装,我有时间会开源的,上一篇Excel NPOI的封装代码还没上传,还需要整理。大家见谅。
一个ERP系统的磕磕碰碰的更多相关文章
- 【MEF】构建一个WPF版的ERP系统
原文:[MEF]构建一个WPF版的ERP系统 引言 MEF是微软的一个扩展性框架,遵循某种约定将各个部件组合起来.而ERP系统的一大特点是模块化,它们两者的相性很好,用MEF构建一个ERP系统是相当合 ...
- 高性能、高可用、高扩展ERP系统架构设计
ERP之痛 曾几何时,我混迹于电商.珠宝行业4年多,为这两个行业开发过两套大型业务系统(ERP).作为一个ERP系统,系统主要功能模块无非是订单管理.商品管理.生产采购.仓库管理.物流管理.财务管理等 ...
- 分布式、服务化的ERP系统架构设计
ERP之痛 曾几何时,我混迹于电商.珠宝行业4年多,为这两个行业开发过两套大型业务系统(ERP).作为一个ERP系统,系统主要功能模块无非是订单管理.商品管理.生产采购.仓库管理.物流管理.财务管理等 ...
- ERP系统架构
分布式.服务化的ERP系统架构设计 ERP之痛 曾几何时,我混迹于电商.珠宝行业4年多,为这两个行业开发过两套大型业务系统(ERP).作为一个ERP系统,系统主要功能模块无非是订单管理.商品管理.生产 ...
- 全面具体介绍一个P2P网贷领域的ERP系统的主要功能
一般的P2P系统,至少包含PC站点的前端和后端.前端系统的功能.能够參考"P2P系统哪家强,功能事实上都一样" http://blog.csdn.net/fansunion ...
- 全面详细介绍一个P2P网贷领域的ERP系统的主要功能
一般的P2P系统,至少包括PC网站的前端和后端.前端系统的功能,可以参考"P2P系统哪家强,功能其实都一样" http://blog.csdn.net/fansunion/ ...
- 解析大型.NET ERP系统 权限模块设计与实现
权限模块是ERP系统的核心模块之一,完善的权限控制机制给系统增色不少.总结我接触过的权限模块,以享读者. 1 权限的简明定义 ERP权限管理用一句简单的话来说就是:谁 能否 做 那些 事. 文句 含义 ...
- 解析大型.NET ERP系统 单据编码功能实现
单据编码是ERP系统中必备的功能,用于生成各种单据的流水号,常常借助于日期时间等字符来生成一个唯一的单据号码.从软件的角度来说,就是为生成数据表的主键值(参考编号),从用户的角度来说,就是给业务单据制 ...
- 解析大型.NET ERP系统 单据标准(新增,修改,删除,复制,打印)功能程序设计
ERP系统的单据具备标准的功能,这里的单据可翻译为Bill,Document,Entry,具备相似的工具条操作界面.通过设计可复用的基类,子类只需要继承基类窗体即可完成单据功能的程序设计.先看标准的销 ...
随机推荐
- Eclipse扩展安装插件方式
Eclipse安装插件经常使用的是直接安装的方式,就是将插件中包含的plugins和features文件夹中的内容直接复制到了Eclipse的plugins和features文件夹内,这样很容易导致插 ...
- 从头开始学JavaScript (十二)——Array类型
原文:从头开始学JavaScript (十二)--Array类型 一.数组的创建 注:ECMAscript数组的每一项都可以保存任何类型的数据 1.1Array构造函数 var colors = ne ...
- 使用Mockito进行单元测试【1】——mock and verify[转]
本文转自:http://qiuguo0205.iteye.com/blog/1443344 1. 为什么使用Mockito来进行单元测试? 回答这个问题需要回答两个方面,第一个是为什么使用mock?m ...
- 基于Js实现的UrlEncode和UrlDecode函数代码
<script language="javascript">//UrlEncode函数function UrlEncode(str){ var ret="& ...
- 运用TWaver 3D 矢量图形处理能力
的确,提起TWaver,大家想到的首先是"电信拓扑图组件".事实上.因为其灵活的MVC架构.矢量化设计.方便定制等特点.TWaver能够做的还有非常多.比如房地产行业常见到的&qu ...
- ExtJS得知--------Ext.Element学习的查询方法(示例)
详细实例:(实验结果可复制代码后进行演示) Ext.onReady(function(){ Ext.create('Ext.panel.Panel',{//创建一个面板 title:'我的面板' , ...
- 实战parse_ini_file()及扩展函数解析ini文件完整版
文章来源:PHP开发学习门户 地址:http://www.phpthinking.com/archives/587 在PHP站点开发的过程中,往往会用到读取ini參数配置文件,比方须要訪问一些复杂的借 ...
- BCM策略路由交换芯片
BCM几个交换芯片的寄存器和相关的路由 EGR_L3_NEXT_HOP.EGR_L3_INTF.ING_L3_NEXT_HOP BCM XGS系列SDK中和路由相关的几个命令 l3 l3table. ...
- HQL语句大全
第 15 章 HQL: Hibernate查询语言 Hibernate配备了一种很强大的查询语言,这样的语言看上去很像SQL.可是不要被语法结构 上的类似所迷惑,HQL是很有意识的被设计为全然面向对象 ...
- Socket 学习(三).4 UDP 穿透 客户端与客户端连接
效果图: 使用方法: 先 修改WinClient\bin\Debug 下面的 ip.ini,写上 服务器 IP地址. 客户端 与 客户端 通讯 之前 ,点击发送打洞消息 按钮,然后过一会再发送消息 ...