【SAP ABAP】ABAP7.4以降のS4HANAでの新構文(SELECT文)

登場人物紹介

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

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

この記事を読むメリット

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

ABAP7.4以降ではSELECT文の書き方がだいぶ変わり、非常に便利になりました。
ネイティブSQLで直接データベースを触れたことがある方は分かると思いますが、それと近い感覚でSQL内で演算することができるようになっています。

博士

ここではSELECT文についての新構文を解説していくのじゃ!


※当記事ではABAP7.5以降の新構文も含みます。

・同じプログラム内で旧構文と新構文のSELECT文は同居可能です。
・1つのSELECT文の中では旧構文もしくは新構文のどちらかで記載する必要があります。

SAPフリーランスバンク SAPフリーランスバンク

新着のSAPフリーランス案件

【CO】

【FI】

製造業様SAP S/4 HANA導入検討支援(コンサルリード)

要スキル:
・会計領域におけるプロジェクト管理の実施 ・10名以上のメンバー管理の経験をお持ちであること ・エンドユーザとの調整を含めたマネジメントスキル ・SAP導入プロジェクトの経験
月額単価:
~1,250,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
SAP新規導入における、プロジェクト管理支援 ・会計・生産領域(FI/CO/PS/PP/QM)におけるプロジェクト管理支援 ・ファシリテート ・領域タスク推進/進捗管理 ・個別課題整理・解決

【CO】

【FI】

【MM】

【PP】

【SD】

【その他】

建設コンサルタント企業向けSAP保守支援(チームリード)

要スキル:
・SAP関連のプロジェクトで複数モジュールでの経験があること 【尚可】 ・ロジから会計に連動するところの知見
月額単価:
~1,300,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
複数モジュールにまたがった保守チームの管理を行っていただきます。 問い合わせや障害等のタスク管理や優先順位付けなどを顧客とやり取りしながら差配していくのが中心となります。

【CO】

【FI】

【MM】

【SD】

製造業会社向けSAP保守支援(会計もしくはロジ)

要スキル:
・会計もしくはロジ領域でのSAPプロジェクトの業務経験 ・ABAPでの開発経験
月額単価:
~950,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
問い合わせ対応や調査等の保守作業(会計/ロジ)

【MM】

【SD】

複数社に対するSAP運用保守とS/4へのVerUp対応支援

要スキル:
SAPロジ領域での保守や導入のプロジェクト経験
月額単価:
~1,300,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
20社前後に対するSAPの保守業務を担当頂きます。 (不具合調査、障害対応、機能追加・改修、法改正対応など) またS/4へのバージョンアップを控えているため、そちらも対応頂きます。

【CO】

【FI】

【MM】

【PP】

【SD】

光学機器製造会社向けSAP導入プロト支援

要スキル:
・SAPの構想策定フェーズからプロジェクトに参画したことがある経験 ・プロト機の設定などをおこなってきた経験
月額単価:
~1,800,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
・業務フローの整理と作成 ・プロト機の準備

【FI】

製造業会社向けS/4導入検討支援(会計リード)

要スキル:
・SAP導入プロジェクトの経験 ・会計領域におけるリード経験(10名以上目安) ・顧客折衝の経験
月額単価:
~1,250,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
海外テンプレート構築検討を進めており、会計チームでのリードを担当頂きます。 ・顧客に対する進捗報告 ・顧客からの相談窓口 ・チーム全体の、品質、進捗、コストの管理 ・領域横断課題の検討(チケット起票単位の整理等)

【SD】

SAP導入コンサル支援(SD)

要スキル:
・SAPプロジェクトにて要件定義経験5年以上 ・要件定義からカスタマイズの設定 ・SAP(SDモジュール)経験5年以上 ・コミュニケーション能力 【尚可】 ・リモート環境での作業経験
月額単価:
~1,300,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
SAP導入コンサルポジションとして要件定義より参画予定となります。 ・要件定義の確認と課題対応 ・残課題の背景・内容を定義 ・SAPソリューションの検討・討議

【FI】

製造業向けS/4新規導入支援(FI-AP/AR)

要スキル:
SAP導入プロジェクトにおいてFI(AP/AR)コンサルタントとしての業務経験
月額単価:
~2,000,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
S/4新規導入PJのFIメ(AP/AR)メンバーとして参画頂きAP/AR領域について以下を担当頂きます。  -業務フロー作成  -プロトシナリオ作成  -プロト用パラメータ設定、プロト実施  -課題対応(SAP標準を使ったソリューション検討)  -議事録作成など

【FI】

SAP HANAバージョンアップにおける会計機能設計支援

