目次

宣言と文

 

ABAP言語の世界では、文が命令と呼ばれています。

命令の構文

ABAPの文(命令)はキーワードで始まり、プリオド(「.」)で終了します。

命令一覧

カテゴリ命令役割
宣言命令TYPESデータ型を定義します-
DATAデータオブジェクトを宣言します-
TABLES--
制御命令IFIF-ELSE-ENDIF選択制御構造を実装する-
ELSE-
ELSEIF-
ENDIF-
CASECASE-WHEN-ENDCASE選択制御構造を実装する-
WHEN-
ENDCASE-
DODO-ENDDO反復制御構造を実装する-
ENDDO-
WHILEWHILE-ENDWHILE反復制御構造を実装する-
ENDWHILE-
呼出命令PERFORMサブルーチンを呼び出す-
CALL FUNCTION汎用モジュールを呼び出す-
CALL DIALOGダイアログモジュールを呼び出す-
CALL METHODABAPオブジェクトのメソッドを呼び出す-
CALL METHOD OFOLE2オブジェクトのメソッドを呼び出す-
CALL SCREEN画面を呼び出す-
CALL SELECTION-SCREEN選択画面を呼び出す-
CALL TRANSACTIONトランザクションを呼び出す-
SUBMITタイプ 1 の実行可能プログラムを呼び出す-
LEAVE SCREEN現在の画面の処理を中止し、次の画面を呼び出す-
LEAVE TO SCREEN現在の画面の処理を中止し、動的に定義された次の画面を呼び出す-
LEAVE [PROGRAM]現在のプログラムの処理を停止し、このプログラムが呼び出されたポイントに戻る-
LEAVE TO TRANSACTION--
モジュール化命令AT SELECTION SCREEN--
START-OF-SELECTION--
AT USER-COMMAND--
FORMサブルーチンの定義を開始する-
ENDFORMサブルーチンの定義を終了する-
FUNCTION汎用モジュールの定義を開始する-
ENDFUNCTION汎用モジュールの定義を終了する-
MODULE--
ENDMODULE--
操作命令WRITE--
MOVE--
ADD--
COMPUTE--
オープンSQLSELECTデータベーステーブルからのデータの読込-
INSERTデータベーステーブルへの行の追加-
UPDATEデータベーステーブルの行コンテンツの変更-
MODIFYデータベーステーブルへの行の追加、または既存行のコンテンツの変更-
DELETEデータベーステーブルからの行の削除-
OPEN CURSOR
FETCH
CLOSE CURSOR
カーソルによるデータベーステーブルからの行の読込-
ネイティブSQLEXEC SQL
ENDEXEC
データベース固有のコマンドが全てできる-
UI制御命令SET SCREEN次の画面を設定する-
SET TITLEBAR画面タイトルを設定する-
SET PF-STATUSGUIステータスを設定する-
SET CURSOR画面上でカーソルを設定する-
SET MARGIN印刷ページのマージンを設定する-

チェーン命令

複数の命令は最初の部分が同じであれば、1 つのチェーン命令で連結して書くことができます。 一連の命令を連結するには、同一部分を 1 回だけ書き、その後にコロン(:) を入れます。コロンの後に、個別命令の残りの部分を書いて、それぞれをカンマで区切ります。最後の部分の後にピリオド (.)を付けます。

ブロック

ABAP言語の世界で、ブロックは命令ブロックと呼ばれています。 命令ブロックは制御種類により以下のように分類することができます。

分岐

If-then文

IF <条件式> 
<命令ブロック> 
ENDIF.

If-then-else文

IF < 条件1>.
  < 命令ブロック>
ELSEIF < 条件2>
  < 命令ブロック>.
ELSEIF < 条件3>.
  < 命令ブロック>
.....
ELSE.
  < 命令ブロック>
ENDIF.	

Case-when文

Switch文	CASE <f>.
  WHEN <f11> [OR <f12> OR ...].
       < 命令ブロック>
  WHEN <f21>.[OR <f22> OR ...]
       < 命令ブロック>
  WHEN ...
  ......
  WHEN OTHERS.
       < 命令ブロック>
ENDCASE.	

ループ

Do文

DO [<n> TIMES] [VARYING <f> FROM <f1> NEXT <f2>].
  < 命令ブロック>
ENDDO.

While文

WHILE < 条件> [VARY <f> FROM <f1> NEXT <f2>].
   < 命令ブロック>
ENDWHILE.

例外

* Try-catch-endtry 
* Try-catch-cleanup-endtry