SAP系統增強介紹【業務加載項BAdI】
BAdI全稱Business AddIn,是基於面向對象模式的增強技術,SAP僅定義接口並在標准程序中調用接口中的方法,但這些方法中不含任何代碼,通過創建繼承該接口的類來實現方法中的處理邏輯,在標准程序運行時系統實例化類並執行相應方法中的邏輯。
BAdI分為兩種類型,典型BAdI和新BAdI,其在標准程序中實例化執行時所使用的ABAP語句不一樣,典型BAdI通過全局類CL_EXITHANDLER的靜態方法GET_INSTANCE實例化,並使用關鍵字CALL METHOD執行實例中的方法,而新BAdI通過關鍵字GET BADI和CALL BADI進行實例化和方法調用。主要差異在於新BAdI可以由ABAP編譯器檢查語法錯誤,並且可以通過“使用位置列表”功能查詢該BAdI在哪些程序中被調用。
下面以典型BAdI“BADI_FIAA_DOCLINES“為例介紹增強實施過程,通過該BAdI可以在資產折舊時基於成本中心類型(生產、銷售、管理等)切換過賬的折舊費科目。
查看BAdI接口定義
SAP菜單à工具àABAP工作台à實用程序à業務插件àSE18 – 定義
圖 12 ‑28
雙擊方法CHANGE_DOCUMENT可進入該方法的定義畫面,查看輸入和輸出參數等。
圖 12 ‑29
為該接口創建實施類
SAP菜單à工具àABAP工作台à實用程序à業務插件àSE19 – 實施
圖 12 ‑30
點擊確認 按鈕,在實施類中編寫增強代碼如 圖 12‑31 。
驗證增強結果
執行事務碼AFAB運行折舊,生成會計憑證如 圖 12‑32 。