1、先來認識下我這個InfoCube, 三個Dimensions,三個Key Figures。很簡單的,我這次是用csv檔案倒入它的交易資料。
2、對應我的csv檔案的資料如下,A列就是Customer ID, B列是Sales Representative - New 1, C列是Material Number, D列是Price of Material, E列是0Currency,F列是Sales quantity, G列是0Unit. 請注意黃色部分,下面還有說明。
3、建立Transformation, 這一步就不詳細說明了。現在只截個圖來看看
4、重頭戲來了,建立一個DTP,其中“更新”選項卡中,勾上“NO update without Master Data”. 這個選項是表示當上傳的資料有資料據是不存在主要資料表中的,就報錯。這就是我上面黃色的那部分,MAT080是主要資料表(IO_R_MAT)中不存在。那到時上傳就會報錯,也正是我要類比的情境。其它的沒什麼特別,啟用DTP。
5、開啟剛才啟用的DTP,並將其處於edit 狀態。
6、設定DTP每一步驟的臨時儲存表。臨時儲存表用於儲存資料轉送步驟中處理的資料記錄,既有正確記錄,也有錯誤的記錄,並用不同的狀態加以標誌。還有用臨時儲存表對錯誤記錄進行處理,而不必重新從來源物件中載入資料,不會對效能造成大影響。
7、勾上Prepare Error handing和RSDS DS……. 打勾。返回DTP介面。
8、建立Error DTPs。點擊“Creating Error DTPs”按鈕。系統會問你是否要儲存,按“Yes”.
9、重新整理樹結構,發現這裡有2個DTP了,一個是用於傳輸入資料的DTP,另一個是用於處理錯誤資料後再上傳的DTP。
10、用infoPackage把CSV的資料load到PSA,再用第一個DTP上傳資料看看。有錯了,用右邊的放大鏡按鈕可以查看臨時儲存資料表裡的資料。有興趣的點入看看。
11、這裡我點上面的Error Stack,將資料修改,準備再上傳。在這裡我將MAT080改為主要資料中有的MAT001.儲存退出。
12、修改完之後,執行Error DTP.
13、執行成功了。
有了這個,那麼當我們探索資料上傳不了時,發現錯誤,不必勞心勞力從源系統中重新倒入,在錯誤堆棧修改後,直接從臨時儲存表中上傳就OK了。