Текущее время: Чт, мар 28 2024, 21:03

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Трансформация из XML во внутреннюю таблицу
СообщениеДобавлено: Вт, мар 12 2019, 10:57 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, апр 06 2012, 10:00
Сообщения: 63
Коллеги, и снова здравствуйте. Очень мало работал с трансформациями и наткнулся на проблему. Есть 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, которое является табличным типом, с полями, аналогичными указанным в трансформации. И у меня ОЧЕНЬ БОЛЬШИЕ подозрения, что я трансформацию неправильно написал. Можете подсказать как считать вложенную таблицу из вложенной таблицы?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Трансформация из XML во внутреннюю таблицу
СообщениеДобавлено: Ср, мар 13 2019, 00:45 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3074
Откуда: Москва
Как у вас объявлен целевой тип данных?

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Трансформация из XML во внутреннюю таблицу
СообщениеДобавлено: Ср, мар 13 2019, 08:22 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, апр 06 2012, 10:00
Сообщения: 63
Через табличные типы словаря. Единственное, я вот думаю может не надо указывать элементы данных типа WERKS_D И прочие и сделать все поля через CHAR а потом преобразовывать?

Я тут что ещё заметил:

Во первых заменил строку <tt:loop name="items" ref="orders.ITEMS"> на <tt:loop name="items" ref="$ref.ITEMS"> теперь ошибка другая. Пишет, что ожидается завершение элемента LineItem. Файл проверил. Сейчас ещё раз посмотрю.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Трансформация из XML во внутреннюю таблицу
СообщениеДобавлено: Ср, мар 13 2019, 08:46 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, апр 06 2012, 10:00
Сообщения: 63
Всё, вопрос закрыт. Во первых <tt:loop name="items" ref="orders.ITEMS"> - тут перед orders не зватало значка $. Во вторых - слово "константа" перекочевало из ТЗ. В третьих была таки ошибка в файле, которую замыленным глазом не сразу заметил - наши WEB разработчики слегка накосячили.

Всем спасибо.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB