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

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Message Maping в IDOC. Множественное использование сегмента
СообщениеДобавлено: Пн, авг 16 2010, 12:51 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 16 2010, 09:50
Сообщения: 10
Добрый день! Нужна помощь!
Настраиваю Message Maping в IDOC тип.
Проблема: В IDOC описан сегмент (текстовые данные) с возможностью множественного использования - для языковых версий.
Не получается заполнить его 2ды. Т.е. мне нужно в выходном IDOC получить 2 сегмента одной структуры. Как это корректно сделать?
Пробую так: правый клик на сегменте - "Duplicate Subtree". Сегмент как бы дублируется. Вроде то что надо. НО! после заполнения при сохранении ругается:
The source structure, target structure, or a function library has been changed or could not be found in the Enterprise Services Repository. The mapping definition contains elements or attributes that do not exist in the changed structure, or functions that were changed in a function library. The relevant entries will be deleted.
Target structure has no such path: /ZMATRL01/IDOC/ZMATRLT[1]/SPRAS. Skipping mapping Node with path /ZMATRL01/IDOC/ZMATRLT[1]/SPRAS not found in source structure.

и продублированный сегмент исчезает.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Message Maping в IDOC. Множественное использование сегмента
СообщениеДобавлено: Пн, авг 16 2010, 16:08 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
Когда мне нужно было расширить IDOC своими полями по какой-то логике я использовал User-exit из ГФ XV50B.

Вам оно вряд ли подойдёт, но как решение может получиться.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Message Maping в IDOC. Множественное использование сегмента
СообщениеДобавлено: Ср, авг 18 2010, 07:54 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 16 2010, 09:50
Сообщения: 10
Вы меня не совсем поняли...
Проблема не в добавлении новых полей в IDOC.
В IDOCе описан сегмент подразумевающий множественное использование. Т.е. в рамках одного документа может быть несколько экземпляров данных этого сегмента. При маппировании получается только однократно заполнить сегмент данными из источника. Предполагаю, что должна быть возможность несколько раз заполнить сегмент (типа создать несколько инстанций) т.к. определение IDOCа это позволяет. Но как это сделать?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Message Maping в IDOC. Множественное использование сегмента
СообщениеДобавлено: Ср, авг 18 2010, 08:15 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 23 2004, 10:40
Сообщения: 459
Ответ на ваш вопрос зависит от типа сообщения, из которого нужно мапить в IDOC.
Все тексты в одном сообщении с повторяющейся структурой, или это несколько сообщений?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Message Maping в IDOC. Множественное использование сегмента
СообщениеДобавлено: Ср, авг 18 2010, 08:57 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 16 2010, 09:50
Сообщения: 10
На входе одно сообщение "плоской" структуры. нужно мапировать в один IDOC-документ.
В исходном документе есть несколько полей с описанием объекта на разных языках (RU, EN и т.д.) - языковые версии. Планировалось разложить эти описания в разные экземпляры спец сегмента. Не получается... Можно конечно исправить IDOC тип - сделать такую же плоскую структуру, благо IDOC свой. Но считаю это не совсем правильным + хочется разобраться.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Message Maping в IDOC. Множественное использование сегмента
СообщениеДобавлено: Ср, авг 18 2010, 10:47 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
cons написал(а):
На входе одно сообщение "плоской" структуры. нужно мапировать в один IDOC-документ.


Посмотрите XSD данного сообщения в message mapping, наверное occurs=0..1 а не 0..n

_________________
Telegram-chat: PO, CPI-PI, java, groovy


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Message Maping в IDOC. Множественное использование сегмента
СообщениеДобавлено: Ср, авг 18 2010, 11:14 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 16 2010, 09:50
Сообщения: 10
Входное сообщение(XML) - occurrences 1:1
Выходное сообщение(IDOC) - 1:1
- служебный сегмент EDI_DC40 - 1:1
- сегмент 1 (осн данные) - 1:1
- сегмент 2 (для текстов) - 1:99

соотношение сообщений 1:1 соблюдается. одному входному соответствует одно выходное. а в этом выходном, нужно несколько экземпляров сегмента 2, что не противоречит его описанию (1..99)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Message Maping в IDOC. Множественное использование сегмента
СообщениеДобавлено: Ср, авг 18 2010, 16:04 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 23 2004, 10:40
Сообщения: 459
В исходном сообщении языковые версии текстов это повторяющийся сегмент или тексты просто размазаны по сообщению?
Было бы полезно выложить сюда пример (кусок) исходного сообщения...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Message Maping в IDOC. Множественное использование сегмента  Тема решена
СообщениеДобавлено: Чт, авг 19 2010, 09:37 
Начинающий
Начинающий

Зарегистрирован:
Вт, мар 16 2010, 09:50
Сообщения: 10
В исходном сообщении тексты "размазаны по сообщению".
Удалось решить проблему!
Через Duplicate Subtree. Чтобы продублированный сегмент не удалялся и не было ошибки надо было для него прописать хоть какое-то правило маппирования (не для полей сегмента, а для самого node).
На решение натолкнул http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/4052
Всем, спасибо за участие!


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Message Maping в IDOC. Множественное использование сегмента
СообщениеДобавлено: Чт, авг 19 2010, 15:04 
Директор
Директор

Зарегистрирован:
Вт, июл 18 2006, 17:44
Сообщения: 1001
Откуда: что и все
Пол: Мужской
cons написал(а):
Чтобы продублированный сегмент не удалялся и не было ошибки надо было для него прописать хоть какое-то правило маппирования (не для полей сегмента, а для самого node).


Была мысль спросить про наличие условия создания самого сегмента, но подумал что наверное оно есть а дело в другом :) MM не уважаю, в XSLT/джаве проще писать (правда, неудобнее деплоить).

_________________
Telegram-chat: PO, CPI-PI, java, groovy


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

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


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

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


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

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