作为一个系统分析师,给出一个业务然后进行分析,将各种可能遇到的情况尽量的列举出来,这是基本素质之一。这不但需要系统分析师有比较严谨的思维,而且还 要求其有很丰富的工作经验。假设现在用户有一个“重新打开销售订单”的业务需求,那么在设计、开发这个作业的时候,需要进行哪些限制呢?

一、重新打开订单业务背景

在分析某个业务的时候,最重要的就是要了解业务的背景。如果忽略了业务背景,那么设计出来的模型就好像是海市蜃楼,虚无缥缈。为此笔者建议,作为系统分析 师,在分析业务需求的时候,一定要讲需求回归到背景中去。或者我们可以把它叫做案例分析题。用户给出的可能是一个知识点,我们要将其组成一个现实的案例。

一般订单的处理包括两个阶段,分别为订单的输入与订单审核。业务员接到客户的订单之后,需要将订单数据输入到系统中。然后再由其主管进行审核。当主管在系 统中做了审核的操作之后,订单的数据就不能够再进行更改。但是在实际过程中,由于各种各样的原因,仍然需要对已经审核过的订单进行修改。如业务员在输入数 据的时候,将订单的数量输错了,而主管在审核的时候又没有发现这个错误。或者说,后来由于客户的原因,更改了订单的数量或者交起,此时用户就可能需要更改 销售订单。在遇到这个情况之后,用户就会提出需要,要重新打开销售订单进行更改。

二、重新打开订单业务的后台限制解析

系统分析师现在需要考虑的就是,是否允许用户打开已经审核的销售订单呢?此时不能够简单的回答允许还是不允许。而是要根据实际情况来分析。

如在ERP系统中,一般采购需要根据销售订单来生成采购订单。或者说物料计划部门需要根据销售订单来生成物料需求计划。也就是说,其他部门需要用到销售订 单中的数据,销售订单是系统流程的起源。如果现在其他部门已经根据销售订单生成了相关的采购订单或者物料计划,在这种情况下,允许业务员对销售订单数据的 直接更改吗?答案是否定的。因为在这种情况下,如果还允许更改的话,那么源数据跟后面的纪录就会对不上。后续在追踪分析的时候就难以找到责任人。总之,就 是某个单据已经生成了后续单据的时候,这个原始单据就不允许重新打开进行更新。

但是如果这个销售订单刚下,其他部门根据还没有处理。或者说其他部门在处理之前的审核过程中发现了问题,告知了业务员。在这种情况下是否允许用户打开订单 来更改呢?一般在这种情况下是允许的。因为没有关联纪录,此时更改源数据不会对其他部门产生连锁反应。而如果采用其他单据来更改这个订单信息的话(如通过 订单变更单来更改),虽然从技术上说是可行的,但是一般没有这个必要。毕竟在这种情况下,还没有给企业带来实质性的损失。而如果通过订单变更单来更改的 话,反而会造成比较多的垃圾数据。所以在这种情况下,才真正的需要重新打开订单的作业。

三、在技术上如何将这种限制落实到实处

业务背景了解了,具体的限制也心中有数了,接下去的工作就是需要设计,如何将这种限制落实到实处。虽然说条条道路通罗马,但是我们在具体实现的过程中,还是需要兼顾成本、效益、安全等原则。

以这个“重新打开订单”的业务来说,从技术上看可以按照如下这个思路进行限制。

第一步:可以在订单级别,设置几个字段,用来关联后续的单据。如可以在销售订单单头的数据表中,设置一个“生产计划”的字段。如果这个字段有相关的内容, 则表示这个订单已经生成了生产计划。在执行“重新打开订单”这个业务的时候,就需要先去判断这个字段的值。如果非空的话,那么就不允许重新打开订单。相 反,如果为空的话,表示没有后续关联的单据,则允许用户打开订单。如果销售订单关联采购订单或者关联出货单,都可以进行类似的设置。

