PR

【SAP】クエリ(SAP Query)の作成手順【3分で読めます】

ABAP

SAP Query(※以下SAPクエリ)は、データを抽出してレポートを出すレポーティングツールのことです。

仕入先明細照会(トランザクションコード:FBL1N)など、一覧系のデータを抽出する標準機能はある程度用意されていますが、例えばBP(ビジネスパートナ)などは一覧表示・抽出系の機能が用意されていません。

一覧表示機能が標準用意されていない場合に、その機能を提供する1つの手段として用いられるのが、SAPクエリです。

このページではSAPクエリの作成手順を解説しつつ、システム的な仕組みが分かるように図付きで説明していきます。

このページで学べる内容
  • SAPクエリとは?(ビューとの違いは?)
  • SAPクエリの作成方法
    • SQ03:ユーザグループ登録
    • SQ02:インフォセット登録
    • SQ01:クエリ設定

SAPクエリとは何かが知りたい方、SAPクエリを1から知りたい方は特に必見です。

是非最後までご覧ください。早速解説を始めます。

スポンサーリンク

SAPクエリとは?

まずは、結論から。

語弊を恐れずにSAPクエリを簡単に説明すると、SAPクエリとは「誰が」「何を見るか」を定義するデータ参照プログラムです。

この後説明していきますが、SAPクエリを作成する際ABAPによるコーディングは一切行いません。

コーディングはしないのですが、裏側ではシステム的にABAPのプログラム(名称AQから始まるプログラム)が生成されます。システム的に見ると、エンドユーザはクエリを実行する際、間接的にこのプログラムを実行することで標準にはない一覧機能出力機能を利用していると説明できます。

そのため、SAPクエリは「権限制御ができるデータブラウザプログラム」と理解しても、とりあえずは問題ありません。

※生成されたプログラム自体をアドオンPGMで呼び出すことも可能なので、アドオンプログラムと言いつつ、実は「SAPクエリを呼んでいるだけ」というプログラムも存在します。

SAPクエリは「誰が」「何を見るか」を定義するー。ここがポイントになりますので、まずこの点を理解しておきましょう。

ビューとの違いは?

ビューとSAPクエリは何が違うか?

システム的にいうと、ビューはABAPディクショナリで登録することからわかるようにデータベース側の設定です。(厳密にはちょっと異なりますが・・・。)

一方でクエリは上記で解説した通り、ABAPプログラムです。プログラムなので、データベース側の設定というよりは、アプリケーション側の制御と言えます。

ビューは照会だけではなく、更新もできますが、SAPクエリでは更新はできません。

その他にも、SAPクエリは権限にも関わりますが、ビューは関わらないなど違いがあるため、似たようなものではあるが別物である、という前提で理解しておきましょう。

ビューとは?

ビュー(View)とは1つ以上のデータベースから任意のデータを選択して、 見たいデータだけ、欲しいデータだけを表示する仕組みのこと。

詳しくはこちらの記事で解説しておりますので、合わせてご覧ください。

SAPクエリの作成手順

早速ですが、ここからはSAPクエリの作成手順を解説していきます。

「誰が」「何を」の原理を知っていれば難しくありませんし、特殊なSAP用語も合わせて解説してきますので、ご安心ください。

トランザクションコード:SQ03ユーザグループ登録

まず初めに登録するのが「誰が」の部分です。

「誰が」の部分は「ユーザグループ」という仕組みを利用します。

この「ユーザグループ」というのは、その名の通りユーザIDをまとめる概念であり、ここがSAPクエリの権限制御の肝になります。

作成するクエリを利用できるユーザを1つの「ユーザグループ」に割り当てないとクエリを利用できません。

SQ03:第1画面―ユーザグループの登録

「ユーザグループ」自体の登録は名称を入れて「登録」ボタンを押し、画面にしたがい入力を行えばOKです。

登録したユーザグループにユーザIDを割り当てる仕組みです。

割り当てられたユーザのみが、これから作成するSAPクエリを実行できるようになるため、通常はロールの設定と同じように部門単位や、職責単位で設定します。

※ユーザマスタや、ロール設定など詳しく知りたい方はこちらのページをご覧ください。

トランザクションコード:SQ02インフォセット登録

「誰が」の部分に該当するユーザグループの登録が完了したら、次に設定するのが「何を見るか」の部分です。

「何を見るか」の部分の設定を「インフォセット(infoset)」と呼びます。

「インフォセット」では、どのテーブルのどの項目なのか? といった情報はもちろん、どのテーブルとどのテーブルを結合するか? そして、どの項目を表示できるようにするか?を定義します。

SQ02:第1画面―インフォセットの登録

トランザクションコード:SQ02の第1画面です。

先ほどと同様、インフォセットの名称を入力し「登録」ボタン押下で画面が遷移していきます。

ちなみに、この画面に「ロール/ユーザグループ割当」ボタンがあることからわかるように「インフォセット」に「ユーザグループ」を割り当てます。

今から作成するインフォセット(どのテーブルのどの項目)を見ることができるのは、ここで割り当てしたユーザグループになります。

先ほど説明した通り、ユーザグループにはユーザIDが割り当てられていますので、ユーザIDとインフォセットは間接的に紐づいている、ということになります。

インフォセット登録初期画面

「登録」ボタンを押下すると上記の画面が出てくるので、画面にしたがいインフォセットの設定を進めていくことになります。

※詳しい解説は別ページに記載します。

ちなみに、データソース欄を見て頂くとわかりますが、先ほど説明したようにテーブルを選択できるのはもちろんですが、プログラムも選択できます。

トランザクションコード:SQ01クエリ設定

さて、ここまでで「誰が」「何を見るか」の2つの次元での設定が終わりました。

「誰が」の部分をユーザグループで、「何を見るか」をインフォセットで定義した状態です。

既に、インフォセットにユーザグループも割当たっている状態です。

ここで最後に設定するのが「どのように表示するか」となります。これがクエリの設定です。

トランザクションコード:SQ01をたたくと、任意のユーザグループ用のクエリ設定画面になりますので、最初にユーザグループの選択を行います。

作成したいクエリ名称を入力し「登録ボタン」を押下すると、先ほどユーザグループに割り当てたインフォセットを選択できるようになります。

あとは、どのように表示するかを決めるクエリの設定を行うことでSAPクエリの実行が可能になります。

SAPクエリの設定はたったこれだけです。

途中、詳しい画面は省きましたが、いちからアドオンプログラムを作るよりは簡単ですね。

標準機能にない一覧照会系の機能をアドオンプログラムでつくる前に一度SAPクエリの機能を用いてみてはいかがでしょうか?

ABAPを1から勉強したい方は

初めてABAPを勉強するのは結構難しいですよね。

でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。

ABAPをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?

あなたの技術、もっと価値ある場所で活かしませんか?
SAPエンジニアのキャリア支援はこちらから↓

No.1 > 外資系・IT業界などハイクラスの転職なら【アクシスコンサルティング】blank
4人に1人のコンサルタントが選ぶパートナー!
ビッグ4やアクセンチュアへの転職を実現し年収1000万へ。

No.2 > IT・Web転職特化エージェント【レバテックキャリアblank
blank
サービス利用者数20万人突破。

平均年収アップ率77%であなたの転職成功を保証します。

No.3 > blankリクルートエージェント
blank
\転職支援実績NO.1/

応募が殺到しすぎるが故に・・・非公開にせざるを得ない魅力的な求人が多数!

読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
ABAPSAP
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました