SAPфорум.RU https://www.sapboard.ru/forum/ |
|
Трансформация из XML во внутреннюю таблицу https://www.sapboard.ru/forum/viewtopic.php?f=13&t=97440 |
Страница 1 из 1 |
Автор: | Copperhead [ Вт, мар 12 2019, 10:57 ] |
Заголовок сообщения: | Трансформация из XML во внутреннюю таблицу |
Коллеги, и снова здравствуйте. Очень мало работал с трансформациями и наткнулся на проблему. Есть 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, которое является табличным типом, с полями, аналогичными указанным в трансформации. И у меня ОЧЕНЬ БОЛЬШИЕ подозрения, что я трансформацию неправильно написал. Можете подсказать как считать вложенную таблицу из вложенной таблицы? |
Автор: | Удав [ Ср, мар 13 2019, 00:45 ] |
Заголовок сообщения: | Re: Трансформация из XML во внутреннюю таблицу |
Как у вас объявлен целевой тип данных? |
Автор: | Copperhead [ Ср, мар 13 2019, 08:22 ] |
Заголовок сообщения: | Re: Трансформация из XML во внутреннюю таблицу |
Через табличные типы словаря. Единственное, я вот думаю может не надо указывать элементы данных типа WERKS_D И прочие и сделать все поля через CHAR а потом преобразовывать? Я тут что ещё заметил: Во первых заменил строку <tt:loop name="items" ref="orders.ITEMS"> на <tt:loop name="items" ref="$ref.ITEMS"> теперь ошибка другая. Пишет, что ожидается завершение элемента LineItem. Файл проверил. Сейчас ещё раз посмотрю. |
Автор: | Copperhead [ Ср, мар 13 2019, 08:46 ] |
Заголовок сообщения: | Re: Трансформация из XML во внутреннюю таблицу |
Всё, вопрос закрыт. Во первых <tt:loop name="items" ref="orders.ITEMS"> - тут перед orders не зватало значка $. Во вторых - слово "константа" перекочевало из ТЗ. В третьих была таки ошибка в файле, которую замыленным глазом не сразу заметил - наши WEB разработчики слегка накосячили. Всем спасибо. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |