SAP

SAP BW/4HANAクエリ作成の基礎:設計手順とトラブルシューティング

SAP BW/4HANAでクエリを作成するための基本手順を、InfoProviderの確認、キー数値と特性の配置、変数、制限値、実行確認まで実務向けに解説します。

SAP BW/4HANAクエリ設計の流れプロバイダー確認からクエリ検証までの手順を示すSAP BW/4HANAクエリ設計の流れプロバイダー確認からクエリ検証までの手順を示す基盤選択条件を調整検証InfoProviderを確認粒度、項目、マッピング、…クエリ構造を設計行、列、自由特性、キー数…フィルターと変数を設定入力方式、初期値、値ヘル…結果を検証既知の明細や集計値と比較…CertPas オリジナル図解
InfoProvider確認、クエリ構造設計、変数設定、結果検証の順に進むSAP BW/4HANAクエリ設計の流れ
目次
  1. SAP BW/4HANAクエリ作成の全体像
  2. データモデルとInfoProviderを確認する
  3. クエリの基本構造を設計する
  4. フィルターと変数を設定する
  5. 計算列と制限値を追加する
  6. 実行結果を検証する
  7. よくある問題を切り分ける
  8. 運用に引き継ぐ前のチェックリスト

SAP BW/4HANAクエリ作成の全体像

SAP BW/4HANAのクエリは、蓄積されたデータを利用者が分析できる形に定義するオブジェクトです。クエリ作成では、最初にデータの保存先と提供用の構造を確認し、その後に行、列、自由特性、フィルター、変数、例外集計などを設計します。画面上で項目を配置するだけでなく、利用者がどの粒度で何を比較するのかを先に決めることが重要です。

実務では、データを保持するADSOと、複数のプロバイダーを分析用にまとめるCompositeProviderを区別します。クエリは通常、分析用のInfoProviderを基盤に作成します。対象の構造を確認する際は、まずSAP BW/4HANAの全体像でデータフローと主要オブジェクトの関係を整理しておくと、設計対象を選びやすくなります。

作成前に確認する項目

  • 分析対象となるInfoProvider
  • 使用する特性、キー数値、階層
  • データの有効期間と更新日時
  • 利用者が必要とする集計単位
  • 権限によって表示範囲が変わる項目
  • 既存クエリとの重複や再利用の可能性
空結果と重複結果の切り分けクエリ結果が空または重複する場合の初動確認を示す空結果と重複結果の切り分けクエリ結果が空または重複する場合の初動確認を示す最初に確認条件が正しい場合データがある場合想定外の結果結果が空、または合計が大…フィルターと変数を確認期間、初期値、固定フィルタ…データと更新状態を確認プロバイダーのデータと要…マッピングと粒度を確認結合、項目割り当て、集計…CertPas オリジナル図解
空結果や重複結果に対して、フィルター、変数、データ更新、マッピング、粒度を確認するSAP BW/4HANAクエリの切り分けフロー

データモデルとInfoProviderを確認する

クエリの結果が期待どおりにならない場合、クエリ画面より前にデータモデルを確認します。ADSOに必要な項目が存在するか、CompositeProviderで接続が正しいか、特性とキー数値の割り当てが整合しているかを確認してください。

特性は、会社コード、製品、得意先、会計期間など、データを分類する軸です。キー数値は数量、金額、件数など、集計する値を表します。特性を行やフィルターに置き、キー数値を列に置く構成が基本ですが、利用者の分析操作に合わせて自由特性へ移す項目も設計します。

InfoObjectを参照する項目では、属性、テキスト、階層の利用可否も確認します。テキストが表示されない場合は、マスターデータとテキストのロード状態、言語、キー日付の条件を確認します。InfoObjectの役割を整理するには、SAP BW/4HANA InfoObjectの設計も参照できます。

ADSOを直接使う場合

ADSOをクエリの基盤にする場合、必要な項目が有効化済みであること、データが正しいステータスでロードされていることを確認します。要求が未処理の状態であれば、クエリ側の定義が正しくても期待するレコードが表示されません。

また、キー項目の粒度を確認します。同じ伝票を複数行で保持する設計に対して、クエリで伝票単位の結果を期待すると、金額や数量が重複して見えることがあります。データの明細粒度とクエリの集計粒度を一致させます。保存と更新の構成を確認するときは、SAP BW/4HANA Advanced DataStore Objectの使い方が役立ちます。

CompositeProviderを使う場合

複数のADSOやOpen ODS Viewを結合する場合は、結合条件と項目マッピングを確認します。同名に見える特性でも、InfoObjectへの割り当てが異なると、フィルターやナビゲーション属性の動作が変わります。

結合では、片側にしか存在しないレコードの扱いも重要です。結合後の結果に欠落がある場合は、結合方式、対応するキー、空値の扱いを確認します。SAP BW/4HANA CompositeProviderの設計では、複数プロバイダーを分析用にまとめる際の確認点を整理しています。

クエリの基本構造を設計する

クエリは、行、列、自由特性、フィルター、条件、例外、セル定義などの構成要素から設計します。最初からすべての項目を配置するのではなく、利用者が最初に見る集計表を小さく定義し、必要な分析操作を段階的に追加します。

行と列を決める

行には、利用者が縦方向に比較する特性を配置します。製品別、会社コード別、得意先別などが代表例です。列には期間、シナリオ、キー数値など、横方向の比較に適した項目を配置します。

行と列の両方に高カーディナリティの特性を置くと、結果件数と処理負荷が大きくなります。明細一覧が必要な場合は、集計レポートと用途を分け、最初の表示件数を抑える設計にします。

