MDX問合せの実行

post

/essbase/rest/v1/applications/{application}/databases/{database}/mdx

MDX問合せを実行し、選択したフォーマット(JSON、HTML、ExcelまたはCSV)で結果を返します。

結果は、リクエストされた形式(デフォルトはJSON)のMDX出力セットです。出力セットには、メタデータ(ページ、列および行のタプルを含む)の後にデータ(行ごとに1つのタプル)が含まれます。

リクエスト

パス・パラメータ
問合せパラメータ
  • 結果フォーマット。

    デフォルト値: JSON
    指定可能な値: [ "XLSX", "CSV", "HTML", "JSON" ]
本体()

MDX問合せおよびプリファレンス。これは、保存済MDXレポート(キューブ・コンテキストに保存された名前付き問合せ)を実行するのではなく、MDX問合せを文字列として直接実行する場合に使用します。

ルート・スキーマ : MDXInput
型: object
ソースの表示
ネストされたスキーマ : NamedQueriesPreferences
型: object
ソースの表示
先頭に戻る

レスポンス

サポートされているメディア・タイプ

200 レスポンス

大部分はOK

これはストリーミングAPIであるため、ステータス200であっても失敗する可能性があります。レスポンスでerrorMessageタグを確認してエラーを特定してください。

本体()
ルート・スキーマ : InputStream
型: object

400 レスポンス

不正なリクエスト

必要なフォーマットでデータを取得できませんでした。

500 レスポンス

サーバーの内部エラーです。

先頭に戻る

次の例では、MDX問合せを文字列として実行する方法を示します。

cURLコマンドを含むスクリプト

この例では、cURLを使用して、Windowsシェル・スクリプトからREST APIにアクセスします。呼出し元ユーザーのIDおよびパスワードは変数であり、properties.bat内でその変数値が設定されています。

call properties.bat
curl -X POST "https://myserver.example.com:9001/essbase/rest/v1/applications/Sample/databases/Basic/mdx?format=JSON" -H Accept:application/octet-stream -H Content-type:application/json --data-binary "@./input_mdx.json" -o output_mdx.json -u %User%:%Password%

入力JSONデータ

前述のスクリプトは、Sample Basicで、input_mdx.jsonに格納されているMDX入力問合せを実行します。入力ファイルの内容は次のとおりです。

{
    "query" : "SELECT {([Year].generations(2).members)} ON COLUMNS",
    "preferences" : {
        "dataless" : false,
        "formatValues" : true,
        "memberIdentifierType": "NAME"
        }
}

この場合:

  • queryには、入力MDX文字列が含まれます。

  • preferencesには、出力セットに指定できるオプションが含まれます。次に例を示します。

    1. "dataless" : falseは、出力からのデータ値を省略しないことを意味します。
    2. "formatValues" : trueは、タイプがテキストまたは日付のセル、またはフォーマット文字列に関連付けられたセルのフォーマットされた値を返すことを意味します。デフォルトでは、この設定はオンになっています。
    3. "memberIdentifierType" : "NAME"は、別名ではなくメンバー名が出力に含まれる必要があることを意味します。

レスポンス本体の例

成功した場合、APIはMDX出力セットをリクエストされた形式(デフォルトはJSON)で返します。

出力セットには、次のフォームが含まれます(JSONの例):

{
	"metadata": {
		"page": [<tuple>],
		"column": [<tuple>],
		"row": [<tuple>]
	},
	"data": [["",<data_row_tuples>],
         ]
}

出力には、キー/値ペアが含まれ、キーはメタデータおよびデータであり、値はa) 別のMDXセットおよびb) データ・タプルです。

表 - JSONレスポンス・セット

キー 値の説明
metadata {メタデータ・セット}
data [データ・タプル[行タプル]]

前述で使用したcURLの例のoutput_mdx.jsonに、次の出力セットが書き込まれます。

{ "metadata" : {"page" : ["Measures","Product","Market","Scenario"],"column" : ["Year"],"row" : []},"data" : [["Qtr1","Qtr2","Qtr3","Qtr4"]] }

「次として実行」を使用する例

サービス管理者の場合、「次として実行」を使用すると、他のユーザーに偽装し、データ・アクセスを確認できます。これは、様々なユーザーに割り当てられたフィルタをテストする際に役立つことがあります。

これを実行するには、アプリケーションにプロビジョニングされるユーザー名を含むリクエスト・ヘッダーX-Essbase-LoginAsを追加します。

たとえば、次のスクリプトは、user3の権限ビューポイントを使用して、MDXレポートの実行結果をファイルに書き込みます。

call properties.bat
curl -X POST "https://myserver.example.com:9001/essbase/rest/v1/applications/Sample/databases/Basic/mdx?format=JSON" -H "Content-Type:application/json" -H 'X-Essbase-LoginAs: user3' --data-binary "@./input_mdx.json" -o output2_mdx.json -u %User%:%Password%
先頭に戻る