ADT AladdinALADDIN TECHNOLOGY

ホーム › 記事 › SAP・MM

COLUMN / SAP・MM

SAP Query(ABAP Query)入門:SQ01・SQ02・SQ03で作る簡易レポートの作り方

SAP 標準で動く簡易レポート作成機能が SAP Query(ABAP Query)です。SQ01・SQ02・SQ03 の 3 つのトランザクションを組み合わせれば、ABAP を 1 行も書かずに購買実績・在庫推移・仕入先別与信の一覧を即席で作れます。本記事では 3 Tcode の役割分担、User Group(権限)→ InfoSet(データソース)→ Query(実行)の順で作る手順、CDS View との使い分けまで、現場視点で整理します。

公開日:2026-09-27読了目安:約10分閲覧数:—

この記事のポイント

  • SAP Query は ABAP コーディング不要の SAP 標準レポート機能で、3 Tcode で構成する
  • SQ03 = User Group(権限管理)/SQ02 = InfoSet(データソース)/SQ01 = Query(実行定義)
  • 基本手順は SQ03 → SQ02 → SQ01 の順で、移送(TR)で他環境へ展開する
  • S/4HANA では CDS View + Fiori Elements と併用し、短命レポートは SAP Query・中期運用は CDS という棲み分けが現実解
ADTナビゲーター
「SAP Query って昔ながらのツールでしょ?」と聞かれますが、S/4HANA でも動く現役機能なんです。ただし CDS View との棲み分けは意識したいところ。今日は 3 Tcode の役割と現実的な使い分けを見ていきます。

01WHAT SAP Query とは何か・SQ01/SQ02/SQ03 の役割

SAP Query は SAP ERP / S/4HANA に標準搭載された簡易レポート作成機能で、ABAP のソースコードを 1 行も書かずに業務ユーザーが自分でレポートを定義・実行できます。SAP GUI のメニューでは「クエリ」と表示されます。正式名称は SAP Query で、俗称として ABAP Query とも呼ばれます。

多くの現場で「SAP 標準にない一覧が欲しい」という依頼が来ますが、SAP Query はその最短解になります。購買実績の月次推移、仕入先別の与信残高、プラント別の在庫回転日数など、SAP 標準のトランザクション(ME2N / MB52 / S_ALR_87012193 など)では得られない軸のレポートを、コーディングなしで組めるのが強みです。

3 つの Tcode は「権限」「データソース」「実行」を分担する

SAP Query は 3 つの Tcode の組み合わせで動きます。SQ03 はUser Group(誰がどの InfoSet にアクセスできるかを決める権限の単位)を管理し、SQ02 はInfoSet(複数テーブルを JOIN した Query のデータソース)を定義し、SQ01 はQuery(InfoSet から表示項目と Selection criteria を選び、実行ボタンでレポートを走らせるオブジェクト)を作成・実行します。

この 3 つが分離されている理由は「変更の影響範囲を局所化するため」です。User Group の権限は BASIS 領域、InfoSet のテーブル定義は機能コンサルタント領域、Query の表示仕様は業務ユーザー領域と、責任分界が明確になります。結果として「購買レポートの Selection 項目を追加したい」という現場要望は SQ01 の修正で完結し、SQ02 や SQ03 に手を入れる必要がありません。

SAP Query の 3 Tcode 構成と成果物 SQ03 User Group 権限管理(誰が使えるか) SQ02 InfoSet データソース定義 SQ01 Query 実行・表示定義 業務ユーザーによる実行(F8) Selection criteria 入力 → ALV 表示 → Excel / 印刷 例:購買発注一覧(EKKO+EKPO+LFA1)/在庫一覧(MARD+MARC)
図1:SAP Query の 3 Tcode 構成。SQ03(権限)→ SQ02(データソース)→ SQ01(実行)の順で整備し、業務ユーザーは SQ01 で F8 を押すだけ。権限・データソース・実行が分離されていることで、現場要望の変更影響を局所化できる。
💡

用語補足:Query・InfoSet・User Group

Query は「どの項目を、どの条件で実行するか」を定義するレポート雛形。InfoSet はそのレポートが読むデータ源(テーブル/ビューの集合)。User Group は InfoSet と Query の公開範囲を決める権限の単位です。3 つが分離されているため、「権限は変えず、レポートだけ追加」「データソースだけ拡張して、既存レポートはそのまま」という変更が局所化できます。

QuickViewer(SQVI)との違い

似た機能に QuickViewer(SQVI)があります。QuickViewer はトランザクションコード 1 つでテーブルを直接指定して即席レポートを作る簡易機能で、「とりあえず購買発注の中身を 1 回だけ見たい」という確認作業に向きます。ただし移送できない、権限管理が弱い、ALV のレイアウト保存が個人単位に閉じるといった制約があるため、定型運用レポートには SAP Query(SQ01/SQ02/SQ03)を使います。

02POINTS 3 Tcode で作る 5 ステップ運用

