abap training_ABAP培訓_第1頁
abap training_ABAP培訓_第2頁
abap training_ABAP培訓_第3頁
abap training_ABAP培訓_第4頁
abap training_ABAP培訓_第5頁
已閱讀5頁,還剩134頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、SAP系統(tǒng) ABAP開發(fā)培訓,Information Classification: Internal,ABAP語言與開發(fā)平臺介紹 基本語法介紹 ABAP報表開發(fā)結(jié)構 Function開發(fā) 數(shù)據(jù)字典 ABAP報表ALV輸出 批處理程序開發(fā) SAP事務程序開發(fā) Query開發(fā) Smart Form表單開發(fā) ABAP性能優(yōu)化與命名規(guī)則,目錄,2,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字,ABAP/4是英文Advanced Business Application Programming的縮寫,是SAP R/3商用系統(tǒng)的應用 程序開發(fā)工具 ABAP/4是所有SAP

2、R/3應用的基礎,也是進行 SAP R/3二次開發(fā)的最主要的工具,是我們對SAP R/3系統(tǒng)進行應用分析、二次開發(fā)的主要方式,ABAP語言與開發(fā)平臺介紹,3,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字,用途: ABAP是 SAP 特有的用于數(shù)據(jù)查詢,功能增強,畫面交互,系統(tǒng)互連等的 有效開發(fā)工具 從而有效提高工作效率,ABAP語言與開發(fā)平臺介紹,4,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字,ABAP 開發(fā)對象: Abap Editor Dictionary Menu Painter Screen Painter Function

3、 Builder Etc,ABAP語言與開發(fā)平臺介紹,5,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字,ABAP語言與開發(fā)平臺介紹 基本語法介紹 ABAP報表開發(fā) Function開發(fā) 數(shù)據(jù)字典 ABAP報表ALV輸出 批處理程序開發(fā) SAP事務程序開發(fā) Query開發(fā) Smart Form表單開發(fā) ABAP性能優(yōu)化與命名規(guī)則,目錄,6,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字,Abap 常用 Tcode: se38 se80 se11 se16 等等,7,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字

4、,基本語法介紹,8,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字,基本語法介紹,9,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字,程序名一般以Y 或 Z 開頭 ,在整個系統(tǒng)中唯一,基本語法介紹,10,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字,屬性設定:可執(zhí)行,包含 ,模塊池,基本語法介紹,11,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字,分配 對象及類,練習程序一般都保存為本地對象,基本語法介紹,12,基本語法介紹,代碼書寫規(guī)則,一條完整的代碼以 . 分隔。 多條代碼可

5、以寫在同一行。 一條代碼可以分為多行編寫。 以 “ 對其后的代碼進行注釋 以 * 對整行的代碼進行注釋 關鍵字與關鍵字或變量都以空格分隔,簡單示例,基本語法介紹,data v1(l) type t decimals d value xxx. v1 是變量名。 (l) 是變量的長度。 t是數(shù)據(jù)類型。 d是小數(shù)位。 xxx是缺省值。 data num(10) type p decimals 3 value 1.12. 以上定義了一個10位長度3位小數(shù)缺省值為1.12數(shù)字變量,14,定義變量,基本語法介紹,15,基本語法介紹,16,基本語法介紹,17,輸入?yún)?shù),在程序運行之前,往往需要輸入某些參數(shù),

6、例如查詢的日期、查詢的城市等。 在ABAP/4中,你不需要自己來編寫輸入?yún)?shù)的界面,你只需要定義要作為參數(shù)的變量,系統(tǒng)將自動提供輸入界面。 要讓一個變量成為可輸入的參數(shù),只需在定義變量時把data改為parameters 即可,基本語法介紹,18,輸入?yún)?shù)的格式(1): parameters p1 like v1 . . default xxx obligatory lower case as checkbox radiobutton group g. default :指定缺省值; obligatory:設置必輸項; lower case:轉(zhuǎn)換成小寫,默認會把輸入的字符轉(zhuǎn)為大寫; as ch

7、eckbox :設置成checkbox; radiobutton group:設置成radiobutton; 示例: parameters:p1(20) type c default A. 以上代碼指定了一個缺省值為A的長度為20的字符串,基本語法介紹,19,輸入?yún)?shù)的格式(2): select-options: for DEFAULT TO OBLIGATORY NO INTERVALS. . . 該語句創(chuàng)建選擇表 , 該表與數(shù)據(jù)庫表的列 或內(nèi)部字段 相連接。該數(shù)據(jù)庫表必須在程序中用TABLES 語句聲明。 名稱 最多可以包 含 8 個字符。 選擇表 由報表用戶 在選擇屏幕中填充。在程序中,

8、可以修改選擇表的行或往里面添加更多的行。 DEFAULT TO : 用來設置默認的LOW值與HIGH值。 OBLIGATORY:設置成必輸項。 NO INTERVALS:設置成只有LOW選項的單值,基本語法介紹,20,分塊語句的格式: SELECTION-SCREEN BEGIN OF BLOCK WITH FRAME TITLE . . SELECTION-SCREEN END OF BLOCK . 必須為每個塊定義名稱 名??梢郧短讐K。 如果增加 WITH FRAME 選項,在塊的周圍將畫外框。最多可以嵌套5層帶外框的不同塊。 可以使用 TITLE 選項給每個外框增加標題,基本語法介紹,2

