0

OSM7.2.0.3を使用していOrder Recognition Ruleて、Order Data Rule([変換]タブ内に)が付いたカートリッジがあります

ODRには、次のXQueryコードがあります。

declare namespace im="http://xxx";
declare namespace xs="http://www.w3.org/2001/XMLSchema";

declare variable $order := fn:root(.)/im:Order;

<_root>
  <Order>
  {
    for $moli in $order/MainOrderLineItem
      return {
        <OrderLineItem>
          {$moli/LineItemAttributeInfo/LineItemAttribute}
        </OrderLineItem>
        {
          for $oli in $moli/OrderLineItem
          return 
            <OrderLineItem>
              {$oli/LineItemAttributeInfo/LineItemAttribute}
            </OrderLineItem>
        }
      }
  }
  </Order>
</_root>

OSMにはコンパイルエラーはありませんが、実行時に次のようになります。

Invalid Order Specification Fault
Order data expression failed due to oracle.communications.ordermanagement.rule.XMLRuleException

Webサービスを介してXMLを送信してOSMを実行します。

返信ありがとうございます。

4

1 に答える 1

1

ed XMLは、return実際には中括弧ではなく括弧で囲む必要があります。また、最初に返されたOrderLineItem要素とFLWOR式の間には、中かっこで囲むのではなく、コンマが必要です。

declare namespace im="http://xxx";
declare namespace xs="http://www.w3.org/2001/XMLSchema";

declare variable $order := fn:root(.)/im:Order;

<_root>
  <Order>{
    for $moli in $order/MainOrderLineItem
    return (
      <OrderLineItem>
        {$moli/LineItemAttributeInfo/LineItemAttribute}
      </OrderLineItem>,
      for $oli in $moli/OrderLineItem
      return 
        <OrderLineItem>
          {$oli/LineItemAttributeInfo/LineItemAttribute}
        </OrderLineItem>
    )
  }</Order>
</_root>
于 2012-10-24T11:37:34.647 に答える