1. 程式人生 > >ABAP開發學習總結之一:ABAP入門基本要點

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對著一起學就容易明白。