9、1,在屏幕上產(chǎn)生空行: SELECTION-SCREEN SKIP . 該語句產(chǎn)生 個空行,其 中 的值可以是 1 到 9。要產(chǎn)生 單個空行, 可以省略 。 使用SKIP也只可以產(chǎn)生空行,如: SKIP 2. 跳兩行輸出 SKIP TO LINE 20. 跳轉(zhuǎn)到20行輸出,基本語法介紹,22,在屏幕上畫一條直線: SELECTION-SCREEN ULINE / . 該語句創(chuàng)建下劃線。如果不使用 格式選項 , 則在當前行 下面創(chuàng)建新行。如果使用格式選項 , 下劃線將從 當前行的位 置 處開始,連續(xù) 個字符。/請求換行。 使用ULINE AT也可以畫直線,如: ULINE AT /1(10).

10、從第1位輸出一條長度為10的橫線,基本語法介紹,23,內(nèi)表是ABAP/4中非常特殊和重要的一種變量,它是一個數(shù)據(jù)庫表,但又與一般的數(shù)據(jù)表不同,這個數(shù)據(jù)表只存在內(nèi)存中,當你的程序結(jié)束的時候,它也跟著同時結(jié)束。內(nèi)表是按行進行訪問的,所以必須使用某個工作區(qū)域作為與表格互相傳輸數(shù)據(jù)的接口。 內(nèi)表分為帶表頭行和不帶表頭行兩類,如果創(chuàng)建帶表頭行的內(nèi)表,系統(tǒng)自動創(chuàng)建與內(nèi)表行數(shù)據(jù)類型相同的工作區(qū)域,該工作區(qū)域稱為表頭行或表格工作區(qū)域。不帶表頭行的內(nèi)表沒有可以隱式使用的表頭行或表格工作區(qū)域。要訪問沒有表頭行的內(nèi)表 ,必須在ABAP程序中指定和內(nèi)表類型相同的工作區(qū)域。 對于帶表頭行的內(nèi)表,內(nèi)表本身和表格工作區(qū)域同

11、名。如果在語句中使用該名稱,系統(tǒng)將其解釋為表格工作區(qū)域,而不是表格本身。但在某些語句中,可以在名稱之后輸入方括號,定址內(nèi)表而不是表格工作區(qū)域,如下所示,內(nèi)部表,基本語法介紹,24,內(nèi)表的定義和工作區(qū)域的定義基本上是一樣的,差別只是內(nèi)表需要指定記錄的條數(shù),而工作區(qū)域不需要指定。 內(nèi)表的定義方法一: data: begin of occurs n, f1(l) type t decimals d value xxx, f2(l) type t decimals d value xxx, . end of 內(nèi)表名. n為該內(nèi)表的起始記錄條數(shù),不過當內(nèi)表的記錄數(shù)超過了該數(shù)值后,內(nèi)表會自動增加這個數(shù)目,

12、定義該數(shù)值只是為了系統(tǒng)的效率考慮,如果n為0,則系統(tǒng)會在一開始就分配8KB的默認空間,基本語法介紹,25,內(nèi)表的定義方法二: data: begin of Itab occurs n. include structure . data: f1(l) type t decimals d value xxx. data: end of itab. 使用這種方式定義的內(nèi)表包含的所有字段,但也 可以增加里沒有的字段,如f1字段,基本語法介紹,26,內(nèi)表的定義方法三: data: itab like occurs n with header line. 使用這種方式定義的內(nèi)表跟里的字段是一樣的,如果不帶

13、參數(shù)with header line的話,定義的內(nèi)表是沒有表頭行的。 示例: data:it1 like st1 occurs 10. st1 為一結(jié)構 data:it2 like t000 occurs 0 . t000 為一數(shù)據(jù)表,基本語法介紹,27,ABAP 主要語句,賦值語句(=、Move) 條件語句 (ifelseendif、case、while) 內(nèi)表循環(huán)語句(loop at endloop、DO) 讀取內(nèi)表的單行數(shù)據(jù)(Read Table) 內(nèi)表排序操作(Sort) 數(shù)據(jù)庫或內(nèi)表操作語句(Select、Insert、Modify、Update、Append,Delete) 輸出語