ここからは実際に SAP Query を作る手順を 5 ステップで整理します。MM 領域の「購買発注一覧(EKKO+EKPO+LFA1)」を例に、BASIS・機能コンサルタント・業務ユーザーの役割分担も併せて見ていきます。

  1. ①SQ03 で User Group を作成するBASIS 担当者が SQ03 を起動し、User Group 名(例:Z_MM_PURCHASE)を入力して新規作成します。続けて Edit → Assign User で SAP ユーザー ID を割り当て、Edit → Assign InfoSet(後で SQ02 で作る InfoSet を割り当て)を実行します。User Group は業務単位(購買/販売/経理)で切ると権限管理が破綻しにくいです。
  2. ②SQ02 で InfoSet を定義する機能コンサルタントが SQ02 を起動し、InfoSet 名(例:Z_MM_PO_HISTORY)を入力して作成します。データソースの選択画面では「テーブル直接指定」を選び、購買発注ヘッダ EKKO・発注明細 EKPO・仕入先マスタ LFA1 の 3 テーブルを追加し、JOIN 条件(EKKO-LIFNR = LFA1-LIFNR・EKKO-EBELN = EKPO-EBELN)を設定します。最初から全テーブルを JOIN せず、まず 1〜2 テーブルで動く Query を作り、後で JOIN を追加するのが安全です。
  3. ③SQ02 で項目を公開するInfoSet の画面で、業務ユーザーに見せたい項目を「出力可(List Field)」「Selection criteria 可(Selection Field)」にチェックします。購買発注番号・購買伝票日付・プラント・仕入先コード・品目コード・数量・金額などを設定し、社外秘項目(銀行口座情報・与信限度額など)は公開しない判断も必要です。
  4. ④SQ01 で Query を作成する業務ユーザーが SQ01 を起動し、Query 名(例:Z_MM_PO_LIST)を入力して作成します。使う InfoSet(Z_MM_PO_HISTORY)と User Group(Z_MM_PURCHASE)を選び、List Field に表示項目を、Selection Field に絞り込み条件にしたい項目をドラッグします。Sort タブで並び順(例:購買伝票日付 降順 → 仕入先コード 昇順)を指定し、保存します。
  5. ⑤F8 で実行・移送するQuery 画面で F8 を押すと Selection 入力画面が開き、購買伝票日付のレンジ・仕入先コード・プラントなどを指定してレポートを実行できます。結果は ALV(SAP List Viewer)で表示され、Excel ダウンロード・印刷・バックグラウンド実行(ジョブ登録)も可能です。完成したら SQ02 / SQ01 / SQ03 の各画面でオブジェクトを TR(Transport Request)に割り当て、リリースして QAS・PRD 環境へ移送します。
SAP Query 5 ステップ運用フロー SQ03User Group SQ02InfoSet 定義 SQ01Query 作成 F8 実行レポート表示 移送TR → QAS/PRD 担当:BASIS 担当:機能コンサルタント 担当:業務ユーザー 担当:業務ユーザー 担当:BASIS / 開発者 最終成果物:購買発注一覧レポート EKKO+EKPO+LFA1 JOIN / Selection: 購買伝票日付・仕入先・プラント / Sort: 日付降順 ALV 表示 → Excel 出力 → 月次定型レポートとして運用
図2:SAP Query の 5 ステップ運用フロー。SQ03 → SQ02 → SQ01 → F8 実行 → 移送の順で、各ステップに BASIS / 機能コンサルタント / 業務ユーザー / 開発者の役割が対応する。
✅

Selection criteria には索引が効く項目を含める

Selection criteria に主キー・外部キーなど索引(Index)が効く項目を含めてください。含まれていないと全件走査となり、100 万件規模のデータでは応答が返らなくなります。MM 系では購買伝票番号(EKKO-EBELN)・仕入先コード(EKKO-LIFNR)・プラント(EKPO-WERKS)あたりが基本の絞り込み軸になります。

本番に直書きしない・移送運用を守る

SAP Query のオブジェクト(User Group / InfoSet / Query)はすべて移送対象です。DEV で作成・保存し、TR(Transport Request)に紐付けて QAS・PRD へ移送するのが正規運用です。本番に直接 SQ01 で Query を作ると、開発機との差分管理が破綻し、SAP アップグレード(EHP / S/4HANA 移行)の際に未移送オブジェクトが消失する事故につながります。

03INSIGHT CDS View との使い分け判断

SAP Query は万能ではありません。100 万件超の大規模データ、複雑な集計、複数組織の合算、S/4HANA らしい Fiori UI での利用では CDS View(ABAP CDS)に劣ります。S/4HANA では CDS View + Fiori Elements が SAP の推奨アーキテクチャであり、SAP Query は短命な現場レポートや PoC 用途に留めるのが現実解です。

ADT の SAP×AI 案件では、最初の 2〜4 週間に SAP Query で PoC し、「このレポートが本当に業務で使われるか」「Selection 項目はこの軸で十分か」を確認した上で、本番化する段階で CDS View + Fiori Elements にリプレースする二段構えを採っています。SAP Query を捨てずに残しておくと、CDS 側の障害発生時に代替手段として機能するのも利点です。

