SAP_ABAP_BADI AND NEW BADI
BADI是business add-in的縮寫。它是一種新的功能增強概念,使用面向對象技術。實現BADI要用到接口、實施類以及方法等面向對象的概念。
BADI增強實現過程:首先定義BADI實現,為BADI實現指定一個接口→然后創建一個實施類來實現這個接口→最后在實施類的相應方法中編寫代碼實現業務邏輯。
CLASS BADI的實現步驟:
1、SE19輸入BADI名字,比如MB_MIGO_BADI,單擊按鈕“創建實現”,在彈出的對話框中輸入BADI實現的名字和描述,比如ZMB_MB_MIGO_BADI,(自動)為BADI實現指定一個接口(IF_EX+BADI名);
2、創建一個實施類來實現這個接口(ZCL_IM_BADI名);
3、在實施類的相應方法中編寫代碼實現業務邏輯。
NEW BADI的實現步驟:
1、SE19輸入增強點名字,比如MB_MIGO_BADI,單擊按鈕“創建實現”,在彈出的對話框中輸入增強實現的名字和描述,比如ZMB_MB_MIGO_BADI_NEW,(自動)為BADI實現指定一個接口(IF_EX+BADI名);
2、創建一個實施類來實現這個接口(ZCL_IM_BADI名);
3、在實施類的相應方法中編寫代碼實現業務邏輯。
ECC 6.0中,新建CLASS BADI會自動移植到NEW BADI,實現步驟:
1、SE19輸入BADI名字,比如MB_MIGO_BADI,單擊按鈕“創建實現”,在彈出的對話框中輸入BADI實現的名字和描述,比如ZMB_MB_MIGO_BADI,(自動)為BADI實現指定一個接口(IF_EX+BADI名);
2、創建一個實施類來實現這個接口,ZCL_IM_BADI名;
3、保存,提示已移植BADI實現,回車,在彈出的對話框中,單擊創建按鈕,創建NEW BADI(增強實現),輸入增強實現的名字和描述,比如ZMB_MIGO_BADI_NEW;
4、保存激活NEW BADI;
5、刪除剛創建的BADI實現;
6、在NEW BADI(增強實現)中的執行類的相應方法中寫代碼實業務邏輯。
BADI和NEW BADI的區別:
1、CLASS BADI用call method獲取BADI,CALL METHOD CL_EXITHANDLER=>GET_INST CHANGING INSTANCE = badi_name
NEW BADI不能用call method獲取BADI,要用GET BADI badi_name;
2、CLASS BADI用CALL METHOD調用BADI中的方法 CALL METHOD badi_name->method EXPORTING LGORT = wa_lgort;
NEW BADI用CALL BADI調用BADI中的方法 CALL BADI badi_name->method EXPORTING LGORT = wa_lgort;
3、NEW BADI中新增了ENHANCEMENT SPOT增強點、ENHANCEMENT SECTION以及隱式增強點的概念。
總結
以上是生活随笔為你收集整理的SAP_ABAP_BADI AND NEW BADI的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查找badiexit
- 下一篇: JAVA中JDK环境变量配置