ABAP開發顧問必備:SAP ABAP開發技術總結

該文檔是根據我過去多年學習與工做經驗總結而成,項目開發過程當中我都會參考此文檔,主要ABAP不少細節上的東西仍是還多,不可能你記得很牢固,或者你記得一時,但過不了幾天就會忘記,畢竟同一東西你不可能一直作下去,有時項目跨度仍是比較大的,須要用的東西也不太同樣,有了此文檔,加之之前你作過ABAP,回頭再作ABAP相關的項目是沒有問題。
注:此文檔是根據我其餘文檔總結而來,詳細的文檔在我有時間後,也會慢慢貼出來,請繼續關注本博客。
html

應不少同窗的要求,現將整個文檔貼出來《ABAP技術總結》,全部內容在一個頁面,有點大,第一次打開請耐心等待。文檔爲我的整理,不免紕漏,望斧正!!web

clip_image001

下面先將目錄貼出來,後面再發布每一個章節的具體內容: 數據庫

1.      基礎瀏覽器

1.1.           基本數據類型緩存

1.1.1.        P類型(壓縮型)數據多線程

1.2.           TYPELIKE異步

1.3.           DESCRIBEide

1.4.           字符串表達式函數

1.5.           Data elementDomain工具

1.6.           詞典類型與ABAP類型轉換

1.7.           字符串處理

1.7.1.        countmatch結合

1.7.2.        FIND …SUBMATCHES

1.7.3.        FIND …RESULTS  itab

1.7.4.        正則式類

1.7.4.1.             matchesmatch

1.7.4.2.             contains

1.7.4.3.             find_all

1.7.4.4.             find_next

1.7.4.5.             get_lengthget_offsetget_submatch

1.7.4.6.             replace_all

1.8.           CLEARREFRESHFREE

1.9.           ABAP程序中的局部與全局變量

1.10.         FormFunction

1.10.1.     FORM

1.10.2.     FUNCTION

1.10.2.1.           Function Group結構

1.10.2.2.           Function參數傳值、傳址

1.11.         字段符號FIELD-SYMBOLS

1.11.1.     數據引用、對象引用

1.11.2.     ASSIGN隱式強轉

1.11.3.     ASSIGN顯示強轉

1.11.4.     UNASSIGNCLEAR

1.12.         數據引用Data References

1.13.         GET REFERENCE OF獲取變量的地址

1.14.         動態語句

1.14.1.1.           類方法動態調用

1.14.1.2.           ASSIGN 動態分配

1.14.1.2.1.       動態訪問類的屬性成員

1.15.         反射

1.15.1.     CREATE DATA ... TYPE HANDLE ...

1.15.2.     根據類型名動態建立數據Data或對象Object

1.15.3.     根據類型對象動態建立基本類型變量、結構、內表

1.15.4.     類對象反射

2.      面向對象

2.1.           類與接口定義

2.1.1.        components

2.2.           類定義、實現

2.3.           接口定義、實現

2.4.           類、接口繼承

2.5.           向下強轉型 ?=

2.6.           方法

2.6.1.        parameters

2.6.2.        PREFERRED PARAMETER首選參數

2.6.3.        普通調用

2.6.4.        簡單調用

2.6.5.        函數方法

2.7.           mesuper

2.8.           事件

2.8.1.        事件定義

2.8.2.        事件觸發

2.8.3.        事件處理器Event Handler

2.8.4.        註冊事件處理器

2.8.5.        示例

3.      內表

3.1.           LOOP AT循環內表

3.1.1.        SUM

3.1.2.        AT... ENDAT

3.1.3.        自已實現AT... ENDAT

3.2.           LOOP AT中修改當前內錶行

3.2.1.        循環中修改索引表

3.2.2.        循環中修改HASH

3.3.           第二索引

3.3.1.        使用第二索引

3.3.2.        示例

3.4.           適合全部類型的內表操做

3.5.           適合索引內表操做

4.      OPEN SQL

4.1.           SELECT INSERTUPDATEDELETEMODIFY

4.2.           條件操做符

4.3.           RANG條件內表

4.4.           FOR ALL ENTRIES

4.5.           INNER JOINLEFT OUTER JOIN使用限制

4.6.           動態SQL

4.7.           子查詢

4.7.1.        =<><<=>>=子查詢

