2012-10-24 8 views
0

Order Data Rule (변환 내부 탭)와, I는 OSM 7.2.0.3을 사용하고 있는데, I는 Order Recognition Rule 가진 카트리지가 I이 XQuery를 코드있는 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 

나는 웹 서비스를 통해 XML을 제출하여 OSM을 실행합니다.

답장을 보내 주셔서 감사합니다.

답변

1

ed3 XML은 실제로는 중괄호 대신 괄호 안에 있어야합니다. 또한 중괄호를 포장하는 대신 먼저 반환 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>