第二步:其他相关联单据生成的时候,注意需要会写相关的字段。如现在用户根据销售订单来生成采购计划。当采购计划正常生成之后,需要将生成采购计划的序列 号回写道对应的销售订单字段中。只有如此,销售订单中这些控制性字段的信息才能够得到及时更新。“重新打开订单”作业才能够根据这些字段来进行作业的控 制。

第三步:删除作业时的处理。在实际工作中,还可能会遇到这种情况。如某个销售订单中有100个产品。而由于客户的原因,需要更改其中50个产品的数量。此 时对于采购计划与采购订单的影响就会比较大。遇到这种情况时,用户可能宁愿删掉采购计划,让销售员重新打开销售订单更改数量。然后用户再重新生成采购计 划。遇到这种情况该如何处理呢?这也就是说,当删除采购计划的时候,也需要同时清空对应销售订单中“采购计划”这个字段中的值。当这个值变为空之后,“重 新打开销售订单作业”就可以重新打开销售订单,让用户进行修改。

以上这个步骤,从开发语言上来看,主要就是用来IF判断语句与Update更新语句。在应用程序开发上,没有多大的困难。而主要的问题就是,作为系统分析 师,要将这些内容一一考虑到。其实系统分析师就好像是一幢大楼的设计人员。而程序开发人员就好像是造房子的人,他们只需要根据设计人员的图纸来建造即可。 系统分析师需要对最后的运行结果负责,开发人员只需要保证在代码的编写上不要出现错误即可。为此系统分析师在这里起到的作用是非常之大的。

其实这个需求还有其他的处理方式。如在执行“重新打开订单”作业的时候,可以去采购计划那边查询,看看有没有目标定单的相关信息。从技术上讲,这是可行 的。但是笔者不建议这么设计。在文章一开头,笔者谈到过系统分析师在分析业务逻辑的时候,需要成本、效益、安全等兼顾。根据上面这种方法,虽然最终可以达 到用户所需要的目标。但是不符合安全、效益的原则。如如果采用第一种方法,即在订单单头表中放入控制字段的话,那么就可以从销售订单中直接关联到采购计 划,也就是说可以直接从销售订单关联查询到采购计划。而如果采用第二种方式的话,就只能够实现控制,而不能够实现关联查询的功能。此时在选择方法的时候, 就需要考虑效益原则,而不能够光考虑目标。简单的说,就是选择具体的实现方式时,如果能够给用户带来额外的附带价值,那是最好的。

