1. 程式人生 > >20170520 BADI增強學習

20170520 BADI增強學習

efi nts tables for standard immediate 取出 make ram


一、要求:
Tcode:FF_5 導入數據運行時,產生財務憑證之前修改某些字段值。
Exmp:
FEBRE-VWEZW
BKPF-XBLNR
FEBEP-CHECT
BSEG-ZUONR

there is a business Add-in(BADI) with the definition name FEB_BADI
that
is called immediately before the standart posting in program
RFEBBU00.
In the case, you can change the procedure of the standard posting
or make additional account assignments by changing the tables that
are to be transferred to the posting interface( FTPOST,FTCLEAR. )

To do this ,go to the sap menu and follow the path tools
->ABAP->Workbench->business Add-ins,
create an enhancement that you assing to the FEB_BADI Badi
and then implement and enhancement that
you activate the BADI, you receive a message ,

telling you that active the BADI, you receive a message ,telling you
that active implementation of this BADI already exists ,


步驟:
1.SE18: FEB_BADI
基本視圖中 TYPE - with in SAP 沒有打勾,
表明:自建BADI 是不可直接用的。

二、BADI 增強。
有的存在於標準程序出口,是使用的類,
我們創建的程序都是其中的方法。它有一些系統標準的東西,每當使用的時候,
系統可以給它很多參數。

測試:
1.SE19 創建Classic BADI: LE_SHP_DELIVERY_PROC
2.輸入自定義名稱 Implementation Name: Z_SW_TEST

3.保存出現:已移植試試Z_SW_TEST(參閱指令的長文本)
表示自動把創建的badi使用新技術,創建到new badi 中,所以需要輸入自己定義的要使用的new badi 的名


4.新建一個新的技術增強點, 點擊create,

5.新技術增強點名稱 Enhancement Implementation z_save_test

6.再回到這個屏幕後可以選擇自己建立的增強點來保存 badi,


編程註意點:1.由於使用新技術, 在定義數據或者使用語句時候不支持舊ABAP
語言。
必須使用新的定義方法或者取數據方法。

進入之後的顯示界面,如果沒有顯示出來可以使用的內表,需要點擊Signature,
可以使用的內表全是取出的數據,
不用再自己查詢,
如果沒有的再查數據庫,

盡量使用X的,不使用Y的。例如使用IT_XLIKP,不使用IT_YLIKP,X的表示最新的數據。


SE19:
classic badi:ZEH_DELIVER_SAVE
New badi: ZEH_DELIVER_SAVE_N

20170520 BADI增強學習