14、句(Write,基本語法介紹,28,付值語句,為變量進行付值的格式為 變量 = 要付的值. 例如 total = 10. 如果要付值的對象是字符,則需要用 括起來。 例如 mess = this is a test!. 如果字符串中包括 號,用 進行付值。 例如 mess = this is a test!. 語句將會輸出 this a test! 進行計算并把結(jié)果存入變量的格式為 變量A = 變量B 操作符 變量C 例如 b = 10,c = 5 則語句 a = b + c.將把 b 和 c相加,并把結(jié)果付與 a,則a = 15,基本語法介紹,29,常用運算操作,基本語法介紹,30,IF條件

15、判斷語句,IF語句格式: IF . ELSEIF . . ELSE. ENDIF. 如果第一個 條件是真, 系統(tǒng)將執(zhí)行所有語句直到第一個語 句塊結(jié)束, 然后繼續(xù)處 理 ENDIF 語句之后的 程序。如果 第一個條件 是假,系統(tǒng) 使用與 IF 語句一樣的 方式處理后面的 ELSEIF 語句。如果 IF 或 ELSEIF 條件都為假 ,則執(zhí)行 ELSE 開始的語句 塊。最后的語句塊必須用ENDIF結(jié)束,基本語法介紹,31,CASE語句的格式: case v when v1. 執(zhí)行1 when v2. 執(zhí)行2 when others. 執(zhí)行3 endcase,CASE條件判斷語句,事例: case

16、i. when 1. write i = 1. when 2. write i = 2. when others. write i 1 and i 2. endcase. 如果 i = 1,輸出 i = 1; 如果 i = 2,輸出 i = 2; 如果既不等于1也不等于2時,輸出 i 1 and i 2,基本語法介紹,32,While循環(huán)語句,WHILE語句是在條件成立的情況下重復執(zhí)行一段代碼。 WHILE語句的格式: while 條件. 執(zhí)行語句 endwhile. 以下代碼的結(jié)果是在 i 小于 6 時,不斷的輸出 I 的值,每執(zhí)行一次,I 就加 1。 while i 6. write: /

17、 i = ,i. i = i + 1. endwhile,基本語法介紹,33,Loop At 循環(huán)語句,Loop at 語句是內(nèi)表循環(huán)語句,可以對整個內(nèi)表進行循環(huán)也可以根據(jù)條件進行循環(huán)。 Loop語句的格式: Loop at itab into 工作區(qū) where 條件 . 執(zhí)行語句 Endloop. 以下代碼是按條件循環(huán)itab內(nèi)表,并輸出內(nèi)表里col1列等于10的所有數(shù)據(jù)。 Loop at itab where col1 = 10. Write : / itab-col1. Endloop. 當內(nèi)表有表頭的時候,可以不使用into 工作區(qū)參數(shù),基本語法介紹,34,DO循環(huán)語句,DO語句用于

18、對一段代碼進行多次的執(zhí)行,這里的DO語句不同于其它語言中的DO,而類似于其它語言中的FOR語句。 DO語句的格式: do n times. 執(zhí)行代碼 . enddo. n為執(zhí)行的次數(shù),執(zhí)行代碼為要重復執(zhí)行的代碼。 可以使用Continue退出當次循環(huán),EXIT退出整個循環(huán),基本語法介紹,35,讀取內(nèi)表的單行數(shù)據(jù),Read Table語句用于讀取內(nèi)表里的單行數(shù)據(jù),如果存在多條時只會讀取第一條。 Read Table的語句格式: READ TABLE INTO TRANSPORTING . 按 指定的條件讀取單行,讀 取行之后,將 中指定的字段傳輸給目標區(qū)域。使用INTO指定目標區(qū)域 ,如果內(nèi)表有

19、表頭行,可以忽略INTO選項。對于 , 可以用 . 指定一系列要讀取賦值的字段;也可以用NO FIELDS指定不傳輸任何字段。如果使用NO FIELDS,READ 語句只影響系統(tǒng)字段 SY-SUBRC 和 SY-TABIX。 SY-SUBRC等于0表示讀到數(shù)據(jù)。SY-TABIX讀取到的記錄在內(nèi)表的索引號,基本語法介紹,36,內(nèi)表操作語句-Sort,SORT語句按指定的字段對內(nèi)表進行排序。 SORT語句的格式一: SORT BY ascending|descending. ascending|descending. 使用BY選項定義排序字段。如果不使用BY選項,則根據(jù)標準關鍵字對內(nèi)表進行排序???/p>

20、以通過在選項中輸入 DESCENDING或ASCENDING 來指定排序順序。標準順序是升序,基本語法介紹,37,數(shù)據(jù)庫操作語句-Select,SELECT語句實現(xiàn)從數(shù)據(jù)庫中讀取數(shù)據(jù)的操作。 SELECT語句的格式: SELECT FROM INTO WHERE GROUP BY ORDER BY . SELECT 子句定義選 擇的結(jié)果是單行還是多行、及選擇讀取的列。 FROM 子句定義從數(shù)據(jù)庫或是視圖中讀取數(shù)據(jù)。 INTO 子句定義把讀到的數(shù)據(jù)存放的目標區(qū)域。 WHERE 子句定義按照哪些條件讀取數(shù)據(jù)。 GROUP BY 子句定義分組規(guī)則。 ORDER BY 子句對讀到的數(shù)據(jù)進行排序,基本語

21、法介紹,38,SQL,Which columns,Which table(s),Where to,Where to,Which lines,Particular,column,Multiple lines,Single line,SELECT,FROM,INTO,WHERE,基本語法介紹,39,SQL,Table SPFLI,wa_spfli,Field contained in the data record,like,carrid connid,are read,from database table,spfli,and,inserted in their corresponding,fi

22、elds in work area,wa_spfli,基本語法介紹,40,Table,SPFLI,ABAP,ABAP,SELECT . FROM,INTO,TABLE,WHERE,Internal,table,Reads all data,records specified in,the WHERE condition,from the database,基本語法介紹,41,數(shù)據(jù)庫表操作語句-Insert,INSERT語句向數(shù)據(jù)庫表中插入一行或是多行。 INSERT語句的格式一: INSERT FROM . 把工作區(qū)域里的數(shù)據(jù)插入到數(shù)據(jù)庫表中。 INSERT語句的格式二: INSERT FRO

23、M TABLE . 把內(nèi)表里的數(shù)據(jù)插入到數(shù)據(jù)庫表里,基本語法介紹,42,內(nèi)表操作語句-Insert,INSERT語句把一個內(nèi)表或是工作區(qū)域的數(shù)據(jù)插入到另一個內(nèi)表。 INSERT語句的格式一: INSERT INTO INDEX . 把工作區(qū)域里的數(shù)據(jù)插入到內(nèi)表里. INSERT語句的格式二: INSERT LINES OF FROM TO INTO INDEX . 把內(nèi)表 里的所有數(shù)據(jù)插入到內(nèi)表里,可以使用FROM參數(shù)定義數(shù)據(jù)插入范圍,使用INDEX指定數(shù)據(jù)插入的位置。 如果不帶INDEX選項,系統(tǒng)只能在LOOP循環(huán)內(nèi)通過SY-TABIX插入新條目。如果內(nèi)表包含 - 1 條目,系統(tǒng)將新條目附加

24、到內(nèi)表最后。如果表格的條目小于 - 1,系統(tǒng)無法插入條目,并將 SY-SUBRC 設置為4,基本語法介紹,43,數(shù)據(jù)庫表操作語句-Modify,MODIFY語句向數(shù)據(jù)庫中插入一行或是多行或修改數(shù)據(jù)庫中的一行或是多行。 MODIFY語句的格式一: MODIFY FROM . 把工作區(qū)域里的數(shù)據(jù)插入或更新到數(shù)據(jù)庫表中,當數(shù)據(jù)庫中存在工作區(qū)域里的記錄時則更新數(shù)據(jù)庫表里的記錄。 MODIFY語句的格式二: MODIFY FROM TABLE . 把內(nèi)表里的數(shù)據(jù)插入或更新到數(shù)據(jù)庫表里,如果記錄存在就更新里的記錄,基本語法介紹,44,內(nèi)表操作語句-Modify,MODIFY語句把工作區(qū)域里的數(shù)據(jù)更新到內(nèi)表

25、的當前行。 MODIFY語句的格式一: MODIFY FROM INDEX . 把工作區(qū)域里的數(shù)據(jù)更新內(nèi)表里的當前行。如果表格有表頭行,可以忽略 FROM 選項。如果使用INDEX選項,則新行代替索引為的現(xiàn)有行。如果內(nèi)表包含的行少于,則不更改任何行并且SY-SUBRC 等于4。 如果使用沒有INDEX選項的MODIFY語句,則系統(tǒng)只能在LOOP循環(huán)塊中修改當前行,基本語法介紹,45,數(shù)據(jù)庫表操作語句-Update,UPDATE語句可以更新數(shù)據(jù)庫中已經(jīng)存在的記錄,允許更新單行或是多行,如果不能確定需要更新的記錄是否存在,可以使用MODIFY語句。 UPDATE語句的格式一: UPDATE FRO

26、M . 把工作區(qū)域里的行更新數(shù)據(jù)庫表的行,該數(shù)據(jù)庫表需與 具有相同的主碼。 UPDATE語句的格式二: UPDATE SET . WHERE . 使用WHERE條件更新選定的行,如果不使用WHERE則更新所有行,基本語法介紹,46,數(shù)據(jù)庫表操作語句-Update,UPDATE語句可以更新數(shù)據(jù)庫中已經(jīng)存在的記錄,允許更新單行或是多行,如果不能確定需要更新的記錄是否存在,可以使用MODIFY語句。 UPDATE語句的格式三: UPDATE FROM TABLE . 把內(nèi)表里的記錄更新到數(shù)據(jù)庫表里,根據(jù)主碼只更新里已經(jīng)存在的記錄,如果更新了所有的行,SY-SUBRC才等于0,否則等于4,同時SY-D

27、BCNT會記錄更新的條數(shù),基本語法介紹,47,內(nèi)表操作語句- Append,APPEND語句把一個內(nèi)表或是工作區(qū)域的數(shù)據(jù)追加到另一個內(nèi)表。 APPEND語句的格式一: APPEND TO . 把工作區(qū)域里的數(shù)據(jù)追加到內(nèi)表里。 APPEND語句的格式二: APPEND LINES OF FROM TO TO . 把內(nèi)表 里的所有數(shù)據(jù)追加到內(nèi)表里,可以使用FROM參數(shù)定義數(shù)據(jù)追加范圍,基本語法介紹,48,數(shù)據(jù)庫表操作語句-Delete,DELETE語句刪除數(shù)據(jù)庫表中的單行或是多行記錄。 DELETE語句的格式一: DELETE FROM . 將從數(shù)據(jù)庫表中刪除主碼與工作區(qū)中指定的主碼相同的行。 D

28、ELETE語句的格式二: DELETE FROM WHERE . 使用WHERE條件刪除數(shù)據(jù)庫表里的記錄,基本語法介紹,49,數(shù)據(jù)庫表操作語句-Delete,DELETE語句刪除數(shù)據(jù)庫表中的單行或是多行記錄。 DELETE語句的格式三: DELETE FROM TABLE . 從數(shù)據(jù)庫表中刪除主碼與內(nèi)表中的主碼相同的行。 所有行刪除成功則SY-SUBRC被設置成0,否則被設置成4,同時SY-DBCNT記錄了被刪除的條目數(shù),基本語法介紹,50,內(nèi)表操作語句-Delete,DELETE語句刪除內(nèi)表里的單行或是多行。 DELETE語句的格式一: DELETE FROM TO WHERE . 用戶必須

29、選擇一個參數(shù)。如果沒有WHERE選項,則系統(tǒng)從中刪除所有 索引在和之間的行。如果不使用FROM選項,則系統(tǒng)從第一行開始刪除。如果不使用TO選項,則系統(tǒng)刪除行直到最后一行。 DELETE語句的格式二: DELETE INDEX . 如果使用INDEX選項,則從ITAB中刪除索引為的行。刪除行之后,下 面行的索引減1,基本語法介紹,51,內(nèi)表操作語句-Delete,DELETE語句刪除內(nèi)表里的單行或是多行。 DELETE語句的格式三: DELETE . 只能在LOOP循環(huán)中使用,刪除當前行。SY-TABIX記錄索引行號。 DELETE語句的格式四: DELETE ADJACENT DUPLICAT

30、E ENTRIES FROM COMPARING . 從內(nèi)表中刪除所有鄰近重復條目。使用COMPARING選項設置刪除重復行的比較標準,可以指定單個或是多個字段,也只可以使用ALL FIELDS設置成所有字段。如果沒有COMPARING選項,則跟使用ALL FIELDS選項一樣,根據(jù)所有字段刪除重復行。在使用此刪除語句時必須根據(jù)指定的比較標準進行排序,基本語法介紹,52,內(nèi)表操作語句-Collect,COLLECT語句使用唯一標準關鍵字填充或是更新內(nèi)表里的單行或是多行。 COLLECT語句的格式一: COLLECT INTO . 把工作區(qū)里的記錄填充或是更新到內(nèi)表里。如果有表頭行可以忽略INT

31、O選項。如果里的標準關鍵字與里的相同則更新里的記錄,數(shù)值字段累加。如果沒有相同的標準關鍵字,則COLLECT語句的作用與APPEND語句相似,在內(nèi)表里增加新行。 內(nèi)表的關鍵字段是指非數(shù)值型字段(類型 F、I 和 P)。 這些關鍵字段形成內(nèi)表的標準關鍵字,基本語法介紹,53,基本語法: WRITE f 字段 可以是任何數(shù)據(jù)對象、字段符號、公式參數(shù)、文本符號等。 參數(shù): 1.AT /() :/換行;表示在屏幕 上的位置;表示輸出長度。 2.option :formatting option,如CENTERED(輸出居中);NO-GAP(忽略空格) 等等。 4.AS CHECKBOX :output

32、 as checkbox,如WRITE: / Flag 1, FLAG1 AS CHECKBOX。 5.AS SYMBOL :output as symbol,如:WRITE:/Phone Symbol:,SYM-PHONE AS SYMBOL。 6.AS ICON :output as icon ,如:WRITE: /Alarm Icon: , ICON_ALARM AS ICON.。 注:SYMBOL和ICON 的名稱是系統(tǒng)常量,這些常量在包含程序 和 中指定。 這些包含程序也包含符號和圖標的簡短說明,基本語法介紹,54,基本語法介紹 - Message,REPORT sapbc400ud

33、d_message,MESSAGE-ID bctrain,MESSAGE E050,Message text,No data exists for this selection (Please insert another value,Ailrline carrier & does not exist,Division by zero,Table T100,S,DE,DE,DE,ID,BCTRAIN,BCTRAIN,BCTRAIN,No,038,049,050,Division by zero,Division by zero,55,REPORT,MESSAGE-ID,Annn,Xnnn,ME

34、SSAGE,Ennn,WITH,Wnnn,Innn,Snnn,A:異常終止 X:取出 E:錯誤 W:警告 I:信息 S:成功 使用交易碼SE91定義、修改或是查看信息類型,基本語法介紹 - Message,56,Calls a message,REPORT sapbc400d_getting_started,CALL SCREEN 100,SELECT SINGLE,IF sy-subrc = 0,MESSAGE I027(bctrain,ENDIF,Dialog type,Dialog reaction,Message number,Text,Message class,Table T100

35、,Information,A database entry has been read,基本語法介紹 - Message,57,基本語法介紹 - Debug,BREAK-POINT,BREAK-POINT,1. Programmanweisung,Repository Browser,Repository Browser,Program,3,閩,閩,閩,Goto,System,Help,Edit,Test/Execute,SAPBC411,SAP Schulung: BC411,Object type development class,Programs,Context_I_C_GEOGR_D

36、ISTANCE,Context_I_C_GEOGR_DISTANCE,BREAK-POINT,BREAK-POINT,1. Programmanweisung,ABAP Editor: Initial Screen,ABAP Editor: Initial Screen,Program,閩,閩,Goto,System,Help,Edit,Debugging,Program,Sub-objects,Source code,Variants,Attributes,Documentation,H,Debugging,58,SAP R/3,Debugging,3,閩,閩,閩,Bezeichnungen

37、,Goto,Breakpoint,Settings,Development,System,Help,Main program,BC400D_DEBUGGER,Source code of,start-of-selection,Field name,Field contents,Double-click,2 - 5,Fields,Fixed pt arithmetic,REPORT BC400D_DEBUGGER,DATEREC = SY-DATUM,DATEREC,SY-DATUM,00000000,19980715,基本語法介紹 - Debug,59,在ABAP/4是,系統(tǒng)保留了一些變量用于

38、記錄系統(tǒng)和程序運行的一些狀態(tài),在程序中,我們可以使用這些變量來知道程序運行的一些情況,例如在前面講內(nèi)表時提到過的sy-subrc就是記錄操作是否成 功的一個變量,此外還有記錄系統(tǒng)時間的變量,記錄登錄用戶的變量等。 所有的系統(tǒng)變量可以在數(shù)據(jù)庫表SYST里查看,系統(tǒng)變量,基本語法介紹,60,基本語法介紹,ABAP語言與開發(fā)平臺介紹 基本語法介紹 ABAP報表開發(fā)結(jié)構 Function開發(fā) 數(shù)據(jù)字典 ABAP報表ALV輸出 批處理程序開發(fā) SAP事務程序開發(fā) Query開發(fā) Smart Form表單開發(fā) ABAP性能優(yōu)化與命名規(guī)則,目錄,61,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(

39、編制頁眉頁腳的文字,62,INITIALIZATION 在顯示選擇屏幕之前的點。程序最開始發(fā)生的事件,可以進行初始數(shù)據(jù)的處理。 AT SELECTION-SCREEN 處理用戶在選擇屏幕上輸入之后的點。用來對在屏幕上輸入的數(shù)據(jù)進行檢查。 START-OF-SELECTION 處理選擇屏幕之后的點。在輸入?yún)?shù)完成之后,運行該事件,在該事件中主要進行數(shù)據(jù)邏輯的處理。 END-OF-SELECTION 處理完邏輯數(shù)據(jù)庫提供的所有行為之后的點。發(fā)生在start-of-selection之后的事件,在該事件中主要進行數(shù)據(jù)的輸出顯示。不管按什么順序書寫代碼,start-of-selection里的代碼一定

40、會在end-of-selection之前處理,程序事件,ABAP報表開發(fā)結(jié)構,63,TOP-OF-PAGE 啟動新頁時,列表處理中的點。該事件主要處理表頭的數(shù)據(jù),在top-of-page中顯示的內(nèi)容一定會出現(xiàn)在每一頁的開始 END-OF-PAGE 結(jié)束頁時,列表處理中的點。該 事件主要處理頁尾的數(shù)據(jù),在end-of-page中顯示的內(nèi)容都會出現(xiàn)在每一頁的結(jié)尾,程序事件,ABAP報表開發(fā)結(jié)構,64,基本語法 :FORM . ENDFORM,FORM-子程序定義,ABAP報表開發(fā)結(jié)構,65,接口定義,FORM-子程序定義,行參實參傳遞方式 值調(diào)用 地址調(diào)用,ABAP報表開發(fā)結(jié)構,66,基本語法:P

41、ERFORM,FORM調(diào)用子程序,ABAP報表開發(fā)結(jié)構,67,參數(shù)傳遞,FORM調(diào)用子程序,ABAP報表開發(fā)結(jié)構,68,練習題,創(chuàng)建一個有事件的簡單報表 : (從ekko ,ekpo makt 中讀取采購訂單信息) 輸出:工廠 有采購單號 項目 物料 描述 數(shù)量, 單價 幣別 金額 等). 示例程序分析 : ZNORMAL_REP,ABAP報表開發(fā)結(jié)構,ABAP語言與開發(fā)平臺介紹 基本語法介紹 ABAP報表開發(fā)結(jié)構 Function開發(fā) 數(shù)據(jù)字典 ABAP報表ALV輸出 批處理程序開發(fā) SAP事務程序開發(fā) Query開發(fā) Smart Form表單開發(fā) ABAP性能優(yōu)化與命名規(guī)則,目錄,69,2

42、014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字,70,Function開發(fā),71,Function開發(fā),72,Function開發(fā),73,使用事務碼SE37進入函數(shù)初始界面 輸入函數(shù)名稱,如果函數(shù)已經(jīng)存在可進行查看、修改;如果函數(shù)不存在可點擊Create按鈕后輸入一個已經(jīng)存在的函數(shù)組和描述創(chuàng)建此函數(shù),函數(shù)開發(fā),Function開發(fā),74,顯示進入函數(shù)的編輯界面 屬性標簽頁: 1.必須指定所需分配的函數(shù)組; 2.Normal function module選項為普通函數(shù),不可為外部系統(tǒng)使用; 3.Remote-enabled module選項為RFC遠程調(diào)用函數(shù),即為S

43、AP內(nèi)部使用,又可實現(xiàn)外部系統(tǒng)的調(diào)用,函數(shù)開發(fā),Function開發(fā),75,Import 設置函數(shù)的輸入?yún)?shù)標簽頁 Export 設置函數(shù)的輸出參數(shù)標簽頁 Tables 通過內(nèi)表設置可輸入可輸出參數(shù)標簽頁 Exceptions 異常參數(shù)輸出標簽頁 Source code 源代碼標簽頁,函數(shù)開發(fā),Function開發(fā),76,使用事務碼SE80創(chuàng)建函數(shù)組:輸入函數(shù)組的名稱,回車點擊“是”按鈕后輸入函數(shù)組的描述,完成創(chuàng)建函數(shù)組的創(chuàng)建,創(chuàng)建函數(shù)組,Function開發(fā),77,1、寫一個Function,并進行調(diào)用 2、寫一個程序,并調(diào)用剛創(chuàng)建的FUNCTION。 事例:ZNORMAL_FM,Funct

