ABAP開發培訓入門_第1頁
ABAP開發培訓入門_第2頁
ABAP開發培訓入門_第3頁
ABAP開發培訓入門_第4頁
ABAP開發培訓入門_第5頁
已閱讀5頁,還剩34頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第 1 頁 ABAP開發培訓什么是什么是ABAP?Advanced Business Application Programming高級商業應用程序設計。是SAP專有的開發語言,SAP的應用程序就是用ABAP語言開發的。第 2 頁ABAP開發培訓ABAP的開發環境展示第 3 頁ABAP開發培訓SAP的三層架構表示層應用層數據庫第 4 頁ABAP開發培訓ABAP程序的種類報表最常見的ABAP程序,展示數據,比如財務的三大報表。接口常見的接口如RFC/BAPI,iDoc,Webservice。這些都是以Function Module為基礎的。增強對標準程序的增強(改動)。Dialog帶交互的程序,

2、SAP標準的事物碼很多就是Dialog。第 5 頁ABAP開發培訓數據類型默 認大小有效 大小初始值說明 C11 - 65535SPACE文 本,字符(字母數字字 符)最常用的格式D8800000000日 期(格式: YYYYMMDD) F880浮 點數。用于計算,精確范圍近 似15 位十進制數,精確計算用PI440整 型(整數)。用于計算 計數 項目號 N11 - 6553500.0數字文本,不用于計算。會計科目,郵編等P81 - 160組合數 ,指定長度和小數點位數。數量 金額 距離等,可用于計算T66000000時 間(格式: HHMMSS) X11 - 65535X00十 六進制STR

3、ING動態長度的字符串,日志文本,描述性文字等XSTRINGASCIIABAP的數據類型-基本數據類型第 6 頁ABAP開發培訓用戶定義的基本數據類型完全是以預定義的基本數據類型為基礎的。使用TYPES語句定義自己的基本數據類型。TYPES: NUMBER TYPE I, LENGTH TYPE P DECIMALS 2, CODE(3) TYPE C.DATA: NO_FLIGHTS TYPE NUMBER, NO_PASSENGERS TYPE NUMBER, DISTANCE TYPE LENGTH, HEIGHT TYPE LENGTH, CITY_CODE TYPE CODE, CO

4、UNTRY_CODE TYPE CODE.數據類型可以在程序內部定義,但只能程序內部用;也可以在程序外部定義,這樣全局都可以使用 (事物碼SE11)。ABAP的數據類型-用戶定義的基本數據類型第 7 頁ABAP開發培訓兩種結構化數據類型: 結構(Structure) 和 內表(Internal Table)。Structure: 本質上講是一個由多個字段組成的字段串,在程序中只能存儲一條數據,如果不好抽象化,可以理解為Excel的一行。Internal Table: 多行多列,可以理解為一個Structure縱向拉長。內表分3種,標準表,排序表,哈希表。結構和內表可以在程序內部定義,但只能程序

5、內部用;也可以在程序外部定義,這樣全局都可以使用 (事物碼SE11)。ABAP的數據類型-結構化數據類型第 8 頁ABAP開發培訓TYPES語句定義類型,DATA語句聲明變量,如剛才用到的例子:TYPES: NUMBER TYPE I, LENGTH TYPE P DECIMALS 2, CODE(3) TYPE C.DATA: NO_FLIGHTS TYPE NUMBER, DISTANCE TYPE LENGTH, CITY_CODE TYPE CODE,CONSTANTS語句定義常量:CONSTANTS PI TYPE P DECIMALS 5 VALUE 3.14159.Hint: 變

6、量的命名參照開發規范。ABAP程序的數據定義第 9 頁ABAP開發培訓實際應用中,更多是直接用LIKE語句定義變量。DATA: ZMATNR LIKE MARA-MATNR, “物料號 ZMTART LIKE MARA- MTART. “物料類型或者DATA ZMATNR LIKE MARA-MATNR.DATA ZMTART LIKE MARA- MTART. 兩者的意義完全相同。DATA 變量名 LIKE 表-字段名(結構-字段名)DATA 變量名 LIKE 系統標準變量ABAP程序的數據定義第 10 頁ABAP開發培訓結構變量的定義:結構DATA : BEGIN OF GS_MARC,

