モダン ABAP とは
モダン ABAP(Modern ABAP)とは、主に ABAP 7.4 以降に拡張された構文や式、オブジェクト指向技法を使った、新しいスタイルの ABAP プログラミングのことを指す。モダン ABAP の特長として、
- インライン宣言(Inline Declarations)
- 式指向(Expression-Oriented)
- 内部テーブル処理の簡略化
- 文字列処理の拡充
等が挙げられる。
インライン宣言
従来の ABAP コーディングでは、コードの冒頭で変数を宣言して、処理を記述するのが一般的であった。
DATA value1 TYPE i.
....
START-OF-SELECTION.
....
MOVE 1 TO value1.
モダン ABAP では、以下のように、変数の宣言を処理のなか(= インライン)に記述できるようになった。
START-OF-SELECTION.
....
DATA(value1) = 1.
式指向
モダン ABAP では、構文(Statement)の代わりに、演算子を使った式(Expression)を使ってコーディングを行う。
例えば、構造の各変数に値を代入するコーディングを、
MOVE 'F001' TO customer-bukrs.
MOVE 'C000000001' TO customer-kunnr.
MOVE '与野電工' TO customer-name1.
モダン ABAP では、式を使って簡潔に記述できる。
customer = VALUE #( bukrs = 'F001' kunnr = 'C000000001' name1 = '与野電工' ).
また、IF 構文を使った条件分岐のコードを、
IF value1 EQ 0.
message1 = 'ZERO'.
ELSE.
message1 = 'NON ZERO'.
ENDIF.
モダン ABAP では、COND 演算子で簡潔に記述できる。
message1 = COND #( WHEN value1 = 0 THEN 'ZERO' ELSE 'NON ZERO' ).
内部テーブル処理の簡略化
モダン ABAP では、内部テーブルを使った処理を簡潔に記述できる。
例えば、READ ステートメントを使った内部テーブルの検索処理を、
READ TABLE customers
WITH KEY bukrs = 'F001' kunnr = 'C000000001'
INTO customer.
モダン ABAP では、式指向で簡潔に記述できる。
customer = customers[ bukrs = 'F001' kunnr = 'C000000001' ].
文字列処理の拡充
モダン ABAP では、文字列テンプレート機能が追加された。
例えば、CONCATENATE ステートメントを使った文字列連結を、
DATA message1 TYPE string.
....
CONCATENATE '得意先コードは ' customer-kunnr ' です。' INTO message1.
モダン ABAP では、文字列テンプレートで簡潔に記述できる。
DATA(message1) = |得意先コードは { customer-kunnr } です。|.
