SAP_ABAP_邊學邊記錄_宣告變數
abap在vscode上面也有套件可以下載,不無小補,作業起來應該會比較sap上操作來的好一點。宣告方式
SAP的結尾是用『.』一定要記得點上,如javascript的var『;』TYPES
如用系統內建的型態無法滿足的時候,可以透過TYPES來做自定義!也可以用於宣告一個結構,但無法直接使用,還是需要透過DATA來實體化。
感覺起來像是類別實做成物件…用法的話,可用於重覆需要宣告的資料結構!
DATA
用於宣告變數的前贅詞,如javascript的var、let或是vb的dim…TYPE
用於宣告的變數的時候指定資料型別LIKE
用法同TYPE,不同的是,LIKE是用於有值的資料。CONSTANT
宣告常數,常數部份無法更動。如javascript的constSTATICS
宣告一個臨時變數,用完了就自動釋放了!變數類型
類型 | 說明 | 備註 |
---|---|---|
C | 字串 | |
D | 日期 | YYYYMMDD_‘2017/07/24’ |
F | 浮點數 | 長度8 |
I | 整數 | |
N | 數值組成的字串 | ‘123’ |
P | 小數點數值 | 1.0123456 |
T | 時間 | HHMMSS_‘08:50:00’ |
X | 16進制數 | FFF0 |
宣告方式
DATA 變數名稱(長度) TYPE 變數型別 VALUE 初始值DATA宣告範例
DATA ABC TYPE C. --宣告ABC是一個字串,但是未給長度,初始值為1
DATA ABC(10) TYPE C. --宣告ABC是一個長度10的字串
DATA ABC TYPE P DECIMALS 5 VALUE '3.14159'. --宣告變數ABC為P且小數點五位...
DATA DEF LIKE SY-UNAME. -- 宣告DEF的值為當前系統帳號(SY-UNAME為系統變數)
CONSTANT宣告範例
CONSTANT GHI TYPE P DECIMALS 5 VALUE '3.14159'.
STATIC宣告範例
STATIC JKL TYPE C VALUE 'HELLO WORLD!'.
TYPES宣告範例
TYPES:NAMES(10) TYPE C,
COUNTS(20) TYPE C
.
DATA:PLAYER TYPE NAMES VALUE 'HELLO HEY'
其他說明
如果要一次宣告多變數的話,可以透過DATA:的作法DATA: ABC TYPE C
DEF TYPE C
GHI TYPE F
. <---這個點很重要,如javascript中的結尾分號,沒了,就錯了!
宣告方式(引入TABLE-COLUMN型別)
在為了避免宣告的類別與TABLE取出有差異的情況下,我們可以直接去宣告成該TABLE欄位的型別!這部份跟鼎新的TT、T100系列開發的時候還蠻像的!(ORACLE內也可以這樣處理)
DATA 變數名稱 TYPE TABLE-COLUMN
宣告範例
DATA ABC TYPE CTABLE-ACOLUMN --宣告ABC的型別為CTABLE的ACOLUMN
系統變數說明
變數 | 說明 | 備註 |
---|---|---|
SY-SUBRC | 系統執行某指令後,表示執行成功與否的變數,'0’表示成功 | |
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 | CLIENT NUMBER | |
SY-VLINE | 畫豎線 | |
SY-ULINE | 畫橫線 | |
SY-REPID | 當前程序的程序名 | 不能更改 |
SY-CPROG | 調用程序的程序名 | 可修改 |
沒有留言:
張貼留言