SAP_ABAP_MM_BADI清单案例教程——生产订单收货_MB_DOCUMENT_BADI_MB1B

SAP ABAP 顾问(开发工程师)能力模型_Terry谈企业数字化的博客-CSDN博客文章浏览阅读435次。目标:基于对SAP abap 顾问能力模型的梳理,给一年左右经验的abaper 快速成长为三年经验提参考ALV/REPORT|SMARTFROM|SCREEN|OLE|BAPI|BDC|PI|IDOC|RFC|API|WEBSERVICE|Enhancement|UserExits|Badi|Debughttps://blog.csdn.net/java_zhong1990/article/details/132469977


一 背景说明

1.1 BADI的概念

        SAP BADI(Business Application Development Interface)是SAP在标准程序中为客户自定义逻辑所预留的接口(属于第三代增强),在技术本质上是一个interface,通过实现类的向上继承,完成用户逻辑的调用。

1.2 BADI清单

采购申请创建 | 采购订单创建 | 采购订单审批 | 采购订单收货 | 采购发票校验 

生产订单收货 |

采购申请创建ME_PROCESS_REQ_CUSTSAP_MM_ABAP_BADI清单案例教程——PR采购申请创建_ME_PROCESS_REQ_CUST_ME51N_Terry谈企业数字化的博客-CSDN博客
采购订单创建ME_PROCESS_PO_CUSTSAP_MM_ABAP_BADI清单案例教程——PO采购订单创建_ME_PROCESS_PO_CUST_ME21N-CSDN博客
采购订单审批

ZME_PURCHDOC_POSTED

SAP_MM_ABAP_BADI清单案例教程——PO采购订单审批_ME_PURCHDOC_POSTED_ME29N-CSDN博客
采购订单收货MB_MIGO_BADISAP_MM_ABAP_BADI清单案例教程——PO采购订单收货_MB_MIGO_BADI_MIGO_Terry谈企业数字化的博客-CSDN博客
采购发票校验

INVOICE_UPDATE

SAP_MM_ABAP_BADI清单案例教程——PO采购发票校验_INVOICE_UPDATE_MIRO-CSDN博客
生产订单收货

ZMB_DOCUMENT_BADI

SAP_MM_ABAP_BADI清单案例教程——生产订单收货_MB_DOCUMENT_BADI_MB1B_Terry谈企业数字化的博客-CSDN博客

二 实施步骤

2.1 BADI名称 MB_DOCUMENT_BADI

2.2 实施BADI,输入Tcode SE19 

三 实施细节

MB_DOCUMENT_BEFORE_UPDATEABAP ABAP 代码Exit After Writing a Material Document. Not in 'update task'
MB_DOCUMENT_UPDATEABAP ABAP 代码When Writing a Material Document. In 'Update task'

 MB_DOCUMENT_BEFORE_UPDATE

  method IF_EX_MB_DOCUMENT_BADI~MB_DOCUMENT_BEFORE_UPDATE.


***    TYPES: BEGIN OF WS_MESSAGE  ,"返回消息
***             MSGID  LIKE SY-MSGID,
***             MSGTY  LIKE SY-MSGTY,
***             MSGNO  LIKE SY-MSGNO,
***             MSGV1  LIKE SY-MSGV1,
***             MSGV2  LIKE SY-MSGV2,
***             MSGV3  LIKE SY-MSGV3,
***             MSGV4  LIKE SY-MSGV4,
***             LINENO TYPE MESG-ZEILE,
***           END OF WS_MESSAGE.
***    DATA IT_MESSAGE TYPE STANDARD TABLE OF WS_MESSAGE .
***    DATA WA_MESSAGE TYPE WS_MESSAGE.
***    DATA: L_MSG TYPE STRING.
***   CLEAR:WA_MESSAGE,IT_MESSAGE[].
***
***
***   LOOP AT xmseg INTO DATA(l_mseg)  .
***       SELECT SINGLE  *  FROM  mbew INTO @DATA(l_mbew)   WHERE  bwkey = @l_mseg-werks AND matnr = @l_mseg-matnr AND vprsv = 'S'.
***       IF sy-subrc = 0.
***         IF l_mseg-mat_pspnr IS INITIAL.
***           IF l_mbew-bwkey = l_mseg-werks AND l_mbew-stprs EQ 0.
****           WA_MESSAGE-MSGID = '00'.
****           WA_MESSAGE-MSGTY = 'E'.
****           WA_MESSAGE-MSGNO = '001'.
****           WA_MESSAGE-MSGV1 = l_mseg-LINE_ID.
****           WA_MESSAGE-MSGV2 = '物料标准价为0,不允许移动!'.
****           WA_MESSAGE-MSGV3 = ''.
****           WA_MESSAGE-MSGV4 = ''.
****           DESCRIBE TABLE IT_MESSAGE LINES WA_MESSAGE-LINENO.
****           WA_MESSAGE-LINENO = WA_MESSAGE-LINENO + 1.
****           APPEND WA_MESSAGE TO IT_MESSAGE.
***
***         CONCATENATE '行项目' l_mseg-LINE_ID '不允许移动!' INTO L_MSG.
****          MESSAGE E895(M7) WITH L_MSG .
****  MESSAGE E001(00) WITH L_MSG .
***exit.
***
***
***           ENDIF.
***         ELSE.
***           SELECT SINGLE feh_sta  FROM keko INTO @DATA(feh_sta)  WHERE matnr = @l_mseg-matnr AND  werks  = @l_mseg-werks AND  pspnr = @l_mseg-mat_pspnr.
***           IF feh_sta IS INITIAL  OR feh_sta NE 'VO' .
***
***           WA_MESSAGE-MSGID = '00'.
***           WA_MESSAGE-MSGTY = 'E'.
***           WA_MESSAGE-MSGNO = '001'.
***           WA_MESSAGE-MSGV1 = l_mseg-LINE_ID.
***           WA_MESSAGE-MSGV2 = '项目物料价格为0,不允许移动!'.
***           WA_MESSAGE-MSGV3 = ''.
***           WA_MESSAGE-MSGV4 = ''.
***           DESCRIBE TABLE IT_MESSAGE LINES WA_MESSAGE-LINENO.
***           WA_MESSAGE-LINENO = WA_MESSAGE-LINENO + 1.
***           APPEND WA_MESSAGE TO IT_MESSAGE.
***           CONCATENATE '行项目' l_mseg-LINE_ID '不允许移动!' INTO L_MSG.
***
****            MESSAGE E895(M7) WITH L_MSG .
****             exit.
***
***           ENDIF.
***         ENDIF.
***       ENDIF.
***     ENDLOOP.
***
***
****      IF IT_MESSAGE[] IS NOT INITIAL.
****               CALL FUNCTION 'C14Z_MESSAGES_SHOW_AS_POPUP'
****                 TABLES
****                   I_MESSAGE_TAB = IT_MESSAGE.
****
****     RETURN.
****       ENDIF.

  endmethod.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Terry谈企业数字化

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值