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

Ошибка при генерации прокси
https://sapboard.ru/forum/viewtopic.php?f=70&t=92510
Страница 1 из 1

Автор:  ceib [ Вт, мар 01 2016, 16:50 ]
Заголовок сообщения:  Ошибка при генерации прокси

Добрый день!

Создал входящий интерфейс для внешнего Web-сервиса (путем импорта WSDL этого сервиса). Далее сделал исходящий синхронный интерфейс со стороны ERP с одной операцией, которая полностью дублирует одну из операций первого интерфейса с теми же типами сообщений (типы сообщений описываются в WSDL, который был также импортирован в External Definitions). Также создан Operation Mapping и маппинги сообщений для запроса и ответа, которые просто все идентичные поля транслирует в те же самые поля (сообщения имеют одинаковую структуру). На примере мапинга ответа:

Изображение

Пытаюсь сгенерировать прокси:

Изображение


При генерации возникает ошибка "Часть сообщения относится к типу, не к элементу" (в английском варианте: "message part refers a type not an element"):

Изображение


Что не так? В каком месте ошибка?

Автор:  Chaser009 [ Ср, мар 02 2016, 03:42 ]
Заголовок сообщения:  Re: Ошибка при генерации прокси

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

Тут смотреть надо, разбираться. Скорее всего, мастер в ABAPе не понимает (или криво понимает) какой-то из типов данных, описанных в импортированном wsdl.

Я бы на вашем месте все-таки свои типы данных создал для исходящего сообщения. А в мэппинге бы уже в external перегнал.

Ну, собственно, вот:

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

аналогичная ситуация. В импортируемом wsdl'е есть ссылка на внешний xsd, которого нет в PI. Отсюда ошибка.

Или другая причина: http://help.sap.com/saphelp_nw70/helpda ... ontent.htm

The WSDL document in rpc-style format must also not use any soapenc:Array types; these are often used in SOAP code in documents with this format. soapenc:Array uses the tag <xsd:any>, which the Integration Builder editors or proxy generation either ignore or do not support.

P.S. Вопрос: зачем вам message mapping, если у вас одинаковые типы сообщений на обоих интерфейсах? :-)

Автор:  ceib [ Ср, мар 02 2016, 09:16 ]
Заголовок сообщения:  Re: Ошибка при генерации прокси

Chaser009 написал:

The WSDL document in rpc-style format must also not use any soapenc:Array types; these are often used in SOAP code in documents with this format. soapenc:Array uses the tag <xsd:any>, which the Integration Builder editors or proxy generation either ignore or do not support.

P.S. Вопрос: зачем вам message mapping, если у вас одинаковые типы сообщений на обоих интерфейсах? :-)




Это нужно просто для того чтобы создать рабочую цепочку, чтобы понять как это должно работать, чтобы пощупать на уровне программного кода (как то так привычнее, уж извините:) ). Пока есть понятие только на уровне общих представлений и схем, а как это работает технически; где и что и с чем должно стыковаться и по каким критериям, что можно а что нельзя - непонятно абсолютно, требований к созданным интерфейсам для генерации прокси найти не смог. Как вот и в данном случае - оказывается нельзя использовать некоторые типы данных WSDL.

В данном случае проблема, судя по всему, в типе Array. Не совсем понятно как ее решить, если все основные данные веб-сервис отдает именно в виде массива? Можно ли как то массив через маппинг преобразовать в другой тип?

Автор:  Chaser009 [ Ср, мар 02 2016, 09:29 ]
Заголовок сообщения:  Re: Ошибка при генерации прокси  Тема решена

ceib написал(а):
В данном случае проблема, судя по всему, в типе Array. Не совсем понятно как ее решить, если все основные данные веб-сервис отдает именно в виде массива? Можно ли как то массив через маппинг преобразовать в другой тип?


У вас мэппинг в тесте в ошибки не валится? Если нет, повторюсь, создайте для прокси (для исходящего интерфейса) свои типы, опишите тот самый массив, а в мэппинге запихайте данные из своего типа в целевую структуру. Обратно - так же. Заодно, и мэппинг пригодится, не просто так данные будет между одинаковыми структурами гонять :-)

Если не получится, вперед к познанию XSLT: https://scn.sap.com/thread/1427673 :-)

Автор:  ceib [ Чт, мар 03 2016, 17:47 ]
Заголовок сообщения:  Re: Ошибка при генерации прокси

Chaser009 написал:
ceib написал(а):
В данном случае проблема, судя по всему, в типе Array. Не совсем понятно как ее решить, если все основные данные веб-сервис отдает именно в виде массива? Можно ли как то массив через маппинг преобразовать в другой тип?


Если не получится, вперед к познанию XSLT: https://scn.sap.com/thread/1427673 :-)



Сделал свои типы и XSLT-мапинг. Заработало, прокси сгенерировался, спасибо!

P.S. Уже наткнулся на следующую абсолютно непонятную мне ошибку, но об этом в другой теме - здесь не в тему)

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