0

JavaScript を介して XML/A アクセスを提供するライブラリを維持しています: https://github.com/rpbouman/xmla4js

ほとんどの場合問題なく動作しますが、エラー応答の処理を改善したいと考えています。XML/A 仕様を正確に理解している限り、エラー応答は次の形式を取ります。

<SOAP-ENV:Envelope>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
  <faultcode>...</faultcode>
  <faultstring>...</faultstring>
  <faultactor>...</faultactor>
  <detail>
     ...
  </detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

ただし、少なくとも Mondrian (私が最もよく知っている XML/A プロバイダー) の場合、この<detail>要素には非常に貴重な情報が含まれていることがよくあります。たとえば、general<faultcode>要素には「datasource not found」などの一般的な内容が含まれる場合がありますが、<detail>要素には次のような内容が含まれる場合があります。

    <XA:error xmlns:XA="http://mondrian.sourceforge.net">
      <code>00HSBC01</code>
      <desc>The Mondrian XML: MondrianOneToOneUserRoleListMapper.ERROR_001_ - Access is denied because the roles of this user don&#39;t correspond to any present in the Mondrian schema requested.</desc>
    </XA:error>

これは、より具体的な状態を示しています。

私の質問は、他の XML/A プロバイダーのエラー応答に、API を改良してライブラリのユーザーにより良いエラー メッセージを提供するために使用できる何らかのパターンがあるかどうかです。パターンについては知らなくても、たまたまアクセスできる XML/A プロバイダーのサンプルしか提供できない場合は、それも大歓迎です。ありがとうございました!

4

1 に答える 1

0

XMLA プロトコルの Microsoft 仕様は、http: //msdn.microsoft.com/en-us/library/ee320606.aspx (700 ページ以上) からダウンロードできます。

一般に、エラーには次の 2 種類があります。

  • リクエストが実行されないようにするか、サーバーが有用なもの (構文エラーなど) を返さないようにするグローバルなもの。
  • たとえば、一般的な結果構造が返される MDX SELECT 要求への応答の単一セル内。この場合、結果の代わりに、たとえば 1 つまたは複数のセルでエラー オブジェクトが返されることがあります。例としては、計算されるメンバーの定義における不明な要素への参照など、サーバーがこの特定のセル値を計算することを妨げるエラーがあります。
于 2014-02-19T17:25:57.507 に答える