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

ABAP consumer proxy на async интерфейсе - не создать порт
https://sapboard.ru/forum/viewtopic.php?f=70&t=85158
Страница 1 из 1

Автор:  jnw [ Вт, дек 03 2013, 19:13 ]
Заголовок сообщения:  ABAP consumer proxy на async интерфейсе - не создать порт

Доброе время суток!

Ситуация следующая: в PI (7.02) сделан async outbound interface, по которому надо на строне ERP создать ABAP consumer proxy. С помощью SPROXY все хорошо получается (создание и активация), но вот при попытке создать порт в SOAMANAGER нашей вновь созданной прокси там не видно. Самое интересное, что для sync outbound все работает: после создания прокси-класса он появляется в SOAMANAGER и можно создать порт.
В инете http://scn.sap.com/message/13386632 нашел такую глубокую мысль: "... If you have missing Soap Runtime configuration in ECC you wan't see async services in SOAMANAGER".

Вопрос собственно, в следующем: так и должно быть или нужно что-то подкрутить в Soap Runtime configuration? Если так и должно быть, то как создавать порты для sync consumer ABAP proxy: с использованием obsolete LPCONFIG или есть другой способ?

Заранее благодарен!

Автор:  pitroff [ Ср, дек 04 2013, 00:02 ]
Заголовок сообщения:  Re: ABAP consumer proxy на async интерфейсе - не создать порт

jnw, вопрос можно?

Я правильно понял, что Вы собираетесь сделать следующее:
Внешний клиент ->(SOAP)->ERP->(ABAP consumer proxy)->PI -> и далее куда-то..

Вопрос - а может быть в таком варианте проще внешний клиент ->(SOAP adapter)->PI -> и далее?

Если же "клиент"->ERP - это принципиально, то в приведенной Вами ссылке есть пара хороших документов:

"How to Develop, Monitor and Debug WS Consumer and Provider" (PI 7.0) - http://scn.sap.com/docs/DOC-16224
Как раз Ваш случай, в первой части описано, как настроить и проверить WS-RM, во второй - как создать, сгенерировать и опубликовать асинхронный сервис.

И более детальный документ - "Configuring Web Service Scenarios" (PI 7.1)
http://www.sdn.sap.com/irj/scn/go/porta ... 4646712135

Автор:  jnw [ Ср, дек 04 2013, 16:12 ]
Заголовок сообщения:  Re: ABAP consumer proxy на async интерфейсе - не создать порт

Добрый день!

Спасибо за ответ.

Немножко не так. Схема следующая: ERP (ABAP proxy consumer) -> PI (async outbound interface) -> далее куда-то...
При этом, если создать на стороне ERP соответствующий consumer ABAP proxy, то его почему-то не видно в SOAMANAGER.

Первый документ я смотрел, сделал, как там написано, но не помогло: прокси в SOAMANAGER так и не появился.
Второй посмотрю, спасибо.

Автор:  pitroff [ Вс, дек 08 2013, 21:25 ]
Заголовок сообщения:  Re: ABAP consumer proxy на async интерфейсе - не создать порт

Добрый день!

Забавная задачка, поковырял глубже.
Дело, скорее всего, в "ньюансах".

Очередная версия:

Проверьте параметр "State" у интерфейса - должно быть "Released". (в меню Service Interface -> Properties)
Изображение

Для порядка - хотя бы у одной операции интерфейса нужно тоже поставить статус "Released".
Изображение

Потом нужно перегенерировать прокси (в SPROXY State на вкладке Properties тоже будет Released).
Проверил (на 7.4 Dual Stack), вроде работает.
Изображение

P.S.: Пытался добиться обратного - изменив State с "Released" на "Not released" убрать интерфейс из SOAMANAGER. Не удалось. ) Где-то в кэшах сидит.

Автор:  Shvetz [ Пн, дек 09 2013, 16:00 ]
Заголовок сообщения:  Re: ABAP consumer proxy на async интерфейсе - не создать порт

Если версия PI действительно 7.0x ,и , если мне не изменяет память, то там нет Service Interface Operations , а вместо Service Interface там Message Interface . И вроде бы нет параметра Release state в Java интерфейсе.

Чисто вопрос для себя:
А для чего используете SOAMANAGER в данном процессе? Чем обычная прокся не устраивает?

Автор:  pitroff [ Пн, дек 09 2013, 17:33 ]
Заголовок сообщения:  Re: ABAP consumer proxy на async интерфейсе - не создать порт

Да, Вы правы, забыл про это.

Переход с Message Interface на Service Interface + Operations был после 7.0.
К сожалению, посмотреть в 7.0 сейчас негде, нет такой системы под рукой.

Но release state, кажется, был у Software Component - можно еще там проверить.

ИМХО, асинхронные прокси блокируются поиском по какому-то незначительному признаку, что заложено в код очередным индусом. :)
В документации нигде не сказано, что они не могут быть использованы в SOAMANAGER.

Вообще, с поиском в SOAMANAGER какая-то беда, судя по наличию нот на эту тему:
1253962 - SOAMANAGER: Searching with setting "BOTH" (7.0 - 7.1)
1869110 - Search in Web Service Configuration (7.40)

Автор:  dump [ Вт, дек 10 2013, 14:51 ]
Заголовок сообщения:  Re: ABAP consumer proxy на async интерфейсе - не создать порт

soamanger нужен для создания локального порта - когда получатель не PI. У автора немного каша в голове - если используется PI не нужен никакой soamanager - порт ( а вернее адрес PI IE ) настраивается в SXMB_ADM в настройках локальной интеграционной машины - обратитесь к вашему PI щику если он есть.

Автор:  pitroff [ Вт, дек 10 2013, 15:47 ]
Заголовок сообщения:  Re: ABAP consumer proxy на async интерфейсе - не создать порт

dump, да, можно напрямую из ABAP класс прокси вызвать, не указывая логический порт - и вызов уйдет на сервер, прописанный в SXMB_ADM.

Настройки, которые нужно сделать в ERP:
Configuration of Business Systems with an Integration Engine

Но "раз уж мы тут все так развлекаемся"(С) - прокси все равно не показываются, на SDN эта тема поднималась дважды, ответа пока четкого не было.
В 7.4 я проверил, в более ранних релизах - нет.
У кого под рукой ERP не самый новый есть (базис 6.4, 7.0) - будет время, попробуйте?

Автор:  jnw [ Пт, мар 20 2015, 18:41 ]
Заголовок сообщения:  Re: ABAP consumer proxy на async интерфейсе - не создать порт

Всем спасибо за ответы!

Про то, что для вызова ERP (ABAP Proxy Consumer) -> PI порт не требуется, мне когда-то рассказывали умные люди :) Только вот не заработало, хотя в SXMB_ADM все настроено правильно (все остальное работает). Поэтому пришлось создать порт (Runtime = Web Service Infractucture) и заработало только после того, как в параметре Path Suffix прописали "полный путь":
XISOAPAdapter/MessageServlet?channel=:XXX:YYY&version=3.0&Sender.Service=XXX&Interface=http://xxx/xxx/xxxl^MI_ZZZ_AO&QualityOfService=ExactlyOnce
(QualityOfService - обязательно, без этого тоже не работает).
Но без порта все равно попробую, благо повод появился :)

А вот с SOAMANAGER так ничего не получилось. По-прежнему не видит асинхронные интерфейсы, даже несмотря на Status=Released.

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