SE18查看badi LE_SHP_DELIVERY_PROC.
我們會發現系統對這個badi有實現了一個類.下面我們會參考這個類的方法實現我們的需求.如圖.
1.SE19創建badi LE_SHP_DELIVERY_PROC的實現: ZI_SHP_DELIVERY_PROC.
再創建增強實現: ZIM_SHP_DELIVERY_PROC.之后如下圖,比較它與SE18的區別.
2.雙擊接口類型的方法: CHANGE_FIELD_ATTRIBUTES. 實現它,代碼如下:
method IF_EX_LE_SHP_DELIVERY_PROC~CHANGE_FIELD_ATTRIBUTES.
data: ls_field_attributes type shp_screen_attributes,
ls_xvbup type vbupvb.
if is_likp-vbeln = '0080003022'.
ls_field_attributes-name = 'LIPSD-G_LFIMG'. "屏幕字段為‘交貨數量’,修改其屬性為不可輸入.
ls_field_attributes-input = 0.
append ls_field_attributes to ct_field_attributes.
endif.
endmethod.
*******************************************************例2
初次寫BADI,如圖,我是如下步驟:
1、找到系統VL02N的BADI,“DELIVERY_PUBLISH”;
2、在SE19下創建“ZDELIVERY_PUBLISH”;
3、雙擊“PUBLISH_BEFORE_COMMIT”中寫入圖二的測試代碼;
4、激活程序,設置斷點;
然后在VL02N中執行發貨過賬操作,但是程序無法在斷點處停頓,請問是不是哪個步驟丟失了?
BADI是不是找到后,加進去代碼就可以使用?
你要定義一個實例來調用這個類接口。比如:
data: L_object type ref to <class_name>. (一般情況下為你這個實施中的接口名) 。