SAP:Enhancements CO11N

本文介绍了在SAP中针对生产订单报工界面CO11N的增强,包括数量验证和用户退出(User Exit)的使用。通过示例代码展示了如何检查确认数量是否超过已发行组件,并解释了BADI(Business Add-In)WORKORDER_GOODSMVT在处理货物移动时的各种检查和操作,提供了接口方法的详细说明,如BACKFLUSH、GOODS_RECEIPT等。同时强调了BADI实现的激活至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 "确定数量超过已发行元件数量


if sy-tcode 'CO11N'. 
  tables:mseg,resb.
  data itab like afpo .
  data erfmg like mseg-erfmg.
  data erfmg1 like mseg-erfmg.
  data bdmng like resb-bdmng.
  data enmng like resb-enmng.
  data it_resb like resb occurs with header line.
  data itab1 like resb occurs with header line.
  select single into itab from afpo where aufnr caufvd_tab-aufnr.
  if sy-subrc 0.
*
    clear erfmg.
    erfmg itab-wemng + caufvd_tab-igmng.
    clear erfmg1.
    select into table it_resb from resb where aufnr caufvd_tab-aufnr and bdmng <> 0.
    itab1[] it_resb[].
    sort itab1 by matnr.
    delete adjacent duplicates from itab1 comparing matnr.
    loop at itab1.
      clear bdmng.
      loop at it_resb where matnr itab1-matnr.
*  select * from resb where aufnr = i_mseg-aufnr.
        bdmng bdmng + it_resb-bdmng.
      endloop.
      clear enmng.
      if itab1-alpgr <> ''.
        select from resb where aufnr caufvd_tab-aufnr and alpgr itab1-alpgr.
          enmng enmng  + resb-enmng.
        endselect.
      else.
        loop at it_resb where matnr itab1-matnr.
          enmng enmng + it_resb-enmng.
        endloop.
      endif.
      if itab-psmng <> 0.
        erfmg1 bdmng / itab-psmng * erfmg.
      endif.

      if enmng < erfmg1.
        message 'Confirmed quantity exceed issued component quantity' type 'E'.
      endif.

    endloop.
  endif.
endif.

 BADI:
 

CO12,CO11N 生产订单报工中货物移动界面的BADI.

BADI名称:WORKORDER_GOODSMVT
BADI功能:处理货物移动时的各种检查,操作。

BADI接口:IF_EX_WORKORDER_GOODSMVT

BADI接口方法:

BACKFLUSH                                    Confirmation: Backflush
GOODS_RECEIPT                             Confirmation: Automatic Goods Receipt
MANUAL_GOODS_RECEIPT               Manual Goods Receipt for Order
IM_CALLED                                     Time after Inventory Management is Called
PICKLIST Pick list
GM_SCREEN_LINE_CHECK               Goods Movement Overview: Line Check”货物移动行检查
GM_SCREEN_OKCODE_CHECK         Goods Movement Overview: OK Code Check“货物移动功能码检查
COGI_AUTHORITY_CHECK                Postprocessing: Authorization Check”权限检查
COGI_POST                                     Postprocessing of Incorrect Goods Movements“错误货物移动处理

 

使用BADI:

SE19定义BADI  WORKORDER_GOODSMVT的实现Z_WORKORDER_GOODSMVT。
在接口方法中实现自己所需要的功能。


激活BADI。

可以在此处激活与取消激活BADI

也可以在BADI中利用菜单激活与反激活:

激活BADI的时候经常出现把接口方法激活了,但是没有激活BADI,所以你所要实现的功能也就不会起作用。

切记一定要把BADI的实现激活。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值