モダン 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 } です。|.