ABAP data extract 数据抽取总结
這一個星期做得最多的工作就是Dataextract,以下是我這一個星期以來對data extract的工作總結。
?
所謂Data extract就是通過SAP ABAP代碼對數據庫數據進行抽取的操作,然后導出并保存為DAT文件。
?
在Commscope中,有SAP的ERP系統和BI的數據系統(貌似叫dataStage),由于兩個系統的數據有時會出現不一致的現象,一般情況下是BI系統的數據較少,這時就需要Dataextract。
?
當BI team 所需要的數據不存在與 BI的系統中時, 此時就需要對SAP系統的數據進行抽取,并且導入到BI的系統中。
?
Data Extract 的操作是在SAP ABAPWorkbench下完成的,通過ABAP代碼將數據以DAT的文件格式保存到Aplicationserver上。然后BI人員會通過他們的工具對DAT文件進行解析處理,這個過程需要SAP ABAP編程人員以及BI的編程人員共同完成。
?
?
以下是如何進行Data extract
?
首先,要在SAP 系統中建立一個用于抽取的程序,并且要符合以下的命名規則
程序名:ZBI_XXX(數據庫表名)
Title: BI:CommScope program for XXX extract (SAP 1)
BI:Legacy Andrew program for XXX extract (SAP 2)
?
Develp class ( ECC6-Package ):ZBI
?
Authorization group:Z_XXXX(first four letters of the tablename)
CTS ( Request ): [issue number] – ABAP extract for tableXXXX(table name)
?
在符合的規范的情況下,要進行ABAP編程以實現數據庫數據抽取。
1.??????使用Tables關鍵字對所要抽取的表進行聲明
2.??????建立存放數據的內表,命名規范為IT_XXX(數據庫表名)
3.??????建立存放數據的structure,命名規范ST_1.
4.??????structure的組建要符合命名規范F_1(字段長度) TYPE C, “ For [數據庫表名]-[字段名]
5.??????聲明i類型變量以記錄數據的數量
6.??????聲明 文件名稱DATA: DSN?? LIKERLGRAP-FILENAME. 并聲明用來儲存DAT文件名稱的變量DATA: V_PARAM(255) TYPE C.
7.??????生成DAT文件的名稱,
8.??????調用 Function module ‘FILE_GET_NAME’ 獲取文件路徑并傳遞給DSN。
9.??????打開文件進行數據抽取,OPEN DATASET DSN FOR OUTPUT IN TEXT MODE.
10.??用Select循環對數據庫表內的數據進行查詢,并放到IT_XXX內表中。
11.?? 將IT_XXX中的數據按照對應關系復制到IT_1中的字段中
12.?? 將結構體 IT_1傳到指定的文件中TRANSFER IT_1 TO DSN LENGTH nn(結構體所有字段的長度之和)。
13.?? 把記錄行數的變量疊加。
14.??endselect以后,將記錄行數的變量打印出來
15.?? 關閉文件傳輸CLOSE DATASETDSN.
?
注:?也正是在寫總結的時候,發現了自己程序中的大BUG!在使用move-corresponding IT_XXX to IT_1的時候,IT_1里根本沒有數據,因為這兩個結構體的字段名根本就不一樣!!
好危險。。。 幸虧發現。。。
?
?
?
由于data extract程序都使用的是固定模板,只需要更改數據庫表名和字段名即可,但是當數據庫表中存在大量字段時,比如說BSAD數據庫表,里面就有160多個字段,如果你每一個字段都查數據庫,并且計算所有字段的長度之和的話,工作量將會非常龐大,而且抽取的數據還不一定準確,所以我自己開發了一個專門打印 extract data program code的程序,只需要輸入數據庫表名就可以自動打印出代碼,不僅節省了時間,而且還可以降低手動編碼的錯誤幾率。
總結
以上是生活随笔為你收集整理的ABAP data extract 数据抽取总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Extract
- 下一篇: Data Remove 程序总结