7、MATNR LIKE MARC-MATNR, WERKS LIKE MARC-WERKS, PSTAT LIKE MARC- PSTAT, BWTTY LIKE MARC- BWTTY, EKGRP LIKE MARC- EKGRP, END OF GS_MARC.這是一個5個字段的結構。G代表global, S代表Structure.結構也可以用SE11事物碼在系統里定義,所有程序都可以使用,但命名必須以Z開頭。Hint: 結構變量的命名有規則,參見開發規范ABAP程序的數據定義第 11 頁ABAP開發培訓結構變量的定義:內表DATA : BEGIN OF GS_MARC, MATNR LI

8、KE MARC-MATNR, WERKS LIKE MARC-WERKS, PSTAT LIKE MARC- PSTAT, BWTTY LIKE MARC- BWTTY, EKGRP LIKE MARC- EKGRP, END OF GS_MARC.DATA: GT_MARC LIKE STANDARD TABLE OF GS_MARC.GT_MARC就是一個標準內表。Hint: 結構變量的命名有規則,參見開發規范ABAP程序的數據定義第 12 頁ABAP開發培訓結構變量的定義:結構和內表的多種定義方式鑒于SAP有大量標準的數據類型供參考,結構變量的命名有多種方式,例如:(MARC是系統標準表

9、,MAAPV是標準結構,自建結構和自建表同例)結構: DATA GS_MARC LIKE MARC.內表: DATA GT_MARC LIKE TABLE OF MARC.結構: DATA GS_MAAPV LIKE MAAPV.內表: DATA GT_MAAPV LIKE TABLE OF MAAPV.結構: DATA GS_MARC2 LIKE LINE OF GT_MARC.內表: DATA GT_MAAPV2 LIKE TABLE OF GS_MAAPV.Hint: 結構變量的命名有規則,參見開發規范ABAP程序的數據定義第 13 頁ABAP開發培訓結構變量的定義:內表和工作區。工作區

10、是相對于內表而言的,在操作內表時,系統需要先把數據從內表取出來存放到對應的工作區,再進行相關的操作。通常情況下,定義一個內表的同時需要定義一個工作區。工作區通過結構定義。DATA GS_MARC LIKE MARC.DATA GT_MARC LIKE TABLE OF MARC.結構GS_MARC就可以作為內表GT_MARC的工作區。其他定義方式同此例。ABAP程序的數據定義第 14 頁ABAP開發培訓結構變量的定義:表頭。DATA GT_MARC LIKE MARC OCCURS 0 WITH HEADER LINE.此語句會聲明一個帶有同名表頭的內表,表頭可作為工作區。這種命名方式會節省一

11、些代碼量,但不推薦使用,容易混亂。還是推薦使用一個內表+一個工作區的方式。有些比較舊的程序用的是這種帶表頭的內表,在這些程序里,以GT_MARC為例:GT_MARC表示工作區,GT_MARC-MATNR表示字段,GT_MARC表示整個內表。ABAP程序的數據定義第 15 頁ABAP開發培訓賦值:DATA VAR1 (3) TYPE C VALUE abc.DATA VAR2(3) TYPE C.MOVE VAR1 TO VAR2.VAR2 = VAR1.VAR2 = abc.以上3條語句意義返回結果相同。賦值時注意數據格式,要求數據格式相同,或者兩邊存在轉換規則,否則會報錯。基本ABAP語句第

12、 16 頁ABAP開發培訓運算: 二元操作符包括: + :加法 - :減法 * :乘法 / :除法 * :乘方 DIV :整除忽略余數 MOD :取余數 需要注意,圓括號和操作符都是關鍵字,需要跟操作數之間至少用一個空格分開。(1+2)*3 應該寫成 ( 1 + 2 ) * 3基本ABAP語句第 17 頁ABAP開發培訓條件:基本ABAP語句IF A B. ELSE. ENDIF.IF. ELSEIF. ELSEIF. ENDIF.CASE var. WHEN a. WHEN b. WHEN OTHERS. ENDCASE. 第 18 頁ABAP開發培訓循環:ABAP的循環分四種:DO . W

13、HILE. ENDDO. ENDWHILE.LOOP SELECT. ENDLOOP. ENDSELECT.基本ABAP語句第 19 頁ABAP開發培訓循環:DOENDDO.DO和ENDDO之間的語句塊會無限運行,直到遇到條件控制的跳出循環語句如EXIT等。在DO語句中還可以指定最多運行的次數,否則的話,將會出現無限循環無限循環。WHILEENDWHILE.在WHILE和ENDWHILE之間的語句塊會一直執行,直到不再滿足WHILE后面所指定的條件。WHILE循環用的不多。基本ABAP語句第 20 頁ABAP開發培訓循環:LOOPENDLOOP.循環讀取內表的數據到工作區,供程序處理。實際應用

