BADI:UJD_ROUTINE
阿新 • • 發佈:2017-12-07
init internal float 處理 col 過濾 logs pla img
屬性
zprofitcenter為空
zid對應flat file中的ID,將zprofitcenter寫入entity屬性中
se19
name
Filter Name = BADIIMPL Name
編譯method
transformation file
get
BADI:UJD_ROUTINE
UJD_ROUTINE在將數據寫入數據庫之前,Transformation file 和Conversion file是用於幫助處理導入的數據。在BPC 10.1中,Transformation file現在支持使用兩個新的參數選項,即START_ROUTINE和END_ROUTINE。這些參數用於觸發後端ABAP系統上的BAdI得以實現,用戶可以在其中寫入自定義的ABAP code來處理數據以滿足特定的需求。
概念 :
START_ROUTINE: 作用於讀取數據源之後,但在Transformation file 和Conversion file邏輯被應用之前中觸發。通常,START_ROUTINE用於檢查,報錯,過濾。
END_ROUTINE: 所有處理完成後,在數據提交到數據庫之前調用。通常可以靈活調取自定義數據,修改數據等。
例子 :
對於END_ROUTINE BAdI實現,我們將實現將從自建表中取值,然後更新到BPC主數據中。
- ENTITY主數據屬性如下:
屬性
- 通過flat file上傳ENTITY主數據如下:
zprofitcenter為空
- 自建表數據如下:
zid對應flat file中的ID,將zprofitcenter寫入entity屬性中
步驟:
創建實施類 :se19
se19
name
Filter Name = BADIIMPL Name
編譯method
輸入代碼:
-
- METHOD if_ujd_routine~runroutine.
-
-
- DATA: lo_dataref TYPE REF TO data.
-
- FIELD-SYMBOLS: <lt_data_im> TYPE STANDARD TABLE.
-
- FIELD-SYMBOLS: <lt_data_ex> TYPE STANDARD TABLE.
-
- FIELD-SYMBOLS: <ls_data> TYPE ANY.
-
- FIELD-SYMBOLS: <lv_id> TYPE string.
-
- FIELD-SYMBOLS: <lv_ecc_cc> TYPE string
-
- * Assign importing data reference to field symbol
-
- ASSIGN ir_data->* TO <lt_data_im>.
-
- * Create work area for importing data
-
- CREATE DATA lo_dataref LIKE LINE OF <lt_data_im>.
-
- ASSIGN lo_dataref->* TO <ls_data>.
-
- * Create new internal table for exporting data
-
- CREATE DATA lo_dataref LIKE TABLE OF <ls_data>.
-
- ASSIGN lo_dataref->* TO <lt_data_ex>.
-
- * Get ECC_CC value from custom table or other datasource
- LOOP AT <lt_data_im> ASSIGNING <ls_data>.
- * 將flat file中主數據中寫入
-
- ASSIGN COMPONENT ‘ID‘ OF STRUCTURE <ls_data> TO <lv_id>.
- IF sy-subrc <> 0 OR <lv_id> IS INITIAL.
- CONTINUE.
- ENDIF.
-
- ASSIGN COMPONENT ‘ZPROFITCENTER‘ OF STRUCTURE <ls_data> TO <lv_ecc_cc>.
- IF sy-subrc <> 0 OR <lv_id> IS INITIAL.
- CONTINUE.
- ENDIF.
-
- // 具體選擇代碼如下
- select single zprofitcenter
- into <lv_ecc_cc>
- FROM zpc_cc
- where zid = <lv_id>.
-
- APPEND <ls_data> TO <lt_data_ex>.
- ENDLOOP.
- * Exporting data to exporting data references
- GET REFERENCE OF <lt_data_ex> INTO er_data.
-
- ENDMETHOD.
-
-
- transformation file
transformation file
結果:
get
結論:
舉例比較簡單,所實現的效果,可以被很多功能替代,但是可以初步了解下badi的作用。
歡迎使用 小書匠編輯器,您可以通過設置裏的修改模板來改變新建文章的內容。
BADI:UJD_ROUTINE