44、ion開發(fā),練習題,ABAP語言與開發(fā)平臺介紹 基本語法介紹 ABAP報表開發(fā)結(jié)構 Function開發(fā) 數(shù)據(jù)字典 ABAP報表ALV輸出 批處理程序開發(fā) SAP事務程序開發(fā) Query開發(fā) Smart Form表單開發(fā) ABAP性能優(yōu)化與命名規(guī)則,目錄,78,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字,79,數(shù)據(jù)表字典,表的用途:將現(xiàn)實世界中的事物用元素的 形式進行系統(tǒng)化,集成化,從而以數(shù)據(jù)的形式存儲,80,Objects : 三層式架構,數(shù)據(jù)表字典,81,數(shù)據(jù)字典中包括: 數(shù)據(jù)庫表:存貯在應該數(shù)據(jù)的物理表。 視圖:多表關聯(lián),主要有四種類型: Database

45、 views :數(shù)據(jù)庫視圖 Projection views: 投影視圖,用于屏蔽一些字段(一般用于保護數(shù)據(jù)時使用) Help views: 幫助視圖,用于搜索幫助的selection method中使用,參與連接表必須存在外鍵. Maintenance views:維護視圖,允許進行對幾個表的數(shù)據(jù)進行修改,參與連接表必須存在外鍵,他們的連接條件是不能自定義的. 數(shù)據(jù)類型:可創(chuàng)建、修改和查看Data element、Structure和Table type 域:描述一個字段類型和長度等信息 搜索幫助:用于程序引用作為屏幕字段F4功能幫助 鎖對象:用于對數(shù)據(jù)庫中同一數(shù)據(jù)進行的操作,為減少并發(fā)性問