自由特性を使う

利用者が実行後に分析軸を追加する項目は、自由特性に配置します。ただし、自由特性を増やしすぎると利用者が選択に迷い、クエリの実行条件も複雑になります。実際に使われる切り口を確認し、用途ごとにクエリを分ける判断も行います。

キー数値を定義する

キー数値では、集計方法、単位、通貨、小数桁、符号を確認します。金額の通貨換算や数量の単位変換を行う場合は、元データの通貨・単位と変換ルールを確認します。合計が業務上意味を持たない比率や平均値は、単純な加算ではなく適切な計算式や集計方法を使います。

フィルターと変数を設定する

固定フィルターは、常に対象にする範囲を定義するために使用します。たとえば、特定のバージョンや計画領域に限定する場合に適しています。利用者が実行時に値を指定する項目には、クエリ変数を設定します。

変数を設計するときは、入力必須か任意か、単一値か複数値か、値ヘルプを提供するかを決めます。期間条件では、開始期間と終了期間を別々に入力させる方法と、期間範囲を選択させる方法があります。利用者の入力ミスを減らすには、初期値と選択可能な範囲を明確にします。

変数の確認手順

  1. 変数を割り当てる特性またはキー数値を確認する
  2. 入力形式と選択方式を設定する
  3. 初期値が業務上安全な範囲になっているか確認する
  4. 必須入力の有無を決める
  5. 値ヘルプに不要な値が含まれていないか確認する
  6. 未入力、単一値、複数値、範囲指定でテストする

入力可能な値が表示されない場合は、マスターデータ、属性値、権限、変数の参照特性を確認します。値ヘルプだけを修正しても、基盤データやマスターデータが未更新であれば候補は増えません。

計算列と制限値を追加する

計算キー数値は、既存のキー数値から比率、差異、合計、前年差などを作成する場合に使います。計算式を追加する前に、分母がゼロになるケース、NULLの扱い、通貨や単位の混在を確認してください。

制限値は、特定の条件に絞った集計値を同じクエリ内に表示するために使います。たとえば、特定の会社コードだけの売上や、特定期間だけの数量を別のキー数値として表示できます。制限条件が固定値なのか、変数に連動するのかを明確にし、利用者が条件を変更したときの結果を確認します。

複数の制限値や計算キー数値を配置すると、定義の意図が分かりにくくなります。名称には対象範囲と計算内容を含め、説明には分母、期間、通貨などの前提を記録します。

実行結果を検証する

クエリを保存したら、まず少数の条件で実行し、件数、合計、単位、通貨、期間を確認します。既知の伝票や既知の合計値を照合すると、設計上の問題とデータロード上の問題を切り分けやすくなります。

検証では、次の順番で確認すると効率的です。

  1. フィルターを最小範囲に設定する
  2. 特性を1つだけ行に置く
  3. キー数値を1つだけ表示する
  4. 既知の明細または集計値と照合する
  5. 項目を1つずつ追加する
  6. 変数、制限値、計算式を個別に検証する

結果が空の場合は、フィルター、変数の初期値、データの有効期間、権限、ロード状態を確認します。合計が大きすぎる場合は、結合による重複、明細粒度、キー数値の集計方法、計算式を確認します。

結果の表示項目や結合されたデータが想定と異なる場合は、CompositeProviderの項目マッピングを確認します。データ投入から変換までの流れを追う必要がある場合は、SAP BW/4HANA変換の確認手順を使って、変換、ルーチン、エラー処理を順に確認します。

よくある問題を切り分ける

クエリにデータが表示されない

対象プロバイダーにデータがあるか、要求が正常終了しているか、期間条件がデータの有効期間と一致しているかを確認します。次に、変数の初期値、固定フィルター、権限による制限を確認します。特性を追加した後に空になる場合は、その特性の値割り当てや結合条件を調べます。

数値が重複する

CompositeProviderの結合による多重化、ADSOの明細粒度、重複レコード、キー数値の集計方法を確認します。単一の明細を想定している項目が複数のデータ行に分かれている場合、クエリの集計だけでは重複を解消できません。データモデル側の粒度とクエリ側の粒度を合わせます。

テキストや階層が表示されない

特性のテキスト設定、マスターデータの有無、言語、キー日付、階層の有効期間を確認します。特性がInfoObjectに正しく割り当てられていることも確認してください。

実行時間が長い

最初の表示で取得する項目数とデータ範囲を減らし、不要な自由特性や高カーディナリティの項目を整理します。複雑な計算式や制限値を個別に無効化して、負荷の高い定義を切り分けます。基盤側のデータ量や変換処理も確認し、クエリだけに原因を限定しないことが重要です。

運用に引き継ぐ前のチェックリスト

  • クエリ名と説明が用途を表している
  • 使用するInfoProviderとデータ粒度が記録されている
  • 行、列、自由特性の役割が整理されている
  • 変数の初期値と入力条件が確認されている
  • 通貨、単位、期間、符号が検証されている
  • 計算キー数値と制限値の前提が説明されている
  • 権限のある利用者とない利用者で結果を確認している
  • 少量データと通常範囲の両方で実行している
  • データ更新後に再実行して結果を照合している
  • 変更内容と検証結果を記録している

クエリは、データモデル、変数、権限、更新処理の影響を受けます。定義を変更したときは、変更箇所だけでなく、代表的な利用者シナリオと主要な集計値を再確認してください。小さなクエリから始め、データの粒度と利用者の分析操作を確認しながら拡張すると、保守しやすい設計になります。

ブログ一覧へ戻る