ABAP② 標準関数/命令
・SPLIT
※分割
DATA:
P1 TYPE STRING VALUE ‘zzzzzz’
P2 TYPE STRING VALUE ‘zzzzzz’
P3 TYPE STRING VALUE ‘zzzzzz’
SPLIT ‘aaa***bbb***ccc’ AT ‘***’ INTO P1 P2 P3.
※結果 P1:aaa P2:bbb P3:ccc
元の内容は上書きされる。
SPLIT ‘aaa***bbb***ccc’ AT ‘***’ INTO P1 P2.
※結果 P1:aaa P2:bbb***ccc
P1に分割結果を格納した残りが全てP2に格納される。
・STRLEN
※文字列の長さを取得
I = STRLEN(‘12345’) *結果:5
・CHECK
条件がFalseの時に処理を抜ける。
LOOP.
CHECK I <> 10.
I = I + 1.
ENDLOOP.
・ASSIGN
※変数のメモリ上のアドレスを参照する
DATA MyChar C VALUE ‘X’.
FIELD-SYMBOLS: <FS>.
*
ASSIGN MyChar TO <FS>.
UNASSIGN <FS>. (ASSIGNの解放)
ASSIGN COMPONENT 5 OF STRUCTURE 構造体名 TO <FS>.
・DESCRIBE TABLE
※レコード件数取得
DESCRIBE TABLE MyTable LINES LineCnt.
・DESCRIBE FIELD
※型取得
DATA MyType(1) TYPE C.
DATA MyChar(2) TYPE C VALUE ‘5’.
DESCRIBE FIELD MyChar TYPE MyType. ⇒’C’
・CONDENSE
※圧縮
DATA myChar TYPE C LENGTH 10 VALUE ‘ A B C ‘.
CONDENSE myChar. ⇒’A B C’
CONDENSE myChar NO-GAPS. ⇒ ‘ABC’
・READ TABLE
READ TABLE myTable INTO myRow.
READ TABLE myTable INTO myRow INDEX 1.
READ TABLE myTable INTO myRow WITH KEY フィールド1 = ~.
・CLEAR
※初期化
CLEAR myData.
・SPACE
※NULL
IF myData = SPACE.
~.
ENDIF.
・INITIAL
※初期値
IF myData IS NOT INITIAL.
~.
ENDIF.
・REPLACE
※置換
DATA STR(5) TYPE C.
STR = ‘abcde’
REPLACE ‘bcd’ WITH ‘xxx’ INTO STR.
WRITE STR.
※結果「axxxe」
・CONCATENATE
※文字列連結
DATA strBefore TYPE string.
DATA strAfter TYPE string.
strBefore = ‘aaa’
CONCATENATE ‘(‘ strBefore ‘)’ INTO strAfter.
※結果 strAfter = ‘(aaa)’