14、最多的循環語句。一般情況下ABAP推薦把數據從數據庫(硬盤)讀到內表(內存),幾乎有程序就有內表,有內表就有LOOP循環。SELECTENDSELECT.循環讀數據庫。影響效率,不建議使用,建議用FOR ALL ENTRIES IN語句一次性把數據讀入內表。基本ABAP語句第 21 頁ABAP開發培訓消息:MESSAGE 語句向程序的用戶發送對話消息,使用MESSAGE 語句必須指定三位數的消息號和消息類。MESSAGE E001(ZFI001)。事物碼SE91維護消息類和消息。也可以在程序里寫硬消息:MESSAGE 程序運行錯誤 TYPE E.但不推薦使用這種不規范的方式。基本ABAP語句第

15、 22 頁ABAP開發培訓操作結構和內表:結構訪問結構里的字段。GS_MARC-MATNR.結構里最常用的語句是MOVE-CORRESPONDING 語句。把一個結構的內容同時全部拷貝到另一個結構中。只有源結構和目標結構中有相同名稱的組件才會拷貝,而目標結構中名稱無法對應的組件保持不變。需要注意,如果兩個結構中同名的組件有不同定義的話,拷貝時可能會出錯。基本ABAP語句第 23 頁ABAP開發培訓操作結構和內表:內表訪問單條記錄 一般來說,需要一個與內表行結構相同相同的工作區來處理單條記錄。 APPEND:往內表的最后追加一條記錄,只能用于標準表。 INSERT:向內表插入一條記錄,在標準表里

16、跟 APPEND 的效果一樣,在排序表里就插入到鍵指定的位置,在哈希表里則根據哈希運算法則插入到指定位置。 READ TABLE:把表的指定行拷貝到結構中。 MODIFY:使用結構的內容重寫表的指定行。 DELETE:刪除表的指定行。 COLLECT:把結構中的內容累加到內表具有相同鍵的行上,這時,只有非鍵字段才執行累加,并且只有非鍵字段都是數值的時候才能執行這個語句。一般內表里多個字段需要同時匯總時會用到COLLECT語句,比如財務的一些報表。基本ABAP語句第 24 頁ABAP開發培訓操作結構和內表:內表訪問多條記錄(結果集)處理結果集合 LOOP ENDLOOP:LOOP 語句一條一條的

17、讀出內表的數據行,寫入 INTO 字句指定的結構中,結構的內容可用于輸出,或者修改后寫回內表。 DELETE:刪除滿足條件的所有行。 INSERT:把一個內表中的多行拷貝到另一個內表中。 APPEND:把一個內表中的多行追加到另一個標準表中。 想修改內表的某一行只能先把那行讀到工作區,修改工作區后再寫回內表,而不能以數組的方法訪問到內表的指定一行,這是跟其他語言很不一樣的地方。基本ABAP語句第 25 頁ABAP開發培訓操作結構和內表:內表使用索引讀表(標準表和排序表) LOOP 中用 FROM - TO 子句可以讀指定索引段的記錄。 READ 中用 INDEX 子句可以讀指定索引的一條記錄。

18、使用條件讀表 LOOP 中用 WHERE 子句可以讀滿足一定條件的記錄。 READ 中用 With KEY 子句可以讀滿足主鍵條件的記錄。內表排序 標準表和排序表可以使用 SORT 語句對指定字段進行排序,如果沒有指定升序或者降序就默認使用升序。基本ABAP語句第 26 頁ABAP開發培訓操作結構和內表:內表 REFRESH:清除整個內表的內容,釋放部分內存,保留一些以備后續操作。 CLEAR:對于沒有表頭的內表,跟 REFRESH 一樣,清除內表的內容。對于有表頭的內表,則只初始化表頭。 FREE:清除整個內表的內容,釋放所有內存。在程序里,當內表以后不再使用的時候可以使用 FREE,這樣能

19、盡量多釋放一些不用的內存。基本ABAP語句第 27 頁ABAP開發培訓數據獲取- SAP后臺可以連接多種數據庫,ORACLE, DB2, SQLSERVER,SYBASE- 每種數據庫都有自己特點的SQL語法,不可能在開發時根據后臺數據庫的種類選擇SQL語法,所以SAP用的是無關SQL標準的開放SQL,執行時由SAP負責轉化成各種數據庫能運行的SQL。數據庫操作第 28 頁ABAP開發培訓數據獲取使用開放SQL的 SELECT 語句來執行查詢,它包含幾個基本的組成部分。 基本語法:SELECT FROM INTO WHERE SELECT 后面的塊說明了需要讀表的哪些字段。 FROM 后面的塊