SAP Query のパラメータ入力は SAP GUI 完結で業務ユーザーがすぐに習得できるのに対し、Fiori Elements は SAP GUI より学習コストが高いです。「誰がどのレポートを使うのか」の利用層に応じて、ツールを使い分けるのが ADT の SAP コンサル方針です。MM 領域の購買・在庫・仕入先レポートは SAP MMとは?購買から入庫・支払までのProcure-to-Payプロセスを解説、入庫/請求仮勘定の消し込みは SAP MMのGR/IR勘定とは?発注・入荷・請求の「ズレ」を解消する仕組み で図解しています。

🔎

豆知識:SAP Query は SAP R/3 時代から続く現役機能

SAP Query は SAP R/3(1992 年リリース)の時代から動く機能で、SAP ERP 6.0・S/4HANA でも標準搭載されています。30 年以上動いている理由は「業務ユーザーが ABAP を書かずにレポートを作れる」という価値が普遍的だったから。派手さはありませんが、短期 PoC や臨時レポートの最短解として知っておくと現場で重宝します。

まとめ

  • SAP Query は ABAP コーディング不要の SAP 標準レポート機能で、SQ01 / SQ02 / SQ03 の 3 Tcode で構成する
  • SQ03 = User Group(権限)/SQ02 = InfoSet(データソース)/SQ01 = Query(実行)の順で役割分担
  • 基本手順は SQ03 → SQ02 → SQ01 → F8 実行 → TR 移送の 5 ステップ
  • Selection criteria には索引が効く項目(主キー・外部キー)を含めてパフォーマンスを確保する
  • 本番に直書きせず、DEV で作成して TR で移送するのが正規運用
  • S/4HANA では CDS View + Fiori Elements と併用し、短命レポートは SAP Query・中期運用は CDS という棲み分けが現実解

04FAQ よくある質問

ADTナビゲーター
SAP Query 導入検討時に現場で出る質問を 4 つまとめました。「S/4HANA で動くか」「QuickViewer との違いは」が頻出です。
SAP Query は S/4HANA でも動きますか?

はい、S/4HANA でも SAP Query は標準アドオンとして引き続き利用可能です。ただし S/4HANA では CDS View + Fiori Elements でのレポート実装が推奨されており、SAP Query は短命な現場レポートや PoC 用途に留めるのが現実解です。3 か月以内に廃止が決まるレポートなら SAP Query、半期を超える保守が要るなら CDS View に投資するのが経験則です。

SAP Query と QuickViewer(SQVI)の違いは?

QuickViewer(SQVI)はテーブルを直接指定して即席レポートを作る簡易機能で、1 回限りの確認作業に向きます。ただし移送できない、権限管理が弱く SQ02/SQ03 のような User Group 機能がない、ALV のレイアウト保存が個人単位に閉じるといった制約があります。定型運用レポートは SQ01/SQ02/SQ03 の SAP Query で作成するのが原則です。

SAP Query のパフォーマンスを改善するには?

Selection criteria に主キー・外部キーなど索引が効く項目を含める、結合するテーブルを絞る、InfoSet に必要な項目だけ公開する、の 3 点が基本です。MM 系では購買伝票番号・仕入先コード・プラント・品目コードあたりが索引が効く代表例。100 万件を超える大規模データでは CDS View + Fiori のほうが圧倒的に高速です。

InfoSet の項目単位で権限を絞り込めますか?

InfoSet レベルでは不可です。InfoSet に登録した項目は同じ User Group 内のユーザー全員が参照できます。項目単位の権限制御が必要な場合は、CDS View に Data Control Language(DCL)を付けて権限制御し、Fiori Elements のアプリとして公開します。SAP Query は「同じ User Group 内で同じデータを見せる」前提の設計です。

出典・参考

※本記事は上記の公開情報をもとに、アラディンテクノロジー株式会社編集部が独自に整理・考察したものです。内容は執筆時点(2026-09-27)の情報です。SAP Query は SAP NetWeaver の Basis アドオンとして提供されており、S/4HANA でも引き続き利用可能ですが、将来の SAP リリースで仕様が変わる可能性があります。最新仕様は SAP Help Portal でご確認ください。考察部分は当社の見解であり、特定の構成・運用を推奨するものではありません。

SAP Query での PoC から CDS View での本番化まで、
ご一緒に設計しませんか?

ADT では、MM / SD / FICO 領域の SAP Query による PoC 設計と、S/4HANA での CDS View + Fiori Elements への本番化、移送運用まで一貫して支援します。ご相談・お見積りは無料です。

無料で相談する →
ABOUT

この記事について

執筆

アラディンテクノロジー株式会社 編集部

SAPコンサルティングとAI活用の現場知見をもとに、基幹業務のスマート化に役立つ情報をお届けしています。

監修

劉 瑞(リュウ ズイ)

代表取締役社長。SAP ABAP開発からコンサルティングまで15年、来日20年弱。「SAP×AI」の融合による価値創造に注力しています。

記事一覧に戻る