Power BI Desktop で SAP Business Warehouse コネクタを使用する
Power BI Desktop を使用して、SAP Business Warehouse (SAP BW) データにアクセスできます。 SAP BW コネクタの Implementation 2.0 は、バージョン 1.0 からパフォーマンスと機能が大幅に改善されています。
SAP のお客様が SAP BW システムに Power BI を接続することで得られる利点については、Power BI と SAP BW に関するホワイトペーパーを参照してください。 DirectQuery と SAP BW を使用する方法については、「DirectQuery と SAP Business Warehouse (BW)」を参照してください。
重要
SAP BW コネクタのバージョン 1.0 は非推奨です。 新しい接続は SAP BW コネクタの Implementation 2.0 を使用します。 近い将来、バージョン 1.0 のサポートはすべて、コネクタから削除されます。 この記事の情報を使用して、コネクタの Implementation 2.0 を使用するように既存のバージョン 1.0 レポートを更新します。
SAP BW コネクタを使用する
次の手順に従って、SAP BW コネクタをインストールしてデータに接続します。
前提条件
SAP Connector の Implementation 2.0 には、SAP .NET Connector 3.0 または 3.1 が必要です。 SAP から SAP .NET Connector 3.0もしくは 3.1 をダウンロードできます。 ダウンロードにアクセスするには、有効な S ユーザーのサインインが必要です。
.NET Framework コネクタには、32 ビット バージョンと 64 ビット バージョンがあります。 Power BI Desktop のインストール バージョンに合わせてバージョンを選択します。
インストール時に、 [Optional setup steps](省略可能な設定手順) で必ず [Install assemblies to GAC](アセンブリを GAC にインストールする) を選択します。
Note
SAP BW コネクタの最初のバージョンでは、NetWeaver DLL が必要でした。 現在のバージョンでは、NetWeaver DLL は必要ありません。
Power BI Desktop で SAP BW データに接続する
SAP BW コネクタを使用して SAP BW データに接続するには、次の手順に従います。
Power BI Desktop で、 [データの取得] を選択します。
[データの取得] 画面で [データベース] を選択してから、[SAP Business Warehouse Application サーバー] または [SAP Business Warehouse メッセージ サーバー] を選択します。
[接続] を選択します。
次の画面で、サーバー、システム、クライアントの情報、インポートまたは DirectQuery のどちらの接続方法を使用するかを入力します。 詳しい手順については、以下を参照してください。
- Power Query Desktop から SAP BW Application Server に接続する
- Power Query Desktop から SAP BW Message Server に接続する
Note
SAP BW コネクタを使用して、SAP BW Server キューブ (既定値) からデータをインポートするか、DirectQuery を使用してデータに接続することができます。 SAP BW コネクタを DirectQuery と一緒に使用する方法の詳細については、DirectQuery と SAP Business Warehouse (BW) に関するページを参照してください。
[詳細オプション] を選択し、言語コード、指定したサーバーに対して実行するカスタム MDX ステートメント などのオプションを選択することもできます。 詳細については、「詳細オプションを使用する」を参照してください。
[OK] を選択して、接続を確立します。
必要な認証データを指定し、[接続] を選択します。 認証の詳細については、「データ ソースを使用した認証」を参照してください。
カスタム MDX ステートメントを指定しなかった場合は、[ナビゲーター] 画面に、サーバーで使用可能なすべてのキューブのリストが表示されます。 使用可能なキューブから、ディメンションやメジャーなどの項目をドリルダウンして選択することができます。 Power BI には、Open Analysis Interfaces で公開されているクエリとキューブが表示されます。
サーバーから 1 つ以上の項目を選択すると、[ナビゲーター] に出力テーブルのプレビューが表示されます。
[ナビゲーター] ダイアログには次の表示オプションも表示されます。
- 選択された項目のみ。 既定では、 [ナビゲーター] にすべての項目が表示されます。 このオプションは、選択した項目の最終的なセットを確認するのに役立ちます。 または、プレビュー領域で列名を選択して、選択した項目を表示することもできます。
- [データ プレビューを有効にします] 。 この値が既定値で、データ プレビューが表示されます。 このオプションの選択を解除すると、プレビュー データが要求されなくなり、サーバーの呼び出し回数が減ります。
- [技術名] 。 SAP BW では、キューブ内のオブジェクトに対してユーザー定義の "技術名" がサポートされています。 キューブ所有者は、オブジェクトの物理名のみを公開するのではなく、キューブ オブジェクトのこれらのフレンドリ名を公開できます。
必要なすべてのオブジェクトを選択したら、次のいずれかのオプションを選択します。
- [読み込み] を選択すると、出力テーブルの行セット全体が Power BI Desktop データ モデルに読み込まれます。 レポート ビューが開きます。 データのビジュアル化を開始する、またはさらに変更するには、[データ] または [モデル] ビューを使用します。
- [データの変換] を選択すると、[Power Query エディター] が開いてデータが表示されます。 行セット全体を Power BI Desktop データ モデルに取り込む前に、追加のデータ変換とフィルター手順を指定できます。
SAP BW キューブのデータに加えて、Power BI Desktop の他のさまざまなデータ ソースのデータをインポートし、それらを 1 つのレポートに結合することもできます。 この機能により、SAP BW データ上でのレポート作成と分析について多くの興味深いシナリオが提示されます。
SAP BW の Implementation 2.0 の新しいオプション
このセクションでは、SAP BW コネクタの Implementation 2.0 の機能と機能強化の一部を示します。 詳細については、「実装の詳細」を参照してください。
[詳細オプション]
SAP BW 接続画面の [詳細オプション] で、次のオプションを設定できます。
[実行モード] を使用して、MDX インターフェイスがサーバー上でクエリを実行する方法を指定します。 次のオプションが有効です。
- BasXml
- BasXmlGzip
- DataStream
既定値は BasXmlGzip です。 このモードを使用すると、低遅延または大量のクエリのパフォーマンスを向上させることができます。
[バッチ サイズ] には、MDX ステートメントの実行時に一度に取得する最大行数を指定します。 数値を小さくすると、大規模なセマンティック モデルを取得するときに、サーバーへの呼び出し回数が多くなります。 値を大きくすると、パフォーマンスが向上する可能性がありますが、SAP BW サーバーでメモリの問題が発生する場合があります。 既定値は 50000 です。
[特性の構造を有効にします] を使用して、[ナビゲーター] の特性の構造の表示方法を変更します。 このオプションの既定値は false (オフ) です。 このオプションは、選択に使用できるオブジェクトのリストに影響し、ネイティブ クエリ モードではサポートされていません。
その他の機能強化
次の一覧は、Implementation 2.0 のその他の機能強化をまとめたものです。
- パフォーマンスが向上します。
- 数百万データ行を取得し、バッチ サイズ パラメーターによって微調整する機能。
- 実行モードを切り替える機能。
- 圧縮モードのサポート。特に、待ち時間の長い接続または大規模なセマンティック モデルに役立ちます。
Date
変数の検出が向上しました。Date
(ABAP 型DATS
) およびTime
(ABAP 型TIMS
) ディメンションは、テキスト値ではなく、日付と時間として公開されます。 詳細については、「SAP BW の型指定された日付のサポート」を参照してください。- 例外処理の向上。 BAPI の呼び出しで発生したエラーが表示されるようになりました。
BasXml
およびBasXmlGzip
モードでの列の折りたたみ。 たとえば、生成した MDX クエリで 40 列を取得するが、現在の選択で必要なのは 10 列だけの場合、この要求がサーバーに渡され、取得されるセマンティック モデルが小さくなります。
既存の Implementation 1.0 レポートを更新する
インポート モードでのみ Implementation 2.0 を使用するように既存のレポートを変更できます。
Power BI Desktop の既存のレポートから、リボンの [データの変換] を選択し、更新する SAP Business Warehouse クエリを選択します。
クエリを右クリックし、 [詳細エディター] を選びます。
[詳細エディター] で、
SapBusinessWarehouse.Cubes
の呼び出しを次のように変更します。次の例のように、オプション レコードがクエリに既に含まれるかどうかを確認します。
その場合は、
[Implementation 2.0]
オプションを追加し、ScaleMeasures
オプションは削除します。Note
この実装では、
ScaleMeasures
オプションは非推奨です。 スケーリングされていない値が、コネクタに常に表示されるようになりました。クエリにオプション レコードがまだ含まれていない場合は、追加します。 たとえば、次のエントリを変更します。
この行を次のように変更します。
Note
SAP BW コネクタの Implementation 2.0 は、バージョン 1 と互換性があるはずです。 ただし、SAP BW MDX 実行モードが異なるために相違がいくつかある可能性があります。 何らかの不一致を解決するには、実行モードを切り替えてみてください。
トラブルシューティング
このセクションでは、SAP BW コネクタに関するトラブルシューティングの状況と解決策をいくつか示します。 詳細については、「SAP Business Warehouse コネクタのトラブルシューティング」を参照してください。
SAP BW から返される数値データの形式が正しくない
この問題では、SAP BW から返される数値データが、コンマではなく、ピリオドです。 たとえば、1,000,000 は 1.000.000 と返されます。
SAP BW から返される 10 進データの小数点記号は、コンマまたはピリオドのいずれかがです。 SAP BW でどちらの小数点記号を使うかを指定するには、Power BI Desktop ドライバーで BAPI_USER_GET_DETAIL
を呼び出します。 この呼び出しから、DEFAULTS
という構造体が返され、その中の DCPFM
というフィールドに "10 進形式表記" が次のいずれかの値で格納されています。
' '
' ' (スペース) = 小数点はコンマ:N.NNN,NN
'X'
= 小数点はピリオド:N,NNN.NN
'Y'
= 小数点は N:NNN NNN,NN
この問題では、BAPI_USER_GET_DETAIL
の呼び出しが特定のユーザーで失敗します。そのユーザーは形式が正しくないデータを取得し、次のようなエラー メッセージを受け取ります。
You are not authorized to display users in group TI:
<item>
<TYPE>E</TYPE>
<ID>01</ID>
<NUMBER>512</NUMBER>
<MESSAGE>You are not authorized to display users in group TI</MESSAGE>
<LOG_NO/>
<LOG_MSG_NO>000000</LOG_MSG_NO>
<MESSAGE_V1>TI</MESSAGE_V1>
<MESSAGE_V2/>
<MESSAGE_V3/>
<MESSAGE_V4/>
<PARAMETER/>
<ROW>0</ROW>
<FIELD>BNAME</FIELD>
<SYSTEM>CLNTPW1400</SYSTEM>
</item>
このエラーを解決するには、SAP 管理者がこの Power BI SAP BW ユーザーに BAPI_USER_GET_DETAIL
の実行権限を付与する必要があります。 また、ユーザーのデータの値が正しい DCPFM
であること確認します。
SAP BEx クエリ用の接続が必要である
次の画像に示すように、[外部アクセス用のリリース] プロパティを有効にすると、Power BI Desktop で BEx クエリを実行できます。
ナビゲーターにデータ プレビューが表示されない
この問題では、[ナビゲーター] にデータ プレビューが表示されず、代わりに "オブジェクト参照がオブジェクト インスタンスに設定されていません" というエラー メッセージが表示されます。
SAP ユーザーは、メタデータを取得し、SAP BW のインフォプロバイダからデータを取得するために、次の特定の BAPI 関数モジュールにアクセスする必要があります。
- BAPI_MDPROVIDER_GET_CATALOGS
- BAPI_MDPROVIDER_GET_CUBES
- BAPI_MDPROVIDER_GET_DIMENSIONS
- BAPI_MDPROVIDER_GET_HIERARCHYS
- BAPI_MDPROVIDER_GET_LEVELS
- BAPI_MDPROVIDER_GET_MEASURES
- BAPI_MDPROVIDER_GET_MEMBERS
- BAPI_MDPROVIDER_GET_VARIABLES
- BAPI_IOBJ_GETDETAIL
この問題を解決するには、ユーザーが MDPROVIDER
モジュールと BAPI_IOBJ_GETDETAIL
にアクセスできることを確認します。
トレースを有効にする
これらの問題や同様の問題をさらにトラブルシューティングするには、トレースを有効にします。
- Power BI Desktop で、[ファイル]>[オプションと設定]>[オプション] の順に選択します。
- [オプション] で [診断] を選択し、[診断オプション] で [トレースを有効にする] を選択します。
- トレースがアクティブになっている間に SAP BW からデータを取得してみてください。トレース ファイルを調べると、より詳細な情報が得られます。
SAP BW 接続のサポート
次の表は、SAP BW の現在の Power BI サポートをまとめたものです。
Product | モード | 認証 | コネクタ | SNC ライブラリ | サポートされている |
---|---|---|---|---|---|
Power BI Desktop | 任意 | ユーザー/パスワード | アプリケーション サーバー | 該当なし | はい |
Power BI Desktop | 任意 | Windows | アプリケーション サーバー | sapcrypto + gsskrb5/gx64krb5 | はい |
Power BI Desktop | 任意 | 借用による Windows | アプリケーション サーバー | sapcrypto + gsskrb5/gx64krb5 | はい |
Power BI Desktop | 任意 | ユーザー/パスワード | メッセージ サーバー | 該当なし | はい |
Power BI Desktop | 任意 | Windows | メッセージ サーバー | sapcrypto + gsskrb5/gx64krb5 | はい |
Power BI Desktop | 任意 | 借用による Windows | メッセージ サーバー | sapcrypto + gsskrb5/gx64krb5 | はい |
Power BI Gateway | インポート | Power BI Desktop と同じ | |||
Power BI Gateway | DirectQuery | ユーザー/パスワード | アプリケーション サーバー | 該当なし | はい |
Power BI Gateway | DirectQuery | 借用による Windows (固定ユーザー、SSO なし) | アプリケーション サーバー | sapcrypto + gsskrb5/gx64krb5 | はい |
Power BI Gateway | DirectQuery | DirectQuery クエリ オプションには Kerberos 経由で SSO を使用する | アプリケーション サーバー | sapcrypto + gsskrb5/gx64krb5 | はい |
Power BI Gateway | DirectQuery | ユーザー/パスワード | メッセージ サーバー | 該当なし | はい |
Power BI Gateway | DirectQuery | 借用による Windows (固定ユーザー、SSO なし) | メッセージ サーバー | sapcrypto + gsskrb5/gx64krb5 | はい |
Power BI Gateway | DirectQuery | DirectQuery クエリ オプションには Kerberos 経由で SSO を使用する | メッセージ サーバー | gsskrb5/gx64krb5 | いいえ |
Power BI Gateway | DirectQuery | DirectQuery クエリ オプションには Kerberos 経由で SSO を使用する | メッセージ サーバー | sapcrypto | はい |