20、說明了需要讀哪個數據源(數據源可以是表或者視圖)。 INTO 后面的塊說明了讀出的字段要放到哪個目標數據對象中(結構或內表)。 WHERE 后面的塊說明了讀數據的基本條件,可選。SELECT MATNR WERKS PSTAT BWTTY EKGRP INTO TABLE GT_MARC FROM MARC WHERE WERKS = 1000.數據庫操作第 29 頁ABAP開發培訓數據獲取獲取單條數據- 用 SELECT SINGLE 語句。- 如果目標結構的數據結構與查詢字段的順序不一致,或者使用 * 這樣的通配符來指定查詢字段,就需要CORRESPONDING FIELDS OF 子句,

21、它會自動在源字段和目標字段之間找名稱相同的項自動對應填入。這是常用的方式。SELECT SINGLE * INTO CORRESPODING FIELDS OF GS_MARC FROM MARC WHERE MATNR = 000000001 AND WERKS = 1000.SELECT SINGLE語句是在數據庫表所有的KEY鍵都被用到的時候使用的,執行效率很高,可以用* 。數據庫操作第 30 頁ABAP開發培訓一個常見的報表的組成- 選擇屏幕。輸入數據的篩選條件。- 數據定義。定義程序中用到的變量和常量,包括單個變量、結構、內表等。- 數據獲取。一般是通過一定的條件從數據庫讀取出來,或

22、者上傳的TXT/EXCEL文檔。- 數據處理。按照FUNCTION SPEC的要求,對獲得的數據進行處理(增刪改BAPI)。- 展示。輸出處理好的數據。報表程序介紹第 31 頁ABAP開發培訓選擇屏幕-屏幕元素定義PARAMETERS: P_WERKS LIKE MARD-WERKS OBLIGATORY. “工廠SELECT-OPTIONS: S_MATNR FOR MARD-MATNR, “物料 S_LGORT FOR MARD-LGORT, “庫存地點 S_LFGJA FOR MARD-LFGJA, “年度 S_LFMON FOR MARD-LFMON. “月度報表程序介紹第 32 頁A

23、BAP開發培訓選擇屏幕-屏幕效果報表程序介紹第 33 頁ABAP開發培訓選擇屏幕-數據定義TABLES: MARD,MAKT.DATA: BEGIN OF GS_MARD, MATNR LIKE MARD-MATNR, WERKS LIKE MARD-WERKS, LGORT LIKE MARD-LGORT, PSTAT LIKE MARD-PSTAT, LFGJA LIKE MARD-LFGJA, LFMON LIKE MARD-LFMON, LABST LIKE MARD-LABST, MAKTX LIKE MAKT-MAKTX, END OF GS_MARD.DATA GT_MARD L

24、IKE TABLE OF GS_MARD.報表程序介紹第 34 頁ABAP開發培訓選擇屏幕-屏幕輸出相關數據定義TYPE-POOLS: SLIS.*ALV 變量定義.DATA: WS_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE, I_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.DATA: WS_FIELDGROUPS_TAB TYPE SLIS_T_SP_GROUP_ALV, WS_LAYOUT TYPE SLIS_LAYOUT_ALV, WS_SORTFIELDS_TAB T

25、YPE SLIS_T_SORTINFO_ALV WITH HEADER LINE, WS_EVENTS TYPE SLIS_T_EVENT.DATA: V_REPID LIKE SY-REPID. 報表程序介紹第 35 頁ABAP開發培訓數據獲取和處理 SELECT AMATNR AWERKS ALGORT APSTAT ALFGJA ALFMON ALABST BMAKTX INTO TABLE GT_MARD FROM MARD AS A INNER JOIN MAKT AS B ON AMATNR = BMATNR WHERE BSPRAS = 1 AND AWERKS = P_WERKS AND AMATNR IN S_MATNR AND ALGORT IN S_LGORT AND ALFGJA IN S_LFGJA AND ALFMON IN S_LFMON. DELETE GT_MARD WHERE MAKTX IS INITIAL. 報表程序介紹第 36 頁ABAP開發培訓輸出-構建輸出元素 WS_FIELDCAT-TABNAME = GT_MARD. WS_FIELDCAT-FIELDNAME = MATNR. “字段名 WS_FIELDCAT-SELTEXT_L = 物料. ”字段文本 WS_FIELDCAT-COL_POS = 1. “輸出位置 WS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論