46、題,引入 鎖對象的概念,數(shù)據(jù)表字典,82,表、視圖數(shù)據(jù)的查詢事務碼:SE11,SE16,SE16N等,系統(tǒng)表的查找方法 : 1. Part the cursor at the field and press F1 . 2. 事務碼ST05 (sql trace). 3. Setting Break point in ABAP,數(shù)據(jù)表字典,83,創(chuàng)建一個數(shù)據(jù)表 創(chuàng)建一個視圖 從而新增 ,修改記錄 事例:ZNORMAL_TAB,練 習 題,數(shù)據(jù)表字典,ABAP語言與開發(fā)平臺介紹 基本語法介紹 ABAP報表開發(fā)結(jié)構 Function開發(fā) 數(shù)據(jù)字典 ABAP報表ALV輸出 批處理程序開發(fā) SAP事務程

47、序開發(fā) Query開發(fā) Smart Form表單開發(fā) ABAP性能優(yōu)化與命名規(guī)則,目錄,84,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字,85,ALV-報表輸出,ALV的特點: 數(shù)據(jù)輸出界面整齊美觀. 直接套用標準函數(shù),節(jié)省編程時間和代碼量. 用戶可以選擇相應的字段進行排序. 用戶可以選擇相應的字段進行小計和總計. 用戶可以自己對輸出結(jié)果進行過濾查詢. 用戶可以將結(jié)果存為其他多種文件(Excel, Word, Text). 用戶可以根據(jù)自己需要調(diào)整報表Layout. 通過設定其相關的屬性來達到用戶要求的其他一些功能,如數(shù)據(jù)編輯,字段顏色處理,字段顯示的優(yōu)化等,8

