雖然可以在 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.