虽然可以在 SPRO IMG 中设定一些规则或条件进行设置Default Value ,但一般会放至 PO 的 Condition 中,不易处理特别的要求,而使用 BADI 的方法则可以方面的人工控制对应的要求。
其中主要的关键项有:
BADI : ME_PROCESS_PO_CUST
Method: PROCESS_ITEM
在Method 中使用的主要方法和属性有:
IM_ITEM->GET_HEADER( ).
IM_ITEM->GET_DATA( ).
IM_ITEM->SET_DATA( ).
示例如下:
主要作用是:针对5180 公司的 ZAS / ZAR 两个类型的PO ,则设定其 Tax Code 为 J1.
method IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM.
data: obj_header type ref to if_purchase_order_mm,
re_header type mepoheader,
re_item type mepoitem.
data: wa_bukrs type mepoheader-bukrs,
wa_bsart type mepoheader-bsart.
obj_header = im_item->get_header( ).
re_header = obj_header->get_data( ).
re_item = im_item->get_data( ).
*M1 when user enter company code/ with default company code: 5180 for either raw material/ submaterial purchasing order document type ,
* then any new input purchase order line item needs to default its tax code as “J1”
wa_bukrs = re_header-bukrs.
wa_bsart = re_header-bsart.
if wa_bukrs = '5180' and ( wa_bsart = 'ZAR' or wa_bsart = 'ZAS' ).
if re_item-mwskz is initial.
re_item-mwskz = 'J1'.
CALL METHOD im_item->set_data
EXPORTING
im_data = re_item.
endif.
endif.
endmethod.