ERP系统重新打开订单的后台限制解析相关推荐

  1. 淘宝API接口,交易,退款退货,物流数据获取,erp系统对接交易订单

    taobao.trade.get 获取单笔交易的部分信息 公共请求参数: 名称 类型 必须 描述 method String 是 API接口名称,例如:taobao.trade.get app_key ...

  2. 专家答疑:在ERP系统中确保销售订单准确性

    若销售订单有错,如订单数量或者订单价格有问题的话,则会造成一系列的连锁反应.计划模块.采购模块.生产模块.库存模块等等都会受到牵连.而且最要命的是,很哪进行调整.所以,在ERP系统使用过程中,应该千方 ...

  3. 机械行业ERP系统生产订单管理 分享式操作轻松协同

    产品生产制造过程,就像大厨按单做菜,按照清单提前采购配料,拣菜.洗菜.切菜.配菜.烧菜.装盘.上桌,只需快速分工协作,分分钟就能搞定一道道美味.可实际却远没这么简单,要么没顾客,要么来一堆,同一道菜, ...

  4. 【会计毕业论文】ERP系统在电商零售企业会计核算中的应用(节选)

    摘要:网购的便捷性与高效性促进了电商的快速发展,电子商务正在改变着我们的生活习惯.近几年电商企业呈爆发式增长,具有平台店铺多.订单量大.产品多等特点,使企业在会计核算中出现了资产账实不符.会计信息失真 ...

  5. 物流 计算机管理 好处,ERP系统在物流管理中的作用

    物流行业是我国发展最迅猛的行业之一,如今的物流企业也不在是简单的收货送货,对物流的管理已经涉及到仓库管理.销售管理.财务管理.运输管理等方方面面,ERP系统也在物流管理中发挥着越来越重要的作用. 一. ...

  6. 怎么选择跨境电商ERP系统?

    1.什么是跨境电商ERP背景: 2014年是跨境电商的元年,2015年则是跨境电商发展十分重要的一年.这一年跨境电商很多行业经理了洗牌.erp行业也是一样的.其实ERP并不是选择SAP.甲骨文.用友. ...

  7. 跨境电商为什么要用ERP系统?

    1.为什么要用ERP 对于跨境电商而言,多平台.多账号运作是比较常见的方式.但这种操作模式会给卖家们带来很多难题: 大量的SKU需要快速地刊登到不同平台.不同账号,不同站点,人工上传不仅速度慢,人工成 ...

  8. 韩商言喊你来使用模切ERP系统

    过往几年,不泛有多个模切管理软件,但大多数处于帮助企业报价管理.适应于传统模切管理的小软件,对于小型模切厂的应用有过很大的帮助,但始终只能进行粗旷的管理,未提升到 ERP 信息化.自动化.现代化的管理 ...

  9. ERP系统 应付分析供应商账龄

    供应商账龄分析 今天写了ERP系统的账龄分析,主要由后台数据库存储过程进行分析,生成数据返回前端显示. 实现界面效果: 由一个具有复杂表头的表格进行显示,通过后台数据库分析得出对该供应商进行的采购入库 ...

最新文章

  1. socket编程和并发服务器
  2. CF1397B Power Sequence(大胆枚举)
  3. 4.2.3 减少磁盘延迟时间的方法
  4. CTreeCtrl控件的使用小记
  5. OpenStack 之Nova添加扩展API流程,附带资源的查找功能
  6. 【Julia】Julia v1.5.1 更改Pkg存放位置
  7. go语言如何调用java接口,[译] 如何在 Go 中使用接口
  8. php提交字符串中有加号(+)时会后台得到空格的问题
  9. L1-005 考试座位号 (15 分)—团体程序设计天梯赛
  10. 计算机win10分区软件,分区工具哪个好? win10系统分区助手值得拥有
  11. 高性能MySQL读书笔记(一)
  12. Linux 内核通知链(notifier chain)原理和使用方法
  13. 微信小程序打印实时日志
  14. table表格及属性
  15. Java连接数据库实现用户登录密码验证
  16. Matlab/Simulink仿真问题及技巧汇总【持续更新】
  17. electron-vue起步
  18. python中print函数的输出问题(空格,制表符)
  19. 【信息学奥赛一本通】1114:白细胞计数
  20. html实现光碟转动效果,flash脚本roll应用 制作转动的光碟动画效果

热门文章

  1. java 线程栈大小配置,JVM运行时数据区详解-Stack栈(优化配置、代码样例)
  2. php 处理像素点数组,求助:php处理这个数组
  3. mysql的%rowtype_Oracle %TYPE 和 %ROWTYPE 使用
  4. linux ip协议栈 漏洞,【漏洞预警】雪藏11年:Linux kernel DCCP double-free 权限提升漏洞(CVE-2017-6074)...
  5. python压缩教程_无需压缩软件,用python帮你操作压缩包
  6. vscode使用Git Graph提交成功,但是仓库没有更新
  7. Eclipse 高清显示屏 图示太少
  8. java赋值兼容原则,多态问题抛出(赋值兼容性原则遇上父类与子类同名函数的时候)...
  9. java公平锁和非公平锁_java并发编程学习之再谈公平锁和非公平锁
  10. Java怎么实现大的map_关于Java中的ConcurrentHashMap的实现原理有大神可以详细介绍下吗?...