キューブ名と KPI 名でのスラッシュの使用
キューブなどのアイテムの論理名では、スラッシュ (/) が比較的よく使用されます。スラッシュ文字は、フォルダ名と短いアイテム名を区切るための記号であるからです。例えば、キューブの論理名として RelatedCubes/Patients が考えられます。
URL パラメータ (および要求の本文) では、これらの論理名を変更せずに直接使用できます。該当する Business Intelligence REST サービスでは、スラッシュが含まれた論理名が考慮に入れられます。ただし、ロジックでは名前付け規約 (使用する予定の REST サービスに応じて異なります) に従うことが要求されます。具体的には、別の論理名で使用されているフォルダ名と同じ論理名を持つアイテムは避けてください。例えば、mycubes/test/test1 という名前のアイテムがある場合は、mycubes/test という名前のアイテムを避ける必要があります。
この制約の理由は、論理名の後ろに別の引数を使用している REST サービスを使用する際に、その名前の最初の部分が既存のアイテム名と一致する場合は、その名前の一部は別の引数として解釈されるからです。例えば、次の REST 呼び出しを考えてみてください。
http://localhost:52773/api/deepsee/v1/Info/FilterMembers/:mycubename/:filterspec
ここで、mycubename はキューブの論理名であり、filterspec はそのキューブによって提供されるフィルタの仕様です。次に、mycubes/test/test1 をキューブ名として指定した次の REST 呼び出しを考えてみてください。
http://localhost:52773/api/deepsee/v1/Info/FilterMembers/:mycubes/test/test1/:filterspec
スラッシュ文字を解釈するために、システムは、最初に mycubes という名前のキューブを探してから、mycubes/test という名前のキューブを探すというように、順番にキューブを探していきます。システムがこの見かけ上の名前に一致する最初のアイテムを見つけると、REST 呼び出しではそのアイテムが使用され、文字列の残り部分は次の引数として解釈されます。
応答オブジェクトに関する注意事項
ほとんどの REST 呼び出しについて、応答オブジェクトには Info プロパティが含まれています。このプロパティには要求と応答に関する情報が含まれています。このオブジェクトには、次のいずれかに該当する Error プロパティが含まれています。
エラーが発生していない場合は、応答オブジェクトには、要求された値が格納されたオブジェクトである Result プロパティも含まれています。
一般に、クライアント・コードではまず Info.Error プロパティを確認してから、処理の進め方を決定する必要があります。
例えば、以下のような応答オブジェクトが考えられます (読みやすいように空白を追加しています)。
{"Info":
{"Error":
{"ErrorCode":"5001","ErrorMessage":"ERROR #5001: Cannot find Subject Area: 'SampleCube'"}
}
}
対照的に、エラーが発生していない場合は、Info.Error プロパティは NULL であり、Result には要求した結果が含まれています。次に例を示します。
{"Info":
{"Error":"",
"BaseCube":"DemoMDX",
"SkipCalculated":0},
"Result":
{"Measures":
[
{"name":"%COUNT","caption":"%COUNT","type":"integer","hidden":0,"factName":""},
{"name":"Age","caption":"Age","type":"integer","hidden":0,"factName":"MxAge"}
...]
}
}