最近想更深入学习下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.