Текущее время: Вт, апр 16 2024, 17:38

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




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Передача namespace во внешнюю систему
СообщениеДобавлено: Ср, ноя 13 2013, 08:44 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, ноя 22 2012, 10:25
Сообщения: 322
Приветствую, коллеги!

делаю простейшую интеграцию. Из ERP приходит IDOC , я его передаю на SOAP интерфейс внешней системы. структура не меняется. То есть в ESB просто импортирован IDOC в SCV и в SAP BASIS. Далее в IB есть настройки на передачу одного в другое. так вот, при передаче нужен неймспейс. Что-то в приемной системе на него завязано. как это сделать, чтобы не городить тип данных и мапинги?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача namespace во внешнюю систему
СообщениеДобавлено: Ср, ноя 27 2013, 16:08 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, ноя 22 2012, 10:25
Сообщения: 322
Короче, я выдал WDSL с нужного IDOC программеру, он сваял себе итерфейс, который будет принимать сообщения (со всеми неймспейсами и прочими мулечками, какие ему надобны). Потом взял у него описание (опять же WSDL) и импортировал как External definition и создал системный интерфейс и мапинги 1:1. Получилось передать все, что нужно во внешнюю систему.
Но меня терзают смутные чувства, что я извращенец.

Как это можно было сделать без плясок с импортом нужной структуры?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача namespace во внешнюю систему
СообщениеДобавлено: Чт, ноя 28 2013, 15:56 
Специалист
Специалист

Зарегистрирован:
Пт, авг 24 2012, 11:48
Сообщения: 200
Цитата:
Как это можно было сделать без плясок с импортом нужной структуры?


Импорт и экспорт WSDL/XSD позволяет удостовериться, что структуры сообщений идентичны. То, что вы так сделали - это хорошо. Если маппинг тупо 1 к 1, то его как раз можно не делать, вы ведь изначально без маппингов хотели сделать процесс.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача namespace во внешнюю систему
СообщениеДобавлено: Чт, ноя 28 2013, 16:18 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, ноя 22 2012, 10:25
Сообщения: 322
работало без мапингов, но в результирующем документе не было указания на неймспейс, а это критично для принимающей стороны


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача namespace во внешнюю систему
СообщениеДобавлено: Чт, ноя 28 2013, 16:38 
Специалист
Специалист

Зарегистрирован:
Пт, авг 24 2012, 11:48
Сообщения: 200
Я думал, что вы во втором сообщении вылечили эту проблему с неймспейсом посредством экспорта/импорта :) Недопонял.

А так да, с namespace знакомая проблема. У меня было дело то ли сторонняя система наш Namespace кушать не хотела, то ли свой требовала. Я обошелся тоже с маппингом. С помощью XSLT тупо добавил сторонний неймспейс. Так что считаю в вашем случае нормальный вариант.

Есть правда в message type редакторе поле XML Namespace, я тогда не попробовал с ним поиграться, а стоило бы.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача namespace во внешнюю систему
СообщениеДобавлено: Чт, ноя 28 2013, 17:24 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Сб, фев 25 2012, 02:52
Сообщения: 141
Откуда: Москва
Пол: Мужской
Чисто тртчски :) можно на выходе модулями попробовать:
DynamicConfigurationBean
XMLAnonymizerBean

Первым добавить нужный namespace в message header, вторым - убрать всё лишнее.

_________________
Сажаем самолеты по телефону. :)
SAP - фрилансер.
sap.pitroff.ru


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача namespace во внешнюю систему
СообщениеДобавлено: Пт, ноя 29 2013, 08:32 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, ноя 22 2012, 10:25
Сообщения: 322
Shvetz написал(а):
Я думал, что вы во втором сообщении вылечили эту проблему с неймспейсом посредством экспорта/импорта

Вылечил путем импорта именно той структуры, что нужна на принимающей стороне, но делать так для всех последующих типов сообщений, если вдруг решат еще что-то слать - не есть правильно. Буду попробовать модулями вставить NS


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Передача namespace во внешнюю систему
СообщениеДобавлено: Пт, ноя 29 2013, 18:21 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, окт 21 2006, 20:34
Сообщения: 280
pitroff написал:
Чисто тртчски :) можно на выходе модулями попробовать:
DynamicConfigurationBean
XMLAnonymizerBean

Первым добавить нужный namespace в message header, вторым - убрать всё лишнее.

я XSLT добавил а XMLAnonymizerBean убрал префикс неймспейса - все работает. Если получилось через импорт/экспорт - то скорее всего вариант с полем неймспейса в message type должен прокатить - только проблема если один и тот же тип будет использоваться в разных сценариях - в тех где этот внешний неймспейс не нужен.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача namespace во внешнюю систему
СообщениеДобавлено: Пт, ноя 29 2013, 18:47 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Сб, фев 25 2012, 02:52
Сообщения: 141
Откуда: Москва
Пол: Мужской
Цитата:
я XSLT добавил а XMLAnonymizerBean убрал префикс неймспейса - все работает. Если получилось через импорт/экспорт - то скорее всего вариант с полем неймспейса в message type должен прокатить - только проблема если один и тот же тип будет использоваться в разных сценариях - в тех где этот внешний неймспейс не нужен.


Вопрос в том, как с минимальными затратами без обработки тела сообщения поменять namespace.
XSLT, mapping - это уже лишнее время, модули быстрее работают, имхо.

2doleynikov - напишите, плз, по итогам, получилось?

_________________
Сажаем самолеты по телефону. :)
SAP - фрилансер.
sap.pitroff.ru


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача namespace во внешнюю систему
СообщениеДобавлено: Пт, ноя 29 2013, 19:42 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, окт 21 2006, 20:34
Сообщения: 280
Тут можно поспорить. Тот модуль адаптера через который добавляется неймспейс использует XSLT трансформацию - а путь к ней указывается в параметрах модуля. И вообще как вы добавите неймспейс в пейлоад без обработки этого пейлоада. Так что по производительности выигрыша не будет, вопрос где это нужно - на уровне меппинга или адаптера.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача namespace во внешнюю систему
СообщениеДобавлено: Пт, ноя 29 2013, 20:26 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Сб, фев 25 2012, 02:52
Сообщения: 141
Откуда: Москва
Пол: Мужской
А где в параметрах DynamicConfigurationBean путь к XSLT? :shock: В документации нет ни слова про это, либо я невнимательно читал.

Namespace, насколько я понял из изначального вопроса, нужен в message header. XSLT загружает сообщение целиком в память, затем обрабатывает.
Как модуль в параметры лезет - это вопрос.

Тут не спорить, тут проверять-мерить надо.

_________________
Сажаем самолеты по телефону. :)
SAP - фрилансер.
sap.pitroff.ru


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача namespace во внешнюю систему
СообщениеДобавлено: Пт, ноя 29 2013, 20:39 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, окт 21 2006, 20:34
Сообщения: 280
Видимо не про этот модуль - там другой есть


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Передача namespace во внешнюю систему
СообщениеДобавлено: Сб, ноя 30 2013, 01:33 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Сб, фев 25 2012, 02:52
Сообщения: 141
Откуда: Москва
Пол: Мужской
Виноват, DynamicConfigurationBean не про то - только что проверил.

Он может наполнять технический блок XI-SOAP конверта - <SAP:DynamicConfiguration> - разными параметрами, с ним потом другие модули и адаптеры могут работать.
В namespace итогового сообщения им не дотянуться. :(

_________________
Сажаем самолеты по телефону. :)
SAP - фрилансер.
sap.pitroff.ru


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

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


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

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


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

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