対話Webサービスで行ったリクエストには、EQLの文を入れることができます。
対話サービスのLQLConfig型を使用すると、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
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.endeca.com/MDEX/conversation/2/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:ContentElementConfig Id="LQLConfig" xsi:type="ns:LQLConfig" HandlerNamespace="http://www.endeca.com/MDEX/conversation/1/0" HandlerFunction="LQLHandler" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ns:LQLQueryString> RETURN statement 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:LQLQueryString> </ns:ContentElementConfig> </ns:Request> </soapenv:Body> </soapenv:Envelope>
LQLQueryString要素の内容は、1つの有効なEQL文であることが必要です。
LQLConfigの処理をサポートするHandlerFunctionはLQLHandlerです。
<cs:ContentElement xsi:type="cs:LQL" Id="LQLConfig" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <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>
言語IDが指定されていない場合は、en(英語)がデフォルトになります。
前述のLQLQueryStringの例では、リクエストのどの部分でEQL解析エラー・メッセージのためのLanguage要素を指定するかを示しています。