ABAP開發學習總結之一:ABAP入門基本要點
安裝好系統,搭好了平臺,你是不是想有所作為,執行幾個TCODE對於想寫程式的人來說是很沒勁的,都希望在SAP的平臺完完全全按自己想法和意志實現一個程式或者功能。
SE38或SE80 就是開啟ABAP之門的TCODE。
如果從沒有接觸過程式設計工具的人,看到這個平臺,眼睛是大大的,哇!居然可以這樣做出一個程式!
如果使用過其他程式設計工具的人,看到這個平臺,眼角也是大大的,哇!號稱最強大的東西原來還只是在幼稚園裡面。
不過,可以肯定的是用這個平臺是可以做出東西。只是你學過高等數學,再讓你必須要實用小學數學方法去解題,有些束手束腳吧了,特別要強調一點,SAP中文可以稱作“傻P”,褒義是嚴謹,貶義就是不夠智慧唄,所以你需要徹底忘記其他程式設計工具帶給你的智慧感覺。不過SAP的程式設計工具差勁不代表其他東西差勁,人家的強項不再這兒,而我們使用它的真實意圖也不是要她的編輯器,這個就算是“瑕不掩瑜"。
通常簡單一點的管理系統,自帶的二次開發平臺都是開發一些報表,SAP的ABAP可不止於此,除了報表開發還可以進行動態程式開發,現在abap也有OO概念,不再只是面向過程了,有錢總是有機會進步的!
要邁進了ABAP門檻,按你的意圖寫出程式來,你至少需要了解下面幾個方面:
一.關於符號和字母,記住下面這幾點,你程式的小錯誤基本減少99%
a.語句結束用"."。?如果你寫 WRITE 'AAAAA'
b.沒有雙引號只有單引號。?如果你寫 WRITE "AAA".
c.一些保留字元需要單引號括起來,比如.等。?如果你寫 a = 1.7
d.運算子前後有空格,也就是=/+等這些前後一定要有空格。?如果你寫 a=b
e.雖然abap不區分大小寫,但是這個也是一個傳說.....,你還是儘量全部大寫!特別是功能碼,欄位名等,否則你使用規範化印表機後
你會傻眼?
f.整行註釋 * ,語句註釋 “,多行批量註釋與反註釋:ctrl+, ctrl+.
g.你自己的程式只能以z和y開頭
H.“:”和“,”一起用,連線多語句
I./ 表示換行
二.基本的語法語句:字元操作、邏輯迴圈....這個嗎,網上多了去,隨便找一本書看看就可以了,細節不知道的就查一下.
宣告語句:TYPES、 DATA、 PARAMETER、 TABLES
基本操作:WRITE、MOVE
字元操作:CONCATTENATE、SPLIT、CONDENSE、SEARCH、REPLACE、TRANSLATE
邏輯迴圈:IF、WHILE、CASE、DO (迴圈完全中止exit,條件終止 check +exit ,迴圈內中止continue)
呼叫語句:PERFORM, CALL, SUBMIT, LEAVE TO
過程定義: FORM/ENDFORM, FUNCTION/ENDFUNCTION, MODULE/ENDMODULE
比較運算:=、<>.......
三.資料型別:
常的C(文字)、I(整數)P和F(小數)、N(可把數值作為文字)、X (16進位制)、D(日期)
四.SAP的開發大多數情況都是訪問資料,所以你需要清楚瞭解一下內表:
內表是啥玩意:就是記憶體中的表
內表和工作區區別: occurs 0 在表之外還有一行,即工作區域,此工作區域只能放一條資料,可以看作是單行內表。
型別結構體和物件要區分:type定義的是型別 data定義的是物件,是容器
有無表頭的區別: with header line
內表常用操作:append 在最末尾加;collet彙總;move複製;Insert 可以選擇性位置增加;mdify 更改;delete刪除;sort 排序;
refresh 初始化;對於工作區 域用clear;loop at 迴圈遍歷,無表頭的需要先匯入工作區 loop at it_tbl into wa_tbl.
五.系統常量你需要記住幾個常用的
SY-SUBRC=0表示找到記錄,sy-dbcnt表示找到的記錄數量。
SY-DBLNT: 被處理過的記錄的筆數
SY-UNAME: 當前使用者登入SAP的USERNAME
SY-DATUM: 當前系統日期
SY-UZEIT: 當前系統時間
SY-TCODE: 當前執行程式的Transaction code
SY-INDEX : 當前LOOP迴圈過的次數
SY-TABIX: 當前處理的是internal table 的第幾筆
SY-TMAXL: Internal table的總筆數
SY-SROWS: 螢幕總行數
SY-SCOLS: 螢幕總列數
SY-MANDT:
SY-VLINE: 畫豎線
SY-ULINE: 畫橫線 ==uline
SY-PAGNO: 當前頁號
SY-LINSZ: 當前報表寬度
SY-LINCT: 當前報表長度
SPACE: 空字串
SY-LSIND: 列表索引頁
SY-LISTI: 上一個列表的索引
SY-LILLI: 絕對列表中選定行的行號
SY-CUROW: 螢幕上的行
SY-CUCOL: 游標列
SY-STARO:真實行號
SY-LISEL: 選擇行的內容,長度為255
SY-LINNO: 當前行
六.SQL你更需要了解,前面說過sap的開發大多是操作資料,而那些資料都是再資料庫裡面,但這個和我們操作資料庫的sql是又些不同的,最明顯的就是:和普通的資料庫sql查詢語句差別就是“,.變~,分割逗號無”
例如:select a~b from a inner join b
感覺沒有資料庫中的sql強大吧,可是人家也有遊標和過程的。
七.程式邏輯
ABAP是解釋執行的,這個和VB對著一起學就容易明白。