
標准數據源、自定義數據源 兩種類型
EXIT_SAPLRSAP_001:增強業務數據源
EXIT_SAPLRSAP_002:增強主數據屬性數據源
EXIT_SAPLRSAP_003:增強主數據文本數據源
EXIT_SAPLRSAP_004:增強層次結構數據源。
*& 包括 ZXRSAU01
*&---------------------------------------------------------------------*
CASE I_DATASOURCE.
WHEN '2LIS_11_VAHDR'.
TABLES : JCDS.
DATA : L_TABIX TYPE SY-TABIX.
DATA : L_S_VAHDR LIKE MC11VA0HDR.
DATA : BEGIN OF WA_JCDS,
OBJNR TYPE J_OBJNR,
UDATE TYPE CDDATUM,
END OF WA_JCDS.
DATA : IT_JCDS LIKE STANDARD TABLE OF WA_JCDS.
SELECT OBJNR UDATE
INTO CORRESPONDING FIELDS OF TABLE IT_JCDS
FROM JCDS
WHERE OBJNR BETWEEN 'VB0000000000000000' AND 'VBZZZZZZZZZZZZZZZZ'
AND STAT = 'E0003'
AND INACT = ''.
SORT IT_JCDS BY OBJNR UDATE DESCENDING.
LOOP AT C_T_DATA INTO L_S_VAHDR.
L_TABIX = SY-TABIX.
READ TABLE IT_JCDS INTO WA_JCDS WITH KEY OBJNR = L_S_VAHDR-OBJNR.
IF SY-SUBRC <> 4.
L_S_VAHDR-ZZUDATE = WA_JCDS-UDATE.
MODIFY C_T_DATA FROM L_S_VAHDR INDEX L_TABIX.
ENDIF.
CLEAR WA_JCDS.
ENDLOOP.
CLEAR WA_JCDS.
ENDCASE.
DATA: L_METHOD TYPE SEOCMPNAME.
CHECK C_T_DATA[] IS NOT INITIAL.
CONCATENATE 'ZM_' I_DATASOURCE INTO L_METHOD.
SELECT SINGLE CMPNAME
INTO L_METHOD
FROM SEOCOMPO
WHERE CLSNAME = 'ZCL_IM_RSU5_SAPI_BADI'
AND CMPNAME = L_METHOD.
IF SY-SUBRC = 0.
CALL METHOD (L_METHOD)
EXPORTING
I_UPDMODE = I_UPDMODE
I_T_SELECT = I_T_SELECT
I_T_FIELDS = I_T_FIELDS
CHANGING
C_T_DATA = C_T_DATA
C_T_MESSAGES = C_T_MESSAGES.
ENDIF.
ENDMETHOD.
SD
Data sources Tables
2LIS_11_VAKON VBUK, VBUP, VBAK, VBAP, VBKD, KOMV, T001.
2LIS_11_VAHDR VBAK, VBUK, T001
2LIS_11_VAITM VBAP, VBUP, VBAK, VBKD, VBAJP, T001, VBUK, PRPS.
2LIS_11_VASCL VBAP, VBUP, VBAK, VBEP, VBKD, T001, PRPS
2LIS_11_VASTH VBUK
2LIS_11_VASTI VBUP, VBUK
2LIS_11_V_ITM VBAP, VBAK, VBKD, VBUP, T001, PRPS, VBUK.
2LIS_11_V_SCL VBUP, VBEP, VBKD, VBAP, VBAK, T001, PRPS.
2LIS_11_V_SSL VBAP, VBEP, LIPS, WVBEP, VBUP
2LIS_13_VDKON VBUK, VBRP, KOMV, T001, VBRK.
*************************************************
BW中的增強(全)
根據所了解的資料,BW中的有關增強可分為五部分,如下:
1、 數據抽取增強,即在標准數據源中加入數據源中所不存在的字段,或者標准數據源不存在所需數據而需要自定義數據源,相關的事務代碼有RSO2(用於定義一般數據源)、RSA6(維護數據源,用於增加其他字段)、SMOD(出口:RSAP0001,其中EXIT_SAPLRSAP_001用於業務數據,EXIT_SAPLRSAP_002用於主數據,EXIT_SAPLRSAP_003用於文本,EXIT_SAPLRSAP_004用於層次)
2、 數據傳輸增強,首先對於導入的外部數據(比如Excel)的信息包,在提取選項的文件名稱處可寫入代碼,用於創建動態的文件名,另外就是開始例程(一般用於數據清洗和合並)、傳輸規則和結束例程,還有一種專家例程(沒用過)
3、 BEx變量增強,即Query Designer中的變量增強,事務代碼:SMOD(出口:RSR00001,功能模塊:EXIT_SAPLRRS0_001),增強的調用時間分為四種:
Step 1(I_STEP = 1): is called before the processing of the variable pop-up and gets called for every variable of the processing type,"customer exit." You can use this step to fill your varibale with a default or proposal value.
Step 2(I_STEP = 2): is called after porcessing of the variable pop-up. This step is called only for those variables that are not marked as "ready for input" and are set to "mandatory variable entry"
Step 3(I_STEP = 3): is called after all variable processing and gets called only once and not per variable. Here you can validata the user entries.
Step 0(I_STEP = 0): is called for variables that are used in authorizations objects.
Note: You can nto overwrite the user input values into a variable with this customer exit. You can only derive values for other variables or validate the user entries.
注意:不可以使用出口覆蓋用戶輸入的變量值,只可以從別的變量衍生值或者確認用戶輸入
4、 虛擬立方體、關鍵值、特征增強,虛擬關鍵值和特征不存在與數據目標中,而是在運行時計算,使用虛擬關鍵值和特征可實現復雜的邏輯和數據庫的存取,原使用出口RSR00002,現在使用BADI:RSR_OLAP_BADI,相關事務代碼:SE19(用於創建BADI的implementation),具體應用暫未實踐
5、 處理鏈增強,在處理類型的一般程序中可以使用ABAP程序對處理鏈進行特殊的處理,比如記錄報錯信息或者執行另外的處理鏈等,相關事務代碼:SM62(用於查看事件歷史和管理),具體應用暫未實踐