关于SAP 信息记录失效的排除

SAP MM物料寄售转自有逻辑优化
针对SAP MM模块中物料寄售转自有处理逻辑存在的问题,本文介绍了一种新的处理策略,即在处理过程中排除信息记录已失效的供应商库存。文章详细解释了判断信息记录是否失效的标准,并提供了ABAP代码实现方案。


今天接到一个需求,MM模块对物料进行处理的时候,需要考虑物料的信息记录是否有效。


业务顾问给我提了个需求:

问题:ZPPR0001_NEW寄售转自有时存在多供应商库存时,先消耗库存少的供应商库存。当该供应商物料寄售信息记录失效时,系统仍对其进行寄售转自有。

现更改逻辑为:抓取寄售库存时,排除信息记录失效的供应商库存。
满足以下任一条件则判断信息记录为失效,需排除:

1.	通过供应商、物料关联EINA-LIFNR、EINA-MATNR,EINA-LOEKZ为“X”。

2.	通过EINA-INFNR关联EINE-INFNR且EINE-WERKS为“1000”、EINE-ESOKZ为“2”,EINE-LOEKZ为“X”。

3.	通过供应商、物料、工厂、信息类别2关联A017-LIFNR、A017-MATNR、A017-WERKS、A017-ESOKZ,当前日期不在有效期间(有效从A017-DATAB,有效到A017-DATBI)内。

4.	通过A017-KNUMH关联KONP-KNUMH,KONP-LOEVM_KO为“X”或者KONP-KBETR为“0”。

然后我开始回忆思考SAP中信息记录相关的东东,原来用过,但是又忘记,于是我画了一个信息记录的表关联关系,放到我的笔记里面,还准备整理一下其它业务关系。




这个关关系图和网上资料的一副关系图有出入,原图应该搞错了。



然后我使用ABAP实现需求里的东东,当我把代码写完后,突然想到,好像有BAPI可以检查信息记录,于是赶紧找了一下。

BAPI_INFORECORD_GETLIST

这个BAPI经我和MM业务顾问测试,可以用来检查信息记录是否完整:


1.  如果没有信息记录,BAPI返回0条记录.

2.  如果信息记录中的价格有效期失效,BAPI返回的记录里面,价格是0.


那么,还是用BAPI优先吧


"---------------信息记录过期排除----------------------

DATA GT_PURCHORG LIKE TABLE OF BAPIEINE WITH HEADER LINE.
DATA GS_PURCHORG LIKE BAPIEINE  .

LOOP AT T_MKOL.

          "物料号补零
             CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
              EXPORTING
               INPUT              = T_MKOL-MATNR
              IMPORTING
               OUTPUT             = T_MKOL-MATNR.
             "供应商补0
             CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
               EXPORTING
                 INPUT         = T_MKOL-LIFNR
              IMPORTING
                 OUTPUT        = T_MKOL-LIFNR.


      CALL FUNCTION 'BAPI_INFORECORD_GETLIST'
       EXPORTING
         VENDOR                    = T_MKOL-LIFNR
         MATERIAL                  = T_MKOL-MATNR
         PURCH_ORG                 = '1000'
         INFO_TYPE                 = '2'
         PLANT                     = T_MKOL-WERKS
         PURCHORG_DATA             = 'X'
       TABLES
         INFORECORD_PURCHORG       = GT_PURCHORG.


        IF GT_PURCHORG IS INITIAL.

          DELETE T_MKOL FROM T_MKOL.

        ELSE.

          READ TABLE GT_PURCHORG INDEX 0 INTO GS_PURCHORG .
          IF GS_PURCHORG-NET_PRICE = 0.
             DELETE T_MKOL FROM T_MKOL.
          ENDIF.

        ENDIF.


ENDLOOP.
"---------------信息记录过期排除----------------------








评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刘欣的博客

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

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

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

打赏作者

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

抵扣说明:

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

余额充值