Текущее время: Вс, апр 30 2017, 09:12

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: асинхронно-синхронный маппинг (idoc->soap->proxy/mail)
СообщениеДобавлено: Ср, мар 23 2016, 14:04 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Вт, мар 29 2005, 20:54
Сообщения: 1364
Откуда: мАсква
есть ERP, генерирует IDOC, его отправляем во внешнюю систему, получаем синхронный ответ и транслируем его асинхронно в прокси в ерп. если в ответе есть определенное значение в поле, то вместо прокси ответ посылается в почту. реализовано все через модули в soap адаптере:
1) сервис интерфейс1 синхроный входящий, в нем реквест и респонс
2) сервис интерфейс2 асинхронный исходящий, в нем респонс.
3) сервис интерфейс3 асинхронный входящий, в нем респонс.
4) сервис интерфейс4 асинхронный, в нем шаблон письма

сделан следующий маппинг:
1) маппинг1 idoc->интерфейс1 реквест
2) маппинг2 интерфейс2->интерфейс3
3) маппинг3 интерфейс2->интерфейс4

создано ICO1, в котором на входе IDOC, ресивер внешняя система, в интерфейсе маппинг1, в outbound processing soap канал со следующими настройками
1 AF_Modules/RequestResponseBean Local Enterprise Bean RequestResponseBean
2 sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean Local Enterprise Bean soap
3 AF_Modules/ResponseOnewayBean Local Enterprise Bean ResponseOnewayBean module

RequestResponseBean passThrough true
ResponseOnewayBean module interface сервис интерфейс 2
ResponseOnewayBean module interfaceNamespace сервис интерфейс 2 наймспейс
ResponseOnewayBean module replaceInterface true

и ICO2 в котором на входе сервис интерфейс2, в ресивере по условиям либо ERP, либо почта, в интерфейсе маппинг2 или маппинг3, ну и соответсвенно вызовы каналов в ERP или почту.

все прекрасно работает, пока внешняя система вместо респонса не захочет послать Fault сообщение.. тогда в мониторинге входящее сообщение ICO1 падает в ошибку, а в логах у него написано http 500 ошибка и он не может определиться что делать с таким ответом.
3/21/2016 09:42:26.890 AM Error SOAP: Response message contains an errorXIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error
3/21/2016 09:42:26.890 AM Information SOAP: Continuing to response message 137a19da-ef30-11e5-9b7f-000012156852
3/21/2016 09:42:26.890 AM Information SOAP: Processing completed
3/21/2016 09:42:26.906 AM Error Exception caught by adapter framework: No sender agreement configured that matches the messages header fields (sender party: "", sender service: "внешняя система", interface: "интерфейс1", receiver party: "", receiver service: "ERP")
3/21/2016 09:42:26.906 AM Error MP: exception caught with cause com.sap.engine.interfaces.messaging.api.exception.ConfigException: No sender agreement configured that matches the messages header fields (sender party: "", sender service: "внешняя система", interface: "интерфейс1", receiver party: "", receiver service: "ERP")
3/21/2016 09:42:26.906 AM Error Transmitting the message to endpoint <local> using connection IDoc_AAE_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.ConfigException: No sender agreement configured that matches the messages header fields (sender party: "", sender service: "внешняя система", interface: "интерфейс1", receiver party: "", receiver service: "ERP")

если через wsnavigator сделать вызов с теми же параметрами, то получаем в ответ структуру Fault
вопрос: как-куда добавить обработку Fault, чтобы оно слало на почту?
наверное несколько сумбурно получилось.

_________________
Не откладывай работу на субботу, а секс на старость

система без базисника должна лежать! (с) Skif


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: асинхронно-синхронный маппинг (idoc->soap->proxy/mail)
СообщениеДобавлено: Ср, мар 23 2016, 18:16 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пн, фев 21 2005, 01:50
Сообщения: 10121
Откуда: г.Мышуйск
Пол: Женский
ОН НАСТОЯЩИЙ!!!

_________________
Пушномолочная свинья-несушка (тест)
Once cached cannot be uncached


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: асинхронно-синхронный маппинг (idoc->soap->proxy/mail)
СообщениеДобавлено: Ср, мар 23 2016, 18:34 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Вт, мар 29 2005, 20:54
Сообщения: 1364
Откуда: мАсква
Я думал ответил кто, а тут лв говорит, что привидение увидела

_________________
Не откладывай работу на субботу, а секс на старость

система без базисника должна лежать! (с) Skif


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: асинхронно-синхронный маппинг (idoc->soap->proxy/mail)
СообщениеДобавлено: Чт, мар 24 2016, 03:22 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 09:54
Сообщения: 317
Откуда: Владивосток, Россия
Пол: Мужской
Blood Angel писал(а):
вопрос: как-куда добавить обработку Fault, чтобы оно слало на почту?
наверное несколько сумбурно получилось.


Здравствуйте!

С ошибками SOAP - это отдельная песня. Было уже несколько тем по этому поводу.

В общем случае, fault, если это не Application Fault (который может быть описан в wsdl сервиса), генерирует System Error в PI.

Можно попытаться отключить SOAP Envelop в настройках адаптера, сгенерировать "обертку" самому через Java/XSLT, в структуре ответного сообщения описать как структуру ответа, так и структуру fault-сообщения, двумя сегментами. В адаптере выставить также признак, что не надо реагировать на ошибку. В таком случае, по идее, Вам назад в любом случае прилетит структура ответа, где в зависимости от того, был fault или нет, будет заполнена либо структура ответа, либо структура fault. А дальше уже в зависимости от результата бросаете его туда, куда Вам нужно.

P.S. Я в свое время на этот бардак глянул и сделал мост в ccBPM. Там этого гемороя нет. System Error (точнее, сам факт его возникновения) прекрасно ловится и дальше уже все разруливается. Правда, работает медленнее, ну и только для Dual Stack. Ну и минус в том, что сообщение исходное уже перезапустить не получится, в отличие от адаптерного моста, потому что исходное сообщение будет со статусом "Delivered".

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: асинхронно-синхронный маппинг (idoc->soap->proxy/mail)
СообщениеДобавлено: Чт, мар 24 2016, 14:03 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Вт, мар 29 2005, 20:54
Сообщения: 1364
Откуда: мАсква
это именно fault, который описан в wsdl, но он там просто описан как message. т.е. при обращении к внешней системе она может вернуть сообщение двух типов: респонс или фаулт. как их научиться отлавливать и корректно раскидывать. с одним типом проблем нет.

_________________
Не откладывай работу на субботу, а секс на старость

система без базисника должна лежать! (с) Skif


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: асинхронно-синхронный маппинг (idoc->soap->proxy/mail)  Тема решена
СообщениеДобавлено: Пт, мар 25 2016, 03:20 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 09:54
Сообщения: 317
Откуда: Владивосток, Россия
Пол: Мужской
Ну, может быть, в этом случае стоит поиграться с параметрами "interfaceOnFault", "replaceInterfaceOnFault" и "interfaceNamespaceOnFault". Ну и отдельный ICO для ошибочного ответа.

_________________
У меня два правила:
1. Не говорить всего, что знаю.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: асинхронно-синхронный маппинг (idoc->soap->proxy/mail)
СообщениеДобавлено: Пн, мар 28 2016, 13:47 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Вт, мар 29 2005, 20:54
Сообщения: 1364
Откуда: мАсква
Спасибо, помогло.

_________________
Не откладывай работу на субботу, а секс на старость

система без базисника должна лежать! (с) Skif


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

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


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

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


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

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