Текущее время: Ср, май 22 2019, 03:43

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


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


ВНИМАНИЕ!

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



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

Зарегистрирован:
Пт, апр 06 2012, 11:00
Сообщения: 55
Коллеги, и снова здравствуйте. Очень мало работал с трансформациями и наткнулся на проблему. Есть 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, 01:45 
Почетный гуру
Почетный гуру
Аватара пользователя

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

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


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

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

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

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


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

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

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


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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