二级物料处理程序,下(品尝ABAP的味道)

本文介绍了一种在SAP MM模块中处理二级物料的全新设计思路与实现方法,包括增强程序的设计与定时处理程序的功能,解决了原有设计中数据更新和日志记录等问题。

今天终于有时间来给二级物料处理程序来个盖棺定论了。


通过二级物料处理程序,我熟悉了SAP MM 的采购订单相关表,收货记录表,MM模块的常用移动类型:

移库

ZMMR0066

一级

311

311K

312

312K

         
 

         

二级

311

311K

312

312K

         
                     

采购收货

ZMMR0067

一级

101

101K

102

102K

 

105

105K

106

106K

 

 

二级

101

101K

102

102K

 

101

101K

102

102K


接中篇的内容,我提出了解决办法,需要用程序去实现,整个功能完成后和原来最初的设计有很大的变化。


原来设计的问题:

1. 顾问没有吃透这个增强,不能在这个增强中多次提交数据更新,结果还使用子函数在增强中多次提交,造成大量ABAP DUMP和凭证无法保存问题。

2. 日志混淆不清,用户后续跟踪操作困难。


全新的设计的优点:

1. 尽可能的解耦一二级物料处理机制,每一种业务对应一段简单程序,结构越简单,程序工作起来越可靠。 避免了在原来增强中多次提交数据的更新问题。

2. 日志完整:初始数据一张表,处理后的数据日志一张表。记录一一对应,非常清楚。便于用户后续使用。


采购订单智能收货,IQ达到了比较高的水平,比较有意思。

场景一:
一个物料,要求收货100件。
实际订单1可满足7件,订单2可满足200件,程序会怎么做呢?
程序会把订单1的7件收完。再去订单2收93件。

场景二:
一个物料,要求收100件。
实际订单1可满足7件,订单2可满足50件。程序会怎么做呢?

程序计算全部订单和都无法满足,罢工了,留下一段提示,全部订单总数不满足。




《ERP系统开发说明书》


一、基本信息


程序中文描述

MB11,MIGO一级物料移库和采购订单收货,增强二级物料处理

增强及程序实现

SE19中扩展增强MB_DOCUMENT_BADI -> ZMB_DOCUMENT_BADI

1.增强程序保存一级物料移库和采购订单收货信息,写入ZMMT_015表中。

2. ZMMR0066程序定时处理二级物料移库,日志写入ZMMT_LOG020表中

3. ZMMR0067程序定时处理二级物料采购订单收货,日志写入ZMMT_LOG020表中

涉及表名1

ZMMT_001, 一二级供应商物料维护表

涉及表名2

ZMMT_015,对一级物料操作信息,增强记录在该表中

涉及表名3

ZMMT_LOG020,对二级物料操作信息,记录在该表中

业务顾问

赵杰、李俊颉

开发者

刘欣


二、版本管理

 

版本号

更新日期

更新人

开发请求号

主要更新描述

1.0

2015-02-02

刘欣

 

新建开发说明书

2.0

2015-02-06

刘欣

 

补充完成

 

 

 

 

 

 

 

 

 

 

 

 

用户签字

 

此处的签名,表示项目的关键用户确认本文档内容中的开发需求及功能设计。

 

  

四、业务需求,程序用途(描述编写报表的用途或目的)

有一些物料,我们对它收货入库,或在库位中移动时,希望ERP系统自动把它的子物料也一并处理。比如发动机:我们对“发动机裸机”收货时,希望也能把“发动机排气管”、“发动机排气管支架”等子物料一并处理。如果库管员把“发动机裸机”10个收入仓库,我们希望系统自动把“发动机排气管”、“发动机排气管支架”等子物料10套一并收入仓库。 


五、功能设计

 


5.1工作原理

      对于二级物料跟随一级物料的处理,设计分两步来完成:

      第一步:一级(父)物料收货后,ERP系统自动触发增强, 增强中只需把父物料收货或移库信息写入ZMMT_015原始数据表,结束。 第二步: 系统定时调用一段程序,根据原始数据表ZMMT_015和一二级物料表ZMMT_001关系去处理子物料。


5.2程序设计

5.2.1增强程序记录一级物料操作写入ZMMT_015表。

增强程序流程图:




5.2.2 二级物料处理程序


      对于二级物料处理有两种业务模式:移库和采购订单收货。


移库

ZMMR0066

一级

311

311K

312

312K

           
 

           

二级

311

311K

312

312K

           
                       

采购收货

ZMMR0067

一级

101

101K

102

102K

 

105

105K

106

106K

 
 

 

 

二级

101

101K

102

102K

 

101

101K

102

102K

 


      移库的处理ZMMR0066程序,对移动类型311311K312312K的一级物料操作,做出相应的二级物料移库处理。一项一级物料的货物移动可能触发多项二级物料的货物移动。


ZMMR0066程序流程图:




采购订单收货的处理ZMMR0067程序,对移动类型101102105106的一级物料操作,做出相应的二级物料移库处理。一项一级物料的采购订单收货可能触发多项二级物料的采购订单收货,一项二级物料的采购订单收货可能涉及有多项采购订单明细,一项采购订单明细涉及多个已经收货数量。







增强程序记录的一级物料数据处理表:(保存后查看大图)





二级物料处理程序完成后的日志记录:(保存后查看大图)




















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘欣的博客

你将成为第一个打赏博主的人!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值