4.7.1.1.             ALLANYSOME

4.7.2.        [NOT] IN子查詢

4.7.3.        [NOT] EXISTS子查詢

4.7.4.        相關子查詢

4.8.           統計函數

4.9.           分組過濾

4.10.         遊標

4.11.         三種緩存

4.12.         Native SQL

4.12.1.     查詢

4.12.2.     存儲過程

4.12.3.     遊標

4.13.         SAP

5.      SAP/DB LUW

5.1.           DB LUW

5.1.1.        顯式提交

5.1.2.        隱式提交

5.1.3.        顯示回滾

5.1.4.        隱式回滾

5.2.           SAP LUW

5.2.1.        SAP LUW的綁定方式

5.2.1.1.             Function

5.2.1.2.             subroutine

5.2.2.        開啓新的SAP LUW

5.2.3.        同步或異步更新(提交)

5.2.4.        本地、非本地方式提交

6.      邏輯數據庫

6.1.           組成

6.2.           結構

6.3.           選擇屏幕(Selections

6.3.1.        PARAMETERS屏幕參數擴充

6.3.2.        SELECTION-SCREEN格式化屏幕

6.3.3.        DYNAMIC SELECTIONS動態選擇條件

6.3.3.1.             DYN_SEL

6.3.3.1.1.          RSDS_TYPE-CLAUSES

6.3.3.1.2.          RSDS_TYPE-TRANGE

6.3.4.        FIELD SELECTION動態選擇字段

6.3.4.1.             SELECT_FIELDS

6.4.           數據庫程序中重要FORM

6.5.           LDB選擇屏幕:靜/動態選擇屏幕、動態選擇視圖

7.      ALV

7.1.           Layout重要字段

7.2.           FIELDCATALOG重要字段

7.3.           指定雙擊觸發的FunCode

7.4.           相關函數

7.5.           重要參數接口

7.6.           讓預置按鈕回調I_CALLBACK_USER_COMMAND

7.7.           顏色

7.8.           可編輯

7.9.           單元格數據修改後當即自動刷新

7.10.         數據有效性驗證事件:data_changed

7.11.         金額、數字類型輸入問題

7.12.         排序、分類彙總

7.13.         可打印的表頭輸出

7.14.         佈局變式讀取、切換、根據佈局格式導出數據

7.15.         動態內表

8.      OO ALV

8.1.           相關類

8.2.           控制區域、容器、Grid關係

8.3.           CL_GUI_ALV_GRID重要方法

8.4.           set_table_for_first_dispaly()方法重要參數

8.5.           事件綁定、觸發、回調處理

8.6.           CL_GUI_DOCKING_CONTAINER容器

8.7.           覆蓋(攔截)預設按鈕的功能FunCodeBEFORE_USER_COMMAND

8.8.           數據改變事件data_changeddata_changed_finished

8.9.           單元格可編輯

9.      問題

9.1.           ALV自帶導出文件時字段數據末尾被截斷問題

9.2.           Smartform Template沒法顯示減號後面內容

9.3.           Smartform金額或者數量字段顯示不出來

9.4.           更新數據庫表時,工做區或內表的結構需參考數據庫表來定義

9.5.           DELETE ADJACENT DUPLICATES…去重複

9.6.           Text使用Excel打開亂碼問題

9.7.           VBFAEKPO聯合查詢問題

10.             技巧

10.1.         READ TABLE...WITH KEY可以使用OR條件或其餘非「=」操做符

10.2.         SELECT SINGLE ... WHERE...沒法排序問題

10.3.         小心Where後的條件內表爲空時

10.4.         快速查找SO所對應的交貨單DNPO

10.5.         X類型的C類型視圖

10.6.         字符串鏈接:&& 替代 CONCATENATE

10.7.         Variant變式中動態日期

11.             優化

11.1.         數據庫

11.2.         程序

12.             屏幕

12.1.         AT SELECTION-SCREENPAIAT USER-COMMAND觸發時機

12.2.         SELECTION-SCREEN格式化屏幕、激活預設按鈕

12.3.         PARAMETERS

12.4.         SELECT-OPTIONS

12.4.1.     輸入ABAP程序默認值時,須要加上「=」

12.4.2.     選擇條件內表多條件組合規則

12.4.3.     使用SELECT-OPTIONS替代PARAMETERS

12.5.         各類屏幕元素演示

12.6.         按鈕、單選複選框、下拉框的FunCode

12.6.1.     選擇屏幕中的按鈕

12.6.2.     選擇屏幕中的單選/複選按鈕:點擊時顯示、隱藏其餘屏幕元素

12.6.3.     選擇屏幕中下拉列表:AS LISTBOX

12.7.         屏幕流邏輯

12.7.1.     FIELD

12.7.2.     MODULE

12.7.3.     ON INPUTON CHAIN-INPUT區別

12.8.         EXIT-COMMAND

12.8.1.     MODULE <mod> AT EXIT-COMMAND

12.8.2.     AT SELECTION-SCREEN ON EXIT-COMMAND

12.9.         OK_CODE

12.9.1.     ok_code使用前需拷貝

12.10.       Search help F4

12.10.1.            VALUE CHECKfixed ValuesValue Table

12.10.2.            檢查表Check Table --- Value Table

12.10.3.            SE11檢查表與搜索幫助關係

12.10.4.            F4搜索幫助聯動的決定因素

12.11.       搜索幫助參數說明

12.12.       F4IF_SHLP_EXIT_EXAMPLE幫助出口

12.12.1.            修改數據源

12.12.2.            刪除重複

12.13.       搜索幫助優先級

12.14.       搜索幫助建立函數

12.15.       POV事件裏讀取屏幕字段中的值函數

12.16.       動態修改屏幕

12.17.       子屏幕

12.18.       屏幕跳轉

12.18.1.            CALL SCREEN誤用

12.18.2.            CALL SCREEN/SET SCREEN/LEAVE TO SCREEN區別

12.19.       修改標準選擇屏幕的GUI Status

12.20.       事件分類

12.20.1.            報表事件

12.20.2.            選擇屏幕事件

12.20.3.            邏輯數據庫事件

12.20.4.            列表事件

12.20.5.            事件流圖

12.21.       事件終止

12.21.1.            RETURN

12.21.2.            STOP

12.21.3.            EXIT

12.21.4.            CHECK

12.21.5.            LEAVE

12.21.6.            REJECT

13.             列表屏幕

13.1.         標準LIST

13.2.         自定義LIST

13.3.         LIST事件

13.4.         Detail Lists 建立

13.5.         標準的 List Status

13.6.         列表屏幕上的數據與程序間的傳遞

13.6.1.     SY-LISEL

13.6.2.     HIDE

13.6.3.     READ LINE

13.7.         Screen Processing 屏幕處理切換到Lists列表輸出

13.8.         LIST 打印輸出

14.             Messages

14.1.         00消息ID中的通用消息

14.2.         消息常量

14.3.         靜態指定

14.4.         動態指定

14.5.         消息拼接MESSAGE …INTO

14.6.         修改消息顯示性爲…DISPLAY LIKE…

14.7.         RAISING <exc>:消息以異常形式拋出

14.8.         CALL FUNCTION…EXCEPTIONS

14.8.1.     error_message = n_error捕獲消息

14.9.         各類消息的顯示及處理

14.10.       異常處理

14.10.1.            RAISE [EXCEPTION]…觸發異常

14.10.1.1.         觸發類異常

14.10.1.2.         RESUMABLE選項

14.10.2.            捕獲異常

14.10.2.1.         類異常捕獲TRY…CATCH

14.10.2.2.         老式方式捕獲runtime errors(運行時異常)

14.10.3.            向上拋出異常

14.10.4.            類異常

15.             數據格式化、轉換

15.1.         數據輸入輸出轉換

15.1.1.     輸出時自動轉換

15.1.2.     輸入時自動轉換

15.1.3.     經過轉換規則輸入輸出函數手動轉換

15.2.         數量小位數格式化

15.2.1.     案例

15.3.         單位換算:UNIT_CONVERSION_SIMPLE

15.4.         貨幣格式化

15.4.1.     從表中讀取日元並正確的格式化輸出

15.4.2.     SAP 貨幣轉換因子

15.4.3.     貨幣內外格式轉換

16.             業務

16.1.         表、業務流程

16.2.         MM

16.2.1.     經常使用表

16.2.2.     庫存

16.2.3.     物料憑證

16.3.         SD

16.3.1.     

16.3.2.     訂價過程

16.3.2.1.           條件技術七要素

16.3.2.2.           條件表V/03V/04V/05

16.3.2.3.           存取順序 V/07

16.3.2.4.           條件類型 V/06

16.3.2.5.           訂價過程V/08與肯定OVKK

16.3.2.6.           VK11:價格主數據維護

16.3.2.7.           訂價計算:KONV

16.3.2.7.1.       條件類型的計算公式

16.3.2.8.           訂價過程示例

16.3.2.9.           銷售訂單中的訂價示例

16.3.2.10.         訂價通訊表KOMKKOMP

16.4.         業務概念

16.4.1.     售達方、送達方、開票方、付款方

16.4.2.     進項稅、銷項稅

16.4.3.     訂單日期、憑證日期、過帳日期

16.5.         業務知識

16.5.1.     客戶聯繫人相關信息

16.5.2.     銷售訂單合做夥伴功能

17.             加強

17.1.         第一代:基於源碼加強(子過程subroutine

17.2.         第二代:基於函數出口加強(Function

17.2.1.     示例:採購訂單屏幕加強

17.2.1.1.           定義全局變量

17.2.1.2.           子屏幕

17.2.1.3.           屏幕與業務表數據間傳遞

17.2.1.4.           相關函數說明

17.3.         第三代:基於類的加強(BADI

17.3.1.     新式BADI建立

17.3.1.1.           定義

17.3.1.2.           實現

17.3.1.3.           過濾器

17.3.1.3.1.       調用

17.3.1.4.           多個BADI/ Enhancement實現時究竟調誰

17.3.2.     經典BADI建立

17.3.2.1.           Filter-Depend.過濾器

17.3.2.1.1.       調用

17.3.2.2.           經過經典BADI擴展自定義程序(菜單、屏幕、功能)

17.3.3.     示例:經過BADI實現採購訂單屏幕加強

17.4.         第四代:Enhancement-Point

17.4.1.     爲本身程序建立顯示加強

17.4.2.     隱式與顯示加強

18.             數據批量維護

18.1.         BDCSM35SHDB

18.2.         LSMW

18.3.         業務對象和BAPI

18.3.1.     SAP業務對象(SWO1

18.3.1.1.           業務對象類型的組成

18.3.1.2.           業務對象(BO)設計

18.3.1.2.1.       建立業務表

18.3.1.2.2.       建立業務對象類型

18.3.1.2.3.       添加(繼承)接口

18.3.1.2.4.       添加關鍵字段Key

18.3.1.2.5.       添加屬性

18.3.1.2.6.       經過報表程序來實現業務對象的方法

18.3.1.2.6.1.    報表程序

18.3.1.2.6.2.    重定義接口與方法實現

18.3.1.2.6.3.    測試

18.3.1.2.7.       經過BAPI函數來實現業務對象方法

18.3.1.2.7.1.    建立BAPI參數結構

18.3.1.2.7.2.    建立BAPI函數、BAPI調用返回RETURN結果處理

18.3.1.2.7.3.    BAPI函數綁定到相應的業務方法

18.3.2.     BAPI

18.3.2.1.           BAPI瀏覽器

18.3.2.2.           SE37查找:BAPI函數的命名規則

18.3.2.3.           查找某事務碼所對應的BAPI

18.3.2.4.           經常使用BAPI函數

18.3.2.5.           調用BAPI

18.3.2.5.1.       BAPI事務處理

18.3.2.5.2.       外部系統(Java)調用BAPI函數

18.3.2.5.2.1.    直連、鏈接池

18.3.2.5.2.2.    訪問結構

18.3.2.5.2.3.    訪問表 (Table)

18.3.2.5.2.4.    Java多線程調用有/無狀態RFM

18.3.2.5.3.       ABAP訪問Java服務

18.3.2.5.4.       ABAP建立遠程目標

18.3.2.5.5.       鏈接異常registrationnot allowed

18.3.2.5.6.       帶狀態訪問

18.4.         IDoc

18.4.1.     數據段類型和數據段定義(WE31

18.4.2.     IDoc定義(WE30

18.4.3.     自定義IDoc發送與接收實例

18.4.3.1.           發送端800outbound)配置

1、建立segmentWE31

2、建立IDOC TypeWE30

3、建立Message TypeWE81

4、關聯Message TypeIDOC TypeWE82

5、建立接收端RFC DestinationSM59

6、建立到收端的端口(WE21

7、建立發送端Logical System並分配(SALE

8、建立接收端Logical SystemSALE

9、建立接收端合做和伴配置文件Partner profileWE20

10、經過ABAP程序發送IDOC

18.4.3.2.           接收端810Inbound)配置

1、建立發送端RFC DestinationSM59

2、建立發送端的端口(WE21

3、將接收端Logical System分配到Client 810SALE

4、建立入站處理函數

5、註冊入站處理函數(BD51

6、將入站函數與IDOC Type/Message Type關聯(WE57

7、建立入站處理代碼Inbound Process CodeWE42

8、建立發送端合做和伴配置文件Partner profileWE20

9、測試 BD87

19.             數據共享與傳遞

19.1.         程序調用、會話、SAP/ABAP內存 關係

19.2.         EXPORT

19.3.         IMPORT

19.4.         DELETE

19.5.         DATABASE

19.5.1.     將文件存入表中

19.5.2.     從表中讀取文件

19.6.         SAP MEMORY數據共享

19.6.1.     PARAMETERS/SELECT-OPTIONS選項MEMORY ID

19.6.2.     GET/SET PARAMETER ID

19.7.         JOB間數據傳遞

20.             拾遺

20.1.         Function調用

20.1.1.     更新FMLUW

20.1.2.     RFC函數:遠程調用

20.1.2.1.           同步

20.1.2.2.           異步

20.1.2.2.1.       事務性RFC調用

20.1.2.3.           DESTINATION 取值

20.2.         函數、類

20.3.         FTP

20.4.         文件讀寫

20.5.         Email

20.6.         XML

20.6.1.     生成

20.6.2.     解析

20.7.         OLE

20.7.1.     導出Exel文件多種方式

20.8.         ABAP示例代碼

20.9.         長文本

20.9.1.     物料長文本

20.9.2.     生產定單長文本

20.9.3.     採購定單長文本

20.9.4.     銷售定單長文本

20.10.       Smart Forms

20.11.       BOM

20.12.       傳輸請求 SE01SE09SE10

20.13.       Script Form傳輸:SCC1

20.14.       權限檢查

20.15.       容許對錶數據維護

20.16.       SE93建立事務碼

20.17.       表字段初始值、NULL等問題

20.17.1.            SE11表設置中的Initial Values

20.17.2.            底層數據庫表字段默認值

20.17.3.            ABAP初始值、底層數據庫表默認值相互轉換

20.17.3.1.         向表中插入初始值

20.17.3.2.         讀取數據

20.17.4.            SAP系統中的表字段不容許爲NULL的緣由

20.18.       ABAP中的「空」、INITIAL

20.19.       調試工具

20.19.1.            ST05

20.20.       程序建立Job(報表自已設置後臺運行,先後臺數據共享)

20.21.       SE78SWM0

20.22.       客戶端文本文件或Excel文件上傳與下載

20.22.1.            讀取客戶端TxtExcel文件到內表:TEXT_CONVERT_XLS_TO_SAP

20.22.2.            將數據內表導出爲EXCEL文件:SAP_CONVERT_TO_XLS_FORMAT

20.23.       Unicode字符串互轉

20.24.       字符編碼與解碼

20.25.       ABAP中的特殊字符列表

20.26.       下載文件

20.26.1.            BIN二進制下載

20.26.2.            以字符模式下載

20.27.       將文件上傳到數據庫表中,並可郵件發送

20.28.       AppendInclude系統表結構加強

20.29.       結構複用(INCLUDE

20.30.       經常使用事務碼

21.             經常使用Function

21.1.         日期函數

21.1.1.     日期、時間驗證

21.1.2.     內部轉換外部格式

21.1.3.     外部轉內部格式

21.1.4.     獲取Client格式

21.1.5.     日期加減

21.1.6.     轉成工廠日期

21.1.7.     日期屬性

21.1.8.     節假日

21.1.9.     年月選擇框

21.1.10.            財政年

21.1.11.            星期翻譯對照表

21.1.12.            日期所在週末、天/周、周/

相關文章
相關標籤/搜索