SAPфорум.RU
https://sapboard.ru/forum/

Content type application/x-www-form-urlencoded
https://sapboard.ru/forum/viewtopic.php?f=70&t=91976
Страница 1 из 1

Автор:  trawinka [ Чт, дек 10 2015, 07:38 ]
Заголовок сообщения:  Content type application/x-www-form-urlencoded

Подскажите, какой использовать адаптер для следующей интеграции: WebService - PI - IS-U. WebService обращается к PI по HTTPS с content-type application/x-www-form-urlencoded. Не могу понять, как поменять стандартный Content Type: text/xml на нужный.

Автор:  Chaser009 [ Чт, дек 10 2015, 10:58 ]
Заголовок сообщения:  Re: Content type application/x-www-form-urlencoded

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

Сам не сталкивался, но почитайте здесь:

https://scn.sap.com/thread/1435581

Если версия PI у вас 7.3, то HTTP_AAE Вам в помощь:

http://scn.sap.com/docs/DOC-44764

Автор:  trawinka [ Чт, дек 10 2015, 12:18 ]
Заголовок сообщения:  Re: Content type application/x-www-form-urlencoded

Версия SAP PI 7.4. Может есть у кого-нибудь ссылки на описание подобных сценариев? Не совсем понятно, какие при такой интеграции использовать типы данных, как будет работать меппинг (для преобразования параметров входящего запроса в xml-сообщение для target системы).

Автор:  Chaser009 [ Чт, дек 10 2015, 12:41 ]
Заголовок сообщения:  Re: Content type application/x-www-form-urlencoded

Из описания http_aae:

Form Submit Request
This is an HTTP POST request and the content type is “application/x-wwwform-urlencoded”. You use this scenario to select the PI main message
payload from one of the parameters of the form submit request.

Если я правильно понял, ставите галку в настройках для данного типа (Set Form в вашем случае), потом указываете, из какого параметра пэйлоад выхватывать.
Его структуру можно в мониторе глянуть, ну или еще где.

Надо пробовать, я, повторюсь, сам не сталкивался. Может, ответит кто-нибудь, кто такую интеграцию реализовывал.

Автор:  chizz [ Чт, дек 10 2015, 14:15 ]
Заголовок сообщения:  Re: Content type application/x-www-form-urlencoded

На scn не нашел примеров. Значит одно из двух. Либо никто не знает, либо это настолько просто, что и писать не о чем. Скорее всего второй вариант)

Как уже написал chaser

Form Submit Request
This is an HTTP POST request and the content type is “application/x-wwwform-urlencoded”. You use this scenario to select the PI main message
payload from one of the parameters of the form submit request.

остальное как обычно. после этого вы должны получить на вход нормальный xml, с которым можно работать как обычно.

Автор:  trawinka [ Чт, дек 10 2015, 15:18 ]
Заголовок сообщения:  Re: Content type application/x-www-form-urlencoded

"На scn не нашел примеров. Значит одно из двух. Либо никто не знает, либо это настолько просто, что и писать не о чем. Скорее всего второй вариант) "

Я также подумала: либо нет такой возможности, либо все знают как это сделать, поэтому и обратилась за подсказкой))

"Если я правильно понял, ставите галку в настройках для данного типа (Set Form в вашем случае), потом указываете, из какого параметра пэйлоад выхватывать."

Спасибо за объяснение, это был бы выход, но WebService не может передать в одном параметре весь пэйлоад, он разбивает пэйлоад на части "параметр=значение".
И даже если в этом случае можно было бы с помощью URLParametres и JavaMapping обработать запрос, то я также не нашла примера работы HTTP_AAE только с параметрами, без xml с payload. Может кто-то уже сталкивался с этим?

Автор:  chizz [ Чт, дек 10 2015, 16:27 ]
Заголовок сообщения:  Re: Content type application/x-www-form-urlencoded

А у вас есть пример сообщения c application/x-www-form-urlencoded, который вам нужно загрузить?
Потренируемся.

Автор:  Chaser009 [ Чт, дек 10 2015, 17:24 ]
Заголовок сообщения:  Re: Content type application/x-www-form-urlencoded

Есть нехорошее ощущение, что как бы тут не пришлось модуль для адаптера рисовать.

Автор:  Chaser009 [ Пт, дек 11 2015, 04:05 ]
Заголовок сообщения:  Re: Content type application/x-www-form-urlencoded

Посмотрите в сторону localejbs/AF_Modules/MessageTransformBean.
Может, с его помощью можно сконвертировать в нужный тип?

Из другого примера, но сам вариант:

"Hi,
yes there is an adapter module available to do this with SOAP adapter

localejbs/AF_Modules/MessageTransformBean>Local Enterprise Bean-
-
>XML2Plain

Here you have to use below parameters for Module configuration

Transform.Class = com.sap.aii.messaging.adapter.Conversion
Transform.ContentType = Application/x-www-form-urlencoded

xml.<StructureName>.fieldSeparator
xml.<StructureName>.endSeparator
xml.addHeaderLine = 0(No) or 1(yes)
xml.conversionType = StructXML2Plain
xml.recordsetStructure = <Structure Name1,name2,..>

let me know if you need anymore help on this.
I have successfully implied it in one of the scenario."

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/