Коллеги, и снова здравствуйте. Очень мало работал с трансформациями и наткнулся на проблему. Есть XML с двойной вложенностью тегов. Я написал трансформацию. Вот она:
Code:
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="DOCUMENTS"/>
<tt:template>
<Transmission>
<tt:loop name="line" ref=".DOCUMENTS">
<TransmissionHeader>
<OrderCategory><tt:value ref="$ref.ORDERCATEGORY"/></OrderCategory>
<DATE><tt:value ref="$ref.DATE"/></DATE>
<TIME><tt:value ref="$ref.TIME"/></TIME>
<FileName> <tt:value ref="$ref.FILENAME"/> </FileName>
<tt:loop name="orders" ref="$line.ORDERS">
<SalesOrderHeader>
<BSTKD> <tt:value ref="$ref.BSTKD"/> </BSTKD>
<AUART> <tt:value ref="$ref.AUART"/> </AUART>
<KUNNR> <tt:value ref="$ref.KUNNR"/> </KUNNR>
<VKORG> <tt:value ref="$ref.VKORG"/> </VKORG>
<VTWEG> <tt:value ref="$ref.VTWEG"/> </VTWEG>
<SPART> <tt:value ref="$ref.SPART"/> </SPART>
<tt:loop name="items" ref="orders.ITEMS">
<LineItem>
<LineItemNumber><tt:value ref="$ref.POSNR"/></LineItemNumber>
<MATNR><tt:value ref="$ref.MATNR"/></MATNR>
<KWMENG><tt:value ref="$ref.KWMENG"/></KWMENG>
<NETPR><tt:value ref="$ref.NETPR"/></NETPR>
<WERKS><tt:value ref="$ref.WERKS"/></WERKS>
<LGORT><tt:value ref="$ref.LGORT"/></LGORT> константа
</LineItem>
</tt:loop>
</SalesOrderHeader>
</tt:loop>
</TransmissionHeader>
</tt:loop>
</Transmission>
</tt:template>
</tt:transform>
Проблема в том, что не считываются позиции заказа. Пишет ошибку:
Цитата:
Ошибка доступа к ссылочному узлу 'ORDERS.ITEMS'. Ссылочный узел не определен или не имеет необходимого типа.
При этом в структуре ORDERS есть поле ITEMS, которое является табличным типом, с полями, аналогичными указанным в трансформации. И у меня
ОЧЕНЬ БОЛЬШИЕ подозрения, что я трансформацию неправильно написал. Можете подсказать как считать вложенную таблицу из вложенной таблицы?