【SAPが動画で学べる!】YouTubeチャンネル開設しました ▶ SAPラボチャンネルはコチラ

【SAP ABAP】ABAP7.4以降のS4HANAでの新構文(変数定義)

登場人物紹介

三崎レイナ
社会人1年目。新卒でITコンサルティングファームに就職。初配属がSAPプロジェクトにアサインされる。SAPがわからないことだらけで悩んでいたところ、会社の先輩にSAPラボの所長を紹介され、毎週末に所長とSAPのお勉強中!

博士
SAPラボの所長。SAP大好き博士!SAP導入プロジェクトを構想策定~運用保守まであらゆるフェーズを数多く経験。
いまは優しきおじいちゃんだが、プロマネバリバリの時代はかなり怖かったらしい。現在は引退しSAPの後進育成と啓蒙活動に従事中!
若者に負けぬようX(旧Twitter)も奮闘中。

この記事を読むメリット

  • ABAP7.4以降の変数定義についての新構文を理解することができます。

ABAP7.4は2013年にリリースされました。多くの便利な構文の追加がされています。
ABAP開発者やプログラムを読む必要のある設計者の方に向けて、ABAP7.4以降で追加された新たな構文を紹介していきます。

ここでは変数の定義についての新構文を解説します!

・ABAP7.4以降でも旧構文は利用可能です。
・同じプログラム内でも旧構文と新構文が同居することもできます。
・どの構文を用いるかはプロジェクトのコーディング規約に則り開発が必要です。

SAPフリーランスバンク SAPフリーランスバンク
  • 転職求人
  • フリーランス案件
株式会社日立産業制御ソリューションズ

【リモート可】【PM/PL候補】【東京】SAP(S/4HANA)エンジニア ※フレックスタイム制/ワークライフバランス◎(S/4HANA)

