対話サービスにおけるEQLリクエスト

対話Webサービスで行ったリクエストには、EQLの文を入れることができます。

対話サービスのEQLConfig型を使用すると、EQL文を使用する問合せを作成できます。

次のようなEQL文があるとします。
RETURN SalesTransactions AS SELECT SUM(FactSales_SalesAmount)
WHERE (DimDate_FiscalYear=2008) AS Sales2008,
SUM(FactSales_SalesAmount)
WHERE (DimDate_FiscalYear=2007) AS Sales2007,
((Sales2008-Sales2007)/Sales2007 * 100) AS pctChange,
COUNTDISTINCT(FactSales_SalesOrderNumber)
AS TransactionCount
GROUP
これをOracle Endeca Serverに送信して処理するには、次の例に示すように、EQLConfig要約型を使用し、EQLQueryString要素の中に文を入れます。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:ns="http://www.endeca.com/MDEX/conversation/3/0"
  xmlns:typ="http://www.endeca.com/MDEX/lql_parser/types">
<soapenv:Header/>
<soapenv:Body>
 <ns:Request>
 <ns:Language>en</ns:Language>
  <ns:State/>
   <ns:EQLConfig Id="EQLRequest"
     <ns:EQLQueryString>
      RETURN SalesTransactions AS SELECT SUM(FactSales_SalesAmount)
      WHERE (DimDate_FiscalYear=2008) AS Sales2008,
      SUM(FactSales_SalesAmount) WHERE (DimDate_FiscalYear=2007) AS Sales2007,
      ((Sales2008-Sales2007)/Sales2007 * 100) AS pctChange,
      countDistinct(FactSales_SalesOrderNumber)
      AS TransactionCount 
      GROUP
     </ns:EQLQueryString>
    </ns:EQLConfig>
   </ns:Request>
  </soapenv:Body>
</soapenv:Envelope>

EQLQueryString要素の内容は、1つの有効なEQL文であることが必要です。

対話Webサービスから返された、次の省略されたレスポンスには、EQL文の計算結果が入っています。
<cs:EQL Id="EQLRequest">
 <cs:ResultRecords NumRecords="1" Name="SalesTransactions">
  <cs:DimensionHierarchy/>
   <cs:AttributeMetadata name="Sales2007" type="mdex:double"/>
   <cs:AttributeMetadata name="Sales2008" type="mdex:double"/>
   <cs:AttributeMetadata name="TransactionCount" type="mdex:long"/>
   <cs:AttributeMetadata name="pctChange" type="mdex:double"/>
      <cs:Record>
        <Sales2007 type="mdex:double">2.79216705182E7</Sales2007>
        <Sales2008 type="mdex:double">3.62404846965997E7</Sales2008>
        <TransactionCount type="mdex:long">3796</TransactionCount>
        <pctChange type="mdex:double">29.793397114178</pctChange>
     </cs:Record>
   </cs:ResultRecords>
 </cs:ContentElement>
注意: この例に示しているのは、EQL文を対話Webサービスのリクエストで使用する方法の1つにすぎません。一般的に、リクエストにはナビゲーション・ステートを定義するState要素やOperator要素も含まれます。実際のEQL文では、FROM句を使用してこのナビゲーション・ステートから選択できます。

解析エラー・メッセージの言語ID

Request複合型には、省略可能なLanguage要素があります。これは、EQL解析で発生したエラー・メッセージの言語を設定するものです。サポートされる言語および対応する言語IDは次のとおりです。
  • 中国語(簡体字): zh_CN
  • 中国語(繁体字): zh_TW
  • 英語: en
  • フランス語: fr
  • ドイツ語: de
  • イタリア語: it
  • 日本語: ja
  • 韓国語: ko
  • ポルトガル語: pt
  • スペイン語: es

言語IDが指定されていない場合は、en(英語)がデフォルトになります。

前述のEQLQueryStringの例では、リクエストのどの部分でEQL解析エラー・メッセージのためのLanguage要素を指定するかを示しています。