原文連結:Working With Basic Data Objects and Data Types
最基礎的ABAP Data Object 可以視為會占用記憶體的實體資料,分成三種--變數, 常數與文字資料:
以上三種型式的資料都會有具有特定的資料型態(data type),且不會因程式執行而改變型態,接下來會一一介紹。
DATA my_var TYPE string VALUE 'Hello World'.
變數透過關鍵字DATA來宣告,可以分成三個部分:
*Built-in Type 內建型別
DATA my_var TYPE string.
*TYPES 本地自訂型別
TYPES my_type TYPE n length 10. "先建立自訂型別"
DATA my_variable TYPE my_type. "建立變數時使用自訂型別"
*ABAP Dictionary 全域型別
DATA airport TYPE /dmo/airport_id VALUE 'FRA'."從airport_id這張SAP範例報表撈出來的FRA型別"
在ABAP中,資料型別的建立方式可以分成以下三種:
CONSTANTS my_con01 TYPE i VALUE 123456.
CONSTANTS my_con02 TYPE i VALUE IS INITIAL.
除了開頭是CONSTANTS外,其他結構與變數相同。惟初始值是強制性的,也可用VALUE IS INITIAL
由系統直接賦予內定初始值。
out->write( '12345' ). "文字(Type C)"
out->write( `12345` ). "字串(Type STRING)"
out->write( 12345 ). "數值 (Type I)"
為不可變更的匿名參數,基本上可以指派給變數,或在初始指派給常數,可分成:
雖然ABAP需要定義資料型別,但當某些資料被賦值成別種類型時,系統仍會嘗試做資料轉換,請盡量避免以免造成以下狀況:
CLEAR <variable_name>
CLEAR會清除變數內的值,轉而變成初始值。不過要注意的是,CLEAR不是還原成一開始寫的初始值,而是直接還原成系統內定的型別初始值,如數字型別會變成0,字元型別則會變成空字串。
DATA(var01) = `Hellow World`.
DATA(var02) = 17.
除了在初始開頭進行變數宣告,也可以使用DATA()
進行行內宣告,這種方式不須在程式開頭即宣告,在想要的地方宣告變數就好,通常為DATA(變數名稱) = 賦予的值
,宣告時會依據賦予的值決定資料型態,如想建立文字型別,須要對該值加上``的識別符。另外,由於行內變數是局部變數,作用域會依宣告的地方而決定喔。
以上,明天要進入運算子跟條件判斷囉!