48、6,ALV-報表輸出,在Report中以Call Function 方式調(diào)用ALV步驟: 1.根據(jù)Report的輸出字段定義輸出的Internal Table. 2.根據(jù)查詢條件得到要輸出的資料,并存入輸出的Internal Table. 3.取得程序名稱(SY-REPID). 4.根據(jù)程序名稱和輸出的Internal Table名稱 , 通過Call Function : REUSE_ALV_FIELDCATALOG_MERGE 取得Field catalog. 5.根據(jù)Field Catalog 和輸出的Internal Table , 通過Call Function: REUSE_ALV

49、_GRID_DISPLAY 或 REUSE_ALV_LIST_DISPLAY 輸出ALV 到屏幕,87,ALV-報表輸出,Field Catalog 主要屬性介紹: 1. key 將此字段設為Key 并顯示顏色(X).2. icon 將此字段以Icon的形式顯示(X).3. checkbox 將此字段以Checkbox的形式顯示(X)4. Just 字段對齊方式(R)ight (L)eft (C)ent.5. lzero 將此字段設為前導的0的形式顯示(X)6. no_sign 將此字段的符號設置為不顯示(X). 7. no_zero 如果此域值為0將不顯示(X).8. emphasize 設

50、置字段的顏色(Cxyz).9. do_sum 對此字段進行加總(X).10. no_out 設置此字段默認不顯示(O)blig.(X) no out.11. seltext_l 設置此域名描述(長字符串) 12. seltext_m 設置此域名描述(中等字符串) 13. seltext_s 設置此域名描述(短字符串)14. ddictxt 設置選擇哪種字符串顯示.15. hotspot 設置此字段有熱點(X,88,ALV-報表輸出,Layout 主要屬性介紹(Function) : 1. edit 此字段可將ALV設置為編輯模式(X).2. colwidth_optimize 此字段可將ALV

51、字段寬度設為最優(yōu)(X).3. no_vline 此字段設置可以不顯示垂直網(wǎng)格線(X).4. no_uline_hs 此字段設置可以不顯示水平網(wǎng)格線(X).5. no_keyfix 此字段設置可不固定關鍵字段(X).6. info_fieldname 此字段設置顏色屬性(Cxyz). 7. lights _fieldname 設置Lights 域名.8. key_hotspot 設置關鍵字段有熱點(X,89,創(chuàng)建一個程序并使用ALV輸出 事例程序:ZNORMAL_ALV,練 習 題,數(shù)據(jù)表字典,ABAP語言與開發(fā)平臺介紹 基本語法介紹 ABAP報表開發(fā)結(jié)構 Function開發(fā) 數(shù)據(jù)字典 ABA

52、P報表ALV輸出 批處理程序開發(fā) SAP事務程序開發(fā) Query開發(fā) Smart Form表單開發(fā) ABAP性能優(yōu)化與命名規(guī)則,目錄,90,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字,91,批處理程序開發(fā),Batch Input是一種數(shù)據(jù)批量輸入SAP系統(tǒng)的輔助程序, SAP系統(tǒng)的資料、格式可以通過Batch Input錄入SAP系統(tǒng) Batch Input的機制是模擬事務處理將數(shù)據(jù)錄入R/3系統(tǒng) Batch Input類似SAP的CATT,控制性更好,處理能力更強 編寫批導程序的步驟: 了解業(yè)務流程實際操作 模擬運行交易并編寫程式 檢查并前后臺測試,修改,BA

53、TCH-INPUT : 批導程序,92,Batch Input 程式一般結(jié)構: 讀取數(shù)據(jù)并檢查 CALL FUNCTION WS_UPLOAD 為批處理開辟處理池,創(chuàng)建任務ID CALL FUNCTION BDC_OPEN_GROUP 據(jù)內(nèi)表一條一條記錄模擬執(zhí)行 CALL FUNCTION BDC_INSERT 關閉處理池,結(jié)束處理 CALL FUNCTION BDC_CLOSE_GROUP,批處理程序開發(fā),93,通過以下兩步完成數(shù)據(jù)的批導工作: SHDB Batch Input Transaction Recorder SM35 Batch Input Monitoring 可以通過在屏幕字

54、段上按F1,然后查看其技術信息獲得字段信息,BATCH-INPUT : 批導程序,批處理程序開發(fā),94,創(chuàng)建一個修改物料主數(shù)據(jù)BDC 程序. 事例程序:ZNORMAL_BDC,練 習,批處理程序開發(fā),ABAP語言與開發(fā)平臺介紹 基本語法介紹 ABAP報表開發(fā)結(jié)構 Function開發(fā) 數(shù)據(jù)字典 ABAP報表ALV輸出 批處理程序開發(fā) SAP事務程序開發(fā) Query開發(fā) Smart Form表單開發(fā) ABAP性能優(yōu)化與命名規(guī)則,目錄,95,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字,96,SAP事務程序開發(fā),在sap的實施中有些開發(fā)需人工介入對數(shù)據(jù)進行交互處理,如

55、有創(chuàng)建,修改,刪除,顯示等,或用戶加入有關數(shù)據(jù),則需通過屏幕輸入的方式進行解決,它在大型的開發(fā)系統(tǒng)中經(jīng)常用到,是深層開發(fā)人員需掌握的技術之一,97,SAP事務程序開發(fā),98,SAP事務程序開發(fā),99,SAP事務程序開發(fā),100,SAP事務程序開發(fā),101,交易程式示例:ZTST_005,報表間參數(shù)的傳遞及調(diào)用: SETPARAMETERIDWRKFIELDP_WERKS. 傳遞參數(shù) GET PARAMETER ID WRK FIELD P_WERKS. 獲取參數(shù) EXPORTITABTOMEMORYIDITAB. 傳遞對象 IMPORTITABFROMMEMORYIDITAB. 接收對象,報表

56、與事務調(diào)用: SUBMITZTST_006ANDRETURN. 調(diào)用報表 CALLTRANSACTIONMM03ANDSKIPFIRSTSCREEN. 調(diào)用事務,SAP事務程序開發(fā),102,創(chuàng)建一個具有兩個畫面的交互程序 (從第一個畫面輸入物料,在第兩個畫面顯示物料相關數(shù)據(jù),并有些field可以修改) 事例:ZNORMAL_TR ZNORMAL_TR_PRINT,練 習 題,SAP事務程序開發(fā),ABAP語言與開發(fā)平臺介紹 基本語法介紹 ABAP報表開發(fā)結(jié)構 Function開發(fā) 數(shù)據(jù)字典 ABAP報表ALV輸出 批處理程序開發(fā) SAP事務程序開發(fā) Query開發(fā) Smart Form表單開發(fā)

57、ABAP性能優(yōu)化與命名規(guī)則,目錄,103,2014。欲了解更多信息,請聯(lián)系法定名稱及分所名稱 。(編制頁眉頁腳的文字,104,Query開發(fā),Query是SAP R/3數(shù)據(jù)查詢的一種方法,使用該工具可以在不用開發(fā)的情況下定義需要的報表。 Query對數(shù)據(jù)查詢可以進行進一步的處理(例如:列表顯示、下載到文件、圖表方式顯示等等,105,Query開發(fā),Query是SAP R/3數(shù)據(jù)查詢的一種方法,使用該工具可以在不用開發(fā)的情況下定義需要的報表。 Query對數(shù)據(jù)查詢可以進行進一步的處理(例如:列表顯示、下載到文件、圖表方式顯示等等,106,Query開發(fā),制作Query由三部分組成,用戶組(SQ0

58、3) 存放用戶組信息,查詢(SQ01) 存放查詢的格式信息,信息集(SQ02)存放數(shù)據(jù)源信息,107,Query開發(fā),信息集、用戶組和查詢?nèi)咧g的關系,信息集,分配,用戶組,信息集1,信息集2,信息集,用戶組,信息集,定義,查詢1,定義,查詢2,Query開發(fā),QUERY開發(fā)實際操作步驟: 用戶組維護 確定要使用的數(shù)據(jù)表 定義查詢數(shù)據(jù)源(表或者表鏈接,生成infoset) 定義查詢的輸出字段,屏幕格式 運行查詢,定義用戶格式 生成ABAP程序 為查詢定義事務代碼,1、維護用戶組(T-CODE: SQ03,注:1.創(chuàng)建 2.更改 3.刪除,2、確定要使用的數(shù)據(jù)表,F1:查看技術信息,F1:查看

59、技術信息,MSEG,MKPF,2,3,注:1.創(chuàng)建 2.雙擊需要查看的信息集,顯示該信息集 3.在查看狀態(tài)下,按修改按鈕,修改信息集,3、定義查詢數(shù)據(jù)源,3.1維護信息集(T-CODE:SQ02,3.2指定信息集名稱和類型,信息集名稱,數(shù)據(jù)源: 在大部分情況下,建議選用直接讀取表的方式,輸入需要顯示的表名。 表連接/邏輯數(shù)據(jù)庫/數(shù)據(jù)恢復程序等方式需要有一定的數(shù)據(jù)庫和開發(fā)知識,屬于高級應用,3、定義查詢數(shù)據(jù)源,1,2,注:1.插入新增數(shù)據(jù)源 2.刪除數(shù)據(jù)源 3.維護信息集,3,3.3新增或刪除數(shù)據(jù)源,3、定義查詢數(shù)據(jù)源,字段組:需要顯示的字段系統(tǒng)用字段組來管理,創(chuàng)建時系統(tǒng)會自動創(chuàng)建一個默認字段組,你也可以自行添加。在創(chuàng)建信息集時,系統(tǒng)會提示選擇如何創(chuàng)建字段組,建議選擇包括關鍵字段。 進入更改界面后,可以加入新的字段到字段組, 方法是: 1.選擇字段 2.選擇字段組 3.按“插入”按鈕將字段插入到字段組 4.也可以使用下面的按鈕維護字段組和刪除字段,1,2,3,4,3.4定義字段組的字段,3、定義查詢數(shù)據(jù)源,在一些情況下,系統(tǒng)默認的字段描述與我們需要的不一致,例如我們希望憑證編號描述就是“憑證編號”,而不是“物料憑證編號”或者“憑證號碼”這樣,就需要修改字段描述, 操作如下: 1.雙擊字段組中的字段 2.修改長文本和表頭的描述 3.按復制按鈕,確認該修改,修改后,字段描述相應修改,3

溫馨提示

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

評論

0/150

提交評論