ME21N/ME22N/ME23N屏幕增强BADI ME_GUI_PO_CUST

本文详细介绍了如何使用经典BADI进行SAP采购订单头屏幕增强,涉及ME_GUI_PO_CUST和ME_PROCESS_PO_CUST两个BADI的实现步骤,包括创建Function Group、定制subscreen、BADI实施、field状态修改等,最终实现在ME21N、ME22N和ME23N中显示并处理自定义字段。

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

最近想更深入学习下classic BADI, 以前没玩过BADI屏幕增强, 所以决定玩一下.

这次的屏幕增强主要用到两个BADI: ME_GUI_PO_CUST和ME_PROCESS_PO_CUST


这两个BADI都是有例子的, 可以在se18那里按GoTo->Sample code->Display来查看, 也可以直接在SE24查看类CL_EXM_IM_ME_GUI_PO_CUST和CL_EXM_IM_ME_PROCESS_PO_CUST



现在我们对PO header加上自己的subscreen, SAP的例子提供的是对item增加subscreen.


Step 1: Create Function Group

仿照Function Group MEPOBADIEX建一个Function Group

我建的Function Group如下图所示



Step 2: 在Function Group里建Screen, screen number随便



在TOP里面加入对应屏幕的变量, 这里我是直接用tables.



Step 3: 给BADI ME_GUI_PO_CUST建一个implementation


在Public Section里加上TYPE-POOLS mmmfd .





Step 4: 在Method IF_EX_ME_GUI_PO_CUST~SUBSCRIBE, 加入custom subscreen的设置代码

METHOD if_ex_me_gui_po_cust~subscribe.
  DATA: lw_subscribers TYPE mepo_subscribers.

* we want to add a customer subscreen on the Header tab
  CHECK im_application = 'PO'.
  CHECK im_element     = 'HEADER'.

  CLEAR lw_subscribers.
  lw_subscribers-name = subscreen1.
  lw_subscribers-dynpro = '0100'.
  lw_subscribers-program = 'SAPLZCI_EKKODB'.
  lw_subscribers-struct_name = 'CI_EKKODB'.
  lw_subscribers-label = 'Zero test2'.
  lw_subscribers-position = 11.
  lw_subscribers-height = 8.
  APPEND lw_subscribers TO re_subscribers.
ENDMETHOD.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值