要スキル:
・FI領域の要件定義書から基本設計を現行を参考に作成し、  後続作業も出来る方。 ・SAP標準機能と会計業務に関する知識 <尚可> FI-AA経験、TRM経験
月額単価:
~900,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
SAP FIコンサルまたはJrコンサル S/4HANAへバージョンアップに向け、会計領域の要件定義フェーズ作業 ・現行SAPの調査支援(標準機能の含む) ・ToBe詳細業務フロー作成支援 ・現行アドオン調査・整理 ・ToBeアドオンへの置き換え時の実現ポイント調査・整理

【FI】

自動車メーカー向けS4HANA導入支援(FI/CO)

要スキル:
・FIもしくはCOモジュールでの業務要件定義の経験(導入~)
月額単価:
~950,000円 / 月
稼働場所:
広島県
稼働率:
100%
作業内容:
S4導入要件定義フェーズにおいて以下の業務を行っていただきます。 ・要件定義 ・業務フロー作成 ・既存Add-On整理&再設計 ・財務関連コード定義
この記事のポイント

取得項目の指定 / 変数の指定の方法の変更

・新構文では取得項目は「,」を付けて指定します。
・内部テーブルや条件指定時の変数には、変数の頭に「@」を付けます

旧構文
* データ取得
SELECT ebeln
       bukrs
  FROM ekko
  INTO TABLE it_ekko
 WHERE ernam = l_user.
新構文
* データ取得
SELECT ebeln,
       bukrs
  FROM ekko
  INTO TABLE @it_ekko
 WHERE ernam = @l_user.

SELECT構文(記載順序)の追加

新構文では以下のような取得の仕方も可能となりました。

SELECT FROM テーブル名
FIELDS 項目1,項目2…
WHERE 項目 = @変数
INTO TABLE @内部テーブル

旧構文
SELECT ebeln
       bukrs
  FROM ekko
  INTO TABLE it_ekko
 WHERE ernam = l_user.
新構文
SELECT FROM ekko
     FIELDS ebeln,
            bukrs
      WHERE ernam = @l_user
 INTO TABLE @it_ekko.

UNION / UNION ALLの使用が可能に

新構文では、
・UNION / UNION ALLを用いて複数のSELECT文を一つの内部テーブルに格納することができます。
・UNION / UNION ALLを用いる際は「SELECT構文(記載順序)の追加」の構文を用い、格納先の内部テーブルは最後に一度だけ指定します。
・UNIONは重複削除され、UNION ALLは重複があってもそのまま内部テーブルにデータが格納されます。

旧構文
SELECT ebeln
       bukrs
  FROM ekko
  INTO TABLE it_ekko
 WHERE ernam = l_user1.

SELECT ebeln
       bukrs
  FROM ekko
  APPENDING TABLE it_ekko
 WHERE ernam = l_user2.
新構文
SELECT FROM ekko
     FIELDS ebeln,
            bukrs
      WHERE ernam = @l_user1
UNION
SELECT FROM ekko
     FIELDS ebeln,
            bukrs
      WHERE ernam = @l_user2
 INTO TABLE @it_ekko.

条件の左辺の演算が可能に

新構文では条件文(WHERE句)の左辺を演算して条件指定ができます。

新構文の例
SELECT FROM ztest_saplab
     FIELDS zkey1,
            zfltp1,
            zfltp2
        WHERE zint1 + zint2 < 10
   INTO TABLE @it_table.

テーブル項目以外を取得項目へ設定可能に

新構文ではテキストや変数を取得項目値として指定できるようになりました。

新構文の例
SELECT 'TEST'  AS field1,
       @l_text AS field2
  FROM ztest_saplab
  INTO TABLE @it_table.

演算した結果を取得項目へ設定可能に

新構文では計算した結果を取得項目値として指定できるようになりました。

新構文の例
SELECT 10 * 10        AS field1,
       zint1 + zint2  AS field2
  FROM ztest_saplab
  INTO TABLE @it_table.

内部テーブルからSELECT可能に

新構文ではDBテーブルからだけではなく内部テーブルからSELECTできるようになりました。

新構文の例
SELECT FROM @it_table AS TAB1 "内部テーブルから取得
     FIELDS ZKEY1
 INTO TABLE @it_table2.

新構文では内部テーブル・DBテーブルをJOINしたテーブルからSELECTも可能です。

新構文の例
SELECT FROM @it_table AS tab1
      INNER JOIN makt AS tab2
         ON tab1~zkey1 = tab2~maktx
     FIELDS tab1~zkey1
 INTO TABLE @it_table2.

サブクエリ(副問い合わせ)が利用可能に

新構文ではサブクエリ(副問い合わせ)も利用可能になりました。

SELECT matnr
  from mara
 where matnr in ( SELECT matnr
                    from makt
                   WHERE matnr = mara~matnr
                     and maktx = 'Frame' )
 INTO TABLE @data(it_mara).