年収
430~800万円 / 年
勤務地
東京本社:東京都台東区秋葉原6番1号(...
雇用形態
正社員
要スキル:
【必須】 SAP導入に強い興味があり、以...
キリンビジネスシステム株式会社

SAP会計領域コンサルタント(管理職)/キリングループ唯一のIT会社(FI/CO)

年収
900~1,300万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 以下A・B・Cすべてを...
キリンビジネスシステム株式会社

SAPコンサルタント/キリングループ唯一のIT会社(SD/MM/PP)

年収
500~850万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 SAPアプリケーショ...
株式会社ベイカレント・コンサルティング

【SAPコンサルタント】経営戦略実現を全社横断変革で支援/平均年収1,350万円

年収
600~2,500万円 / 年
勤務地
東京都港区麻布台1-3-1麻布台ヒル...
雇用形態
正社員
要スキル:
【必須(MUST)】 社会人経験3年以上...
株式会社 ホープス

【年収1000万円可】【リモート可】【上流工程】【SAP導入コンサルタント】リモート・ハイブリッド勤務OK|平均残業月10時間/HOPES ※基幹系業務システムの導入推進を行っていただける方を募集

年収
800~1,800万円 / 年
勤務地
〒 1040033:東京都中央区新川1-3-17新...
雇用形態
正社員
要スキル:
■SAPコンサルタント 【必須】 SAPモ...
CO

【機械部品製造業向けSAP導入(CO)】東京都/要件定義・設計

月額単価
1,600,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
機械部品製造業を展開する企業において...
COMMPPSD

【製造・流通/S/4HANA新規導入(全モジュール)】23区内(ハイブリッド)/基本設計フェーズ推進

月額単価
1,400,000円 / 月
稼働場所
東京都
業務領域
設計
作業内容:
大規模なS/4HANA新規導入プロジェクトに...
COFI

【IT・製造/S/4HANA稼働後支援(FI/CO)】品川区(リモート併用)/障害対応・保守支援

月額単価
1,300,000円 / 月
稼働場所
東京都
業務領域
運用・保守
作業内容:
S/4HANAの本番稼働を迎えた直後の、非常...
MMSD

【商社・製造/S/4HANA新規導入(SD/MM)】東京・関西(ハイブリッド)/仕入先直送スキーム構築

月額単価
1,600,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
大規模なS/4HANA新規導入プロジェクトに...
COFIMMPPSD

【IT・製造/S/4HANA新規導入(ABAP)】東京駅(ハイブリッド)/移行ツール設計・開発

月額単価
1,200,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
エンタープライズ企業向けの大規模なS/4...
MM

【製造・流通/S/4HANA新規導入(MM)】東京駅(ハイブリッド)/購買管理基本設計・アドオン検討

月額単価
1,400,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
エンタープライズ企業向けの大規模なS/4...
MM

【製造・流通/S/4HANA新規導入(MM)】東京・関西(リモート併用)/購買管理コンサルティング

月額単価
2,000,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
大手企業におけるS/4HANAの新規導入プロ...
FI

【エネルギー業界/S/4HANA導入支援(連結会計)】都内・リモート/連結決算プロセスのシステム化推進

月額単価
1,500,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計, その他
作業内容:
エネルギー業界の大手企業における、S/4...
CO

【製造・管理会計/SAP COコンサル(CO-PC/PA)】都内・関西・リモート/要件定義およびCRP推進

月額単価
2,000,000円 / 月
稼働場所
東京都
業務領域
要件定義
作業内容:
SAP S/4HANAの導入または刷新プロジェク...
COFIMMPPSD

【IT・コンサル/GROW with SAP(Public Edition)】都内・リモート/クラウドネイティブな設計・開発

月額単価
1,700,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
最新のクラウドERPソリューションである...
この記事のポイント

変数等の定義

ABAP7.4以降は変数等を処理前に定義しなくても利用できるようになりました。

ただしローカルの変数としての宣言となるので使いどころに注意。
例えばform~endformの中で新構文で定義された変数は、formの外では利用できません。

新構文で定義された変数等はローカル宣言となる。

博士

ここでは変数定義に関する旧構文と新構文の比較の例を解説していくのじゃ!

変数の定義(新構文の例)

文字列の格納

新構文では処理の中でDATA(変数名)の形で定義することができます。

旧構文
* 変数定義
DATA l_test TYPE char4.

* 変数へ文字列格納
l_test = 'aaaa'.
新構文
* 変数へ文字列格納
DATA(l_test) = 'aaaa'.

新構文では型を自動で判別してくれます。
上記の新構文の例にあるl_testは4文字の文字列として判別されるため、4文字を超える文字列を入れることはできません。

METHODのIMPORTING(新構文の例)

以下のようにMETHODのIMPORTINGでも変数の定義を省略可能です。

旧構文
* 変数定義
DATA:
  l_time      TYPE uzeit,
  l_datE      TYPE datum,
  l_timestamp TYPE tzntstmpl.

* METHOD呼び出し
CALL METHOD cl_reca_date=>get_current_date
  EXPORTING
    id_timezone  = sy-zonlo
  IMPORTING
    ed_time      = l_time
    ed_date      = l_date
    ed_timestamp = l_timestamp.
新構文
* METHOD呼び出し
CALL METHOD cl_reca_date=>get_current_date
  EXPORTING
    id_timezone  = sy-zonlo
  IMPORTING
    ed_time      = DATA(l_time)
    ed_date      = DATA(l_date)
    ed_timestamp = DATA(l_timestamp).

汎用モジュール(CALL FUNCTION)ではMETHODのようにIMPORT変数の定義を省略することはできません。

SELECTから変数への格納(新構文の例)

旧構文
* 変数定義
DATA:
  l_ebeln TYPE ekko-ebeln.

* データ取得
SELECT SINGLE ebeln
  FROM ekko
  INTO l_ebeln
 WHERE ernam = 'TEST'.
新構文
* データ取得
SELECT SINGLE ebeln
  FROM ekko
  INTO @DATA(l_ebeln)
 WHERE ernam = 'TEST'.

SELECTの新構文については、新構文のSELECT文では変数等の頭に「@」を付ける必要があります。詳しくは以下をご確認下さい!

構造の定義(新構文の例)

新構文では処理の中でDATA(構造名)の形で定義することができます。

LOOPでのINTO先の構造

旧構文
* 変数定義
DATA wa_ekko LIKE LINE OF it_ekko.

* LOOP処理
LOOP AT it_ekko INTO wa_ekko.
  "何かの処理
ENDLOOP.
新構文
* LOOP処理
LOOP at it_ekko INTO data(wa_ekko).
  "何らかの処理
ENDLOOP.

READ TABLEでのINTO先の構造(新構文の例)

旧構文
* 構造定義
DATA wa_ekko LIKE LINE OF it_ekko.

* 内部テーブルから1行目を構造へ格納
READ TABLE it_ekko INTO wa_ekko INDEX 1.
新構文
* 内部テーブルから1行目を構造へ格納
READ TABLE it_ekko INTO DATA(wa_ekko) INDEX 1.

内部テーブルの定義(新構文の例)

新構文では処理の中でDATA(内部テーブル名)の形で定義することができます。

SELECT文から内部テーブルへのデータ取得

旧構文
* 型定義
TYPES:
  BEGIN OF typ_ekko,
    ebeln,
    burks,
  END OF typ_ekko.

* 内部テーブル定義
DATA:
  it_ekko TYPE STANDARD TABLE OF TYP_ekko.

* データ取得
SELECT ebeln
       bukrs
  FROM ekko
  INTO TABLE it_ekko
 WHERE ernam = 'TEST'.
新構文
* データ取得
SELECT ebeln,
       bukrs
  FROM ekko
  INTO TABLE @DATA(it_ekko)
 WHERE ernam = 'TEST'.

SELECTの新構文については別途解説しますが、新構文のSELECT文では項目の区切りで「,」を付ける必要があります。

FIELD-SYMBOLSの定義(新構文の例)

新構文では処理の中でFIELD-SYMBOL(フィールドシンボル名)の形で定義することができます。

LOOPでのASSIGNING先のフィールドシンボル

旧構文
* データ定義
FIELD-SYMBOLS <FS_EKKO> TYPE EKKO.

* LOOP処理
LOOP AT IT_EKKO ASSIGNING <FS_EKKO>.
  "何らかの処理
ENDLOOP.
新構文
* LOOP処理
LOOP AT IT_EKKO ASSIGNING FIELD-SYMBOL(<FS_EKKO>).
  "何らかの処理
ENDLOOP.

READ TABLEでのASSIGNING先のフィールドシンボル

旧構文
* データ定義
FIELD-SYMBOLS <FS_EKKO> TYPE EKKO.

* 内部テーブルから1行目をフィールドシンボルへ格納
READ TABLE IT_EKKO ASSIGNING <FS_EKKO> INDEX 1.
新構文
* 内部テーブルから1行目をフィールドシンボルへ格納
READ TABLE IT_EKKO ASSIGNING FIELD-SYMBOL(<FS_EKKO>) INDEX 1.
博士

変数に関するABAP7.4以降の新構文についての解説は以上じゃ。

他の新構文については他の記事でまとめていくので楽しみにしているのじゃ~!

  • 転職求人
  • フリーランス案件
株式会社日立産業制御ソリューションズ

【リモート可】【PM/PL候補】【東京】SAP(S/4HANA)エンジニア ※フレックスタイム制/ワークライフバランス◎(S/4HANA)

年収
430~800万円 / 年
勤務地
東京本社:東京都台東区秋葉原6番1号(...
雇用形態
正社員
要スキル:
【必須】 SAP導入に強い興味があり、以...
キリンビジネスシステム株式会社

SAP会計領域コンサルタント(管理職)/キリングループ唯一のIT会社(FI/CO)

年収
900~1,300万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 以下A・B・Cすべてを...
キリンビジネスシステム株式会社

SAPコンサルタント/キリングループ唯一のIT会社(SD/MM/PP)

年収
500~850万円 / 年
勤務地
東京都中野区中野4-10-2 中野セントラ...
雇用形態
正社員
要スキル:
【必須(MUST)】 SAPアプリケーショ...
株式会社ベイカレント・コンサルティング

【SAPコンサルタント】経営戦略実現を全社横断変革で支援/平均年収1,350万円

年収
600~2,500万円 / 年
勤務地
東京都港区麻布台1-3-1麻布台ヒル...
雇用形態
正社員
要スキル:
【必須(MUST)】 社会人経験3年以上...
株式会社 ホープス

【年収1000万円可】【リモート可】【上流工程】【SAP導入コンサルタント】リモート・ハイブリッド勤務OK|平均残業月10時間/HOPES ※基幹系業務システムの導入推進を行っていただける方を募集

年収
800~1,800万円 / 年
勤務地
〒 1040033:東京都中央区新川1-3-17新...
雇用形態
正社員
要スキル:
■SAPコンサルタント 【必須】 SAPモ...
CO

【機械部品製造業向けSAP導入(CO)】東京都/要件定義・設計

月額単価
1,600,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
機械部品製造業を展開する企業において...
COMMPPSD

【製造・流通/S/4HANA新規導入(全モジュール)】23区内(ハイブリッド)/基本設計フェーズ推進

月額単価
1,400,000円 / 月
稼働場所
東京都
業務領域
設計
作業内容:
大規模なS/4HANA新規導入プロジェクトに...
COFI

【IT・製造/S/4HANA稼働後支援(FI/CO)】品川区(リモート併用)/障害対応・保守支援

月額単価
1,300,000円 / 月
稼働場所
東京都
業務領域
運用・保守
作業内容:
S/4HANAの本番稼働を迎えた直後の、非常...
MMSD

【商社・製造/S/4HANA新規導入(SD/MM)】東京・関西(ハイブリッド)/仕入先直送スキーム構築

月額単価
1,600,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
大規模なS/4HANA新規導入プロジェクトに...
COFIMMPPSD

【IT・製造/S/4HANA新規導入(ABAP)】東京駅(ハイブリッド)/移行ツール設計・開発

月額単価
1,200,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
エンタープライズ企業向けの大規模なS/4...
MM

【製造・流通/S/4HANA新規導入(MM)】東京駅(ハイブリッド)/購買管理基本設計・アドオン検討

月額単価
1,400,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
エンタープライズ企業向けの大規模なS/4...
MM

【製造・流通/S/4HANA新規導入(MM)】東京・関西(リモート併用)/購買管理コンサルティング

月額単価
2,000,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計
作業内容:
大手企業におけるS/4HANAの新規導入プロ...
FI

【エネルギー業界/S/4HANA導入支援(連結会計)】都内・リモート/連結決算プロセスのシステム化推進

月額単価
1,500,000円 / 月
稼働場所
東京都
業務領域
要件定義, 設計, その他
作業内容:
エネルギー業界の大手企業における、S/4...
CO

【製造・管理会計/SAP COコンサル(CO-PC/PA)】都内・関西・リモート/要件定義およびCRP推進

月額単価
2,000,000円 / 月
稼働場所
東京都
業務領域
要件定義
作業内容:
SAP S/4HANAの導入または刷新プロジェク...
COFIMMPPSD

【IT・コンサル/GROW with SAP(Public Edition)】都内・リモート/クラウドネイティブな設計・開発

月額単価
1,700,000円 / 月
稼働場所
東京都
業務領域
設計, 開発(ABAP/Fiori)
作業内容:
最新のクラウドERPソリューションである...

★★★SAPラボのライター募集★★★

SAPラボでは、SAPの知識を活かして副業をしたい方を募集してるのじゃ!

SAPラボのライターの特徴

・ライティング初心者OK!
・報酬高単価!
・業務委託契約なので副業として最適!

SAP記事執筆者としての活動実績として利用可能なので、転職時や案件探しの際に企業へのアピール材料にもなります。

募集要項

・SAP導入や運用保守プロジェクトへの参画経験1年以上

ご応募/お問合せ先

info@sap-labo.com

少しでもご興味ある方、ぜひお気軽にご連絡下さい!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

株式会社スプラッシュエンジニアリング(https://splash-eng.com/)の代表取締役。

新卒でSAPエンジニアとして働き始め、SAPエンジニア・コンサルタント歴は10年以上。
2015年にシステム開発会社である株式会社Luxyを創業し2021年にバイアウト。その後、受託開発会社の株式会社アガルートITパートナーズ代表取締役も兼任。
2024年にこれまでの会社の代表を退任し株式会社スプラッシュエンジニアリングを創業。

一緒に「SAPラボ」を盛り上げてくれる副業ライター(SAP経験者)を募集してますので、お問い合わせよりお願いします!

この記事のポイント