Текущее время: Пн, сен 21 2026, 18:58

Часовой пояс: 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 часа


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

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


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

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