さまざまな関数が利用可能に

新構文ではさまざまな関数を条件(WHERE句)や取得項目(FIELD句)に使用することができるようになりました。

新構文の例
SELECT FROM ztest_saplab
   FIELDS concat( ztext1 , ztext2 ) AS FIELD1,
          lower( ztext2 )           AS FIELD2,
          left( ztext3 , 4 )        AS FIELD3,
          CASE ztext3
            when '1' then 'GOOD'
            when '2' then 'BAD'
            ELSE 'NORMAL'
          END                       AS FIELD4
    WHERE concat( ztext1 , ztext2 ) = ztest_saplab~ztext3
     INTO TABLE @it_table.

関数一覧

使用できる関数を以下にまとめます。

数値関数

関数内容
ABS( field )fieldの絶対値。
CEIL( field )field以上の最小の整数に丸めた値。
DiV( field1,field2 )field1をfield2で除算した際の商(整数部分)。
DIVISION( field1,field2,dec )field1をfield2で除算して、dec(少数点の桁の位置)で四捨五入した値。
FLOOR( field )field以下の最大の整数に丸めた値。
MOD( field1,field2 )field1をfield2で除算した際の余り。
ROUND( field1,pos )field1をpos(少数点の桁の位置)で四捨五入した値。

文字列関数

関数内容
LEFT( field,len )fieldの左側から長さlenだけ切り出したの文字列。
RIGHT( field,len )fieldの右側から長さlenだけ切り出したの文字列。
LOWER( field )fieldを全て小文字に変換した文字列。
UPPER( field )fieldを全て大文字に変換した文字列。
INITCAP( field )fieldの単語の文字列の最初の文字を大文字に変換し、それ以外の文字を小文字に変換した文字列。
LENGTH( field )fieldの文字数。
SUBSTRING( field,pos,len )fieldから、文字の位置posから長さlenだけ切り出した文字列。
INSTR( field1,field2 )field1から文字列field2が最初に出現する位置。
REPLACE( field1,field2,field3 )field1の文字列に対し、field2をfield3に置換した文字列
CONCAT( field1,field2 )field1,field2を連結した文字列。
CONCAT_WITH_SPACE( field1,field2,len )field1,field2を長さlenのスペースを間に挟んで連結した文字列。
LTRIM( field,char )fieldの文字列の左側の文字charを削除した文字列。
RTRIM( field1,char )fieldの文字列の右側の文字charを削除した文字列。
LPAD( field1,len,field2 )field1を長さlenだけ切り出した文字列。
その際、長さlenに満たない場合は左側に文字列field2を埋めた文字列となる。
RPAD( field1,len,field2 )field1を長さlenだけ切り出した文字列。
その際、長さlenに満たない場合は右側に文字列field2を埋めた文字列となる。

条件の関数

関数内容
CASE field1
WHEN value1
THEN return1
WHEN value2
THEN return2

ELSE
return3
END
field1の値が、
・value1の時にreturn1を返す。
・value2の時にreturn2を返す。

・上記以外の時にreturn3を返す。
CASE
WHEN cond1
THEN return1
WHEN cond2
THEN return2

ELSE
return3
END
・条件式cond1が正の時にreturn1を返す。
・条件式cond2が正の時にreturn2を返す。

・上記以外の時にreturn3を返す。
※上に記載している条件が優先される。
COALESCE( field1,field2,field3,… )field1,field2,field3…のうち、最初にNULLではない値を返す。
博士

SELECTに関するABAP7.4以降の新構文についての解説は以上じゃ。
まだ新構文はあるので、都度更新していくぞい!

新着のSAPフリーランス案件

【CO】

【FI】

製造業様SAP S/4 HANA導入検討支援(コンサルリード)

要スキル:
・会計領域におけるプロジェクト管理の実施 ・10名以上のメンバー管理の経験をお持ちであること ・エンドユーザとの調整を含めたマネジメントスキル ・SAP導入プロジェクトの経験
月額単価:
~1,250,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
SAP新規導入における、プロジェクト管理支援 ・会計・生産領域(FI/CO/PS/PP/QM)におけるプロジェクト管理支援 ・ファシリテート ・領域タスク推進/進捗管理 ・個別課題整理・解決

【CO】

【FI】

【MM】

【PP】

【SD】

【その他】

建設コンサルタント企業向けSAP保守支援(チームリード)

要スキル:
・SAP関連のプロジェクトで複数モジュールでの経験があること 【尚可】 ・ロジから会計に連動するところの知見
月額単価:
~1,300,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
複数モジュールにまたがった保守チームの管理を行っていただきます。 問い合わせや障害等のタスク管理や優先順位付けなどを顧客とやり取りしながら差配していくのが中心となります。

【CO】

【FI】

【MM】

【SD】

製造業会社向けSAP保守支援(会計もしくはロジ)

要スキル:
・会計もしくはロジ領域でのSAPプロジェクトの業務経験 ・ABAPでの開発経験
月額単価:
~950,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
問い合わせ対応や調査等の保守作業(会計/ロジ)

【MM】

【SD】

複数社に対するSAP運用保守とS/4へのVerUp対応支援

要スキル:
SAPロジ領域での保守や導入のプロジェクト経験
月額単価:
~1,300,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
20社前後に対するSAPの保守業務を担当頂きます。 (不具合調査、障害対応、機能追加・改修、法改正対応など) またS/4へのバージョンアップを控えているため、そちらも対応頂きます。

【CO】

【FI】

【MM】

【PP】

【SD】

光学機器製造会社向けSAP導入プロト支援

要スキル:
・SAPの構想策定フェーズからプロジェクトに参画したことがある経験 ・プロト機の設定などをおこなってきた経験
月額単価:
~1,800,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
・業務フローの整理と作成 ・プロト機の準備

【FI】

製造業会社向けS/4導入検討支援(会計リード)

要スキル:
・SAP導入プロジェクトの経験 ・会計領域におけるリード経験(10名以上目安) ・顧客折衝の経験
月額単価:
~1,250,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
海外テンプレート構築検討を進めており、会計チームでのリードを担当頂きます。 ・顧客に対する進捗報告 ・顧客からの相談窓口 ・チーム全体の、品質、進捗、コストの管理 ・領域横断課題の検討(チケット起票単位の整理等)

【SD】

SAP導入コンサル支援(SD)

要スキル:
・SAPプロジェクトにて要件定義経験5年以上 ・要件定義からカスタマイズの設定 ・SAP(SDモジュール)経験5年以上 ・コミュニケーション能力 【尚可】 ・リモート環境での作業経験
月額単価:
~1,300,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
SAP導入コンサルポジションとして要件定義より参画予定となります。 ・要件定義の確認と課題対応 ・残課題の背景・内容を定義 ・SAPソリューションの検討・討議

【FI】

製造業向けS/4新規導入支援(FI-AP/AR)

要スキル:
SAP導入プロジェクトにおいてFI(AP/AR)コンサルタントとしての業務経験
月額単価:
~2,000,000円 / 月
稼働場所:
フルリモート
稼働率:
100%
作業内容:
S/4新規導入PJのFIメ(AP/AR)メンバーとして参画頂きAP/AR領域について以下を担当頂きます。  -業務フロー作成  -プロトシナリオ作成  -プロト用パラメータ設定、プロト実施  -課題対応(SAP標準を使ったソリューション検討)  -議事録作成など

【FI】

SAP HANAバージョンアップにおける会計機能設計支援

要スキル:
・FI領域の要件定義書から基本設計を現行を参考に作成し、  後続作業も出来る方。 ・SAP標準機能と会計業務に関する知識 <尚可> FI-AA経験、TRM経験
月額単価:
~900,000円 / 月
稼働場所:
東京都
稼働率:
100%
作業内容:
SAP FIコンサルまたはJrコンサル S/4HANAへバージョンアップに向け、会計領域の要件定義フェーズ作業 ・現行SAPの調査支援(標準機能の含む) ・ToBe詳細業務フロー作成支援 ・現行アドオン調査・整理 ・ToBeアドオンへの置き換え時の実現ポイント調査・整理

【FI】

自動車メーカー向けS4HANA導入支援(FI/CO)

要スキル:
・FIもしくはCOモジュールでの業務要件定義の経験(導入~)
月額単価:
~950,000円 / 月
稼働場所:
広島県
稼働率:
100%
作業内容:
S4導入要件定義フェーズにおいて以下の業務を行っていただきます。 ・要件定義 ・業務フロー作成 ・既存Add-On整理&再設計 ・財務関連コード定義

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

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

SAPラボのライターの特徴

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

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

募集要項

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

ご応募/お問合せ先

info@sap-labo.com

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

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

この記事を書いた人

株式会社Luxy(https://luxy-inc.com/company_info/)と株式会社アガルートITパートナーズ(https://agaroot-itp.com/about/)の代表取締役。

新卒でSAPエンジニアとして働き始める。副業で事業を開始したのち、2015年に独立しシステム開発会社を設立。SAPの案件に従事しつつシステム開発事業を成長させ、2021年に会社をバイアウト。その後も創業会社とグループ会社で代表を兼任。
SAPエンジニア・コンサルタント歴は10年以上。

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

この記事のポイント