Текущее время: Ср, апр 24 2024, 15:38

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




Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Синхронный-асинхронный мост в адаптере
СообщениеДобавлено: Чт, апр 03 2014, 06:23 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Добрый день!

Вопрос, может быть глупый, но все-таки: есть у нас набор однотипных сценариев 1С->SOAP->PI(BPM)->IDOC->ERP. В большинстве из них интеграционный процесс используется только для того, чтобы реализовать синхронный-асинхронный мост. Появилось сильное желание пересадить это дело на Integrated Configuration. Но для реализации моста в адаптере все равно откуда-то надо взять ответное сообщение. В доступных примерах нашел только файловую схему, где файл кладется в папку, а соседний адаптер проверяет эту же папку и при появлении файла шлет сообщение, которое закрывает мост. Вариант с ответным АйДоком тоже не удовлетворяет, так как сообщение 1С может порождать кучу различных документов в САП, и с обратной корреляцией как-то сложно.
Вот если бы можно было как-нибудь прямо в адаптере сформировать ответ... Что-то типа модуля для трансформации.

Есть идеи?

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Синхронный-асинхронный мост в адаптере
СообщениеДобавлено: Чт, апр 03 2014, 09:37 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, ноя 22 2012, 10:25
Сообщения: 322
Здравствуйте, коллега!
тут недавно моя тема была SOAP-2-RFC http://sapboard.ru/forum/viewtopic.php?f=70&t=85618&start=0, в ней коллега pitroff подробно объяснял, как сделать асинхронно-синхронный мост без BPM. Может это и Вам тоже поможет?

Там, кстати, есть ссылка на его статью про мосты. Очень полезное чтение для начинающего, как я.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Синхронный-асинхронный мост в адаптере
СообщениеДобавлено: Чт, апр 03 2014, 10:00 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Добрый день!

doleynikov написал(а):
тут недавно моя тема была SOAP-2-RFC http://sapboard.ru/forum/viewtopic.php? ... 18&start=0, в ней коллега pitroff подробно объяснял, как сделать асинхронно-синхронный мост без BPM. Может это и Вам тоже поможет?


Эту тему я почитал, как и статьи коллеги Алексея. Видите ли, может, я, конечно, не до конца понимаю принцип, так как опыта в этом вопросе мало, но у меня задача даже не в том, чтобы преобразовать синхронное сообщение в асинхронное, а надо как-то получить ответное сообщение. В случае с BPM это реализуется в самом интеграционном процесссе, а здесь - непонятно.

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Синхронный-асинхронный мост в адаптере
СообщениеДобавлено: Чт, апр 03 2014, 10:18 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, ноя 22 2012, 10:25
Сообщения: 322
Я правильно понимаю, что 1С делает синхронный вызов, который преобразуется в IDOC и переправляется в ERP? А чего ждет 1С в ответ? статуса, например "документ доставлен в ERP" или "документ доставлен в ERP, статус 51, ошибка хххххххххх"? Мы пытались разобраться с ALEAUD, но Вам, вероятно, это не поможет, так как IDOC это не синхронный интерфейс. Как связать ALEAUD с нужным ожидающим синхронным вызовом?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Синхронный-асинхронный мост в адаптере
СообщениеДобавлено: Чт, апр 03 2014, 10:41 
Специалист
Специалист

Зарегистрирован:
Пт, авг 24 2012, 11:48
Сообщения: 200
Присоединяюсь к вопросу. Непонятно как у вас реализованы ответы в 1C->ERP процессе, надо сначала понять как у вас было. Была ли у вас там корреляция с ответами из SAP ALEAUD? Или как-то по-другому делалось?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Синхронный-асинхронный мост в адаптере
СообщениеДобавлено: Чт, апр 03 2014, 10:58 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, ноя 22 2012, 10:25
Сообщения: 322
Можно, конечно , сделать свою синхронную RFC и передавать в нее данные и получать ответ. Все под контролем, но нужно ABAP программиста терзать.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Синхронный-асинхронный мост в адаптере
СообщениеДобавлено: Чт, апр 03 2014, 11:46 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Сб, фев 25 2012, 02:52
Сообщения: 141
Откуда: Москва
Пол: Мужской
Chaser009, чтобы помочь - давайте попробуем четче сформулировать задачу.

Правильно ли я понял:
- исходный вызов: синхронный запрос от 1C по SOAP
- из запроса 1С формируется IDoc, который обрабатывается ERP.
- 1C должен получить подтверждение (чего? Техническое подтверждение доставки до PI, доставки до ERP, статус операции в ERP?)

Версия PI какая?

Ну и сходу - а почему обязательно IDoc? Можно поискать подходящую BAPI и формировать нужный документ синхронно по RFC - тогда и моста не нужно.

_________________
Сажаем самолеты по телефону. :)
SAP - фрилансер.
sap.pitroff.ru


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синхронный-асинхронный мост в адаптере
СообщениеДобавлено: Чт, апр 03 2014, 12:37 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Схема следующая: из 1С приходит через СОАП набор документов одним сообщением (синхронный вызов), получатель - соответствующий интеграционный процесс (в зависимости от операции интерфейса). В ИП формируется простейший ответ для 1С - количество элементов в сообщении - и синхронный канал закрывается этим ответом. Дальше интеграционный процесс формирует набор АйДоков и отправляет их в ERP (асинхронно), т.е. одно сообщение 1С порождает несколько АйДоков. Статусные айдоки в ответ мы не шлем. Вместо этого используем RFC-функцию для получения статусов по уникальному номеру протокола 1С, который формируется для каждого документа в сообщении и пишется в REFINT создаваемого АйДока.
Переделывать схему доставки на BAPI или RFC наши абаперы не хотят.
Пока работали на 7.1, вопросов не возникало: все равно на ABAP-стек перекидывать (IDOC-адаптер). Сейчас потихоньку переезжаем на 7.3, поэтому и появилась мысль попытаться слезть с ИП.

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Синхронный-асинхронный мост в адаптере
СообщениеДобавлено: Чт, апр 03 2014, 14:34 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Сб, фев 25 2012, 02:52
Сообщения: 141
Откуда: Москва
Пол: Мужской
Решение навскидку. Честно скажу - не пробовал еще, надо тестировать.

В 7.3 появилась пара новых модулей, умеющих технические подтверждения отсылать и закрывать синхронный запрос:
CloneMessageBean и SendAckBean

Ставим их в Sender Comm. Channel + RequestOnewayBean

Порядок такой:
CloneMessageBean
RequestOnewayBean
CallSAPAdapter
SendAckBean

Получается этакий "полумост". :)
В таком варианте придется только подкорректировать 1C SOAP-запрос - ему будут возвращаться технические статусы доставки, а не данные.
Ну и мэппинг "подломать" - чтобы от синхронного интерфейса к асинхронному преобразование сделать.

Но, повторюсь, это теория - надо проверять.

UPD: проверил - работает. :) И мэппинг "подламывать" не нужно - он и так спокойно создается.

_________________
Сажаем самолеты по телефону. :)
SAP - фрилансер.
sap.pitroff.ru


Последний раз редактировалось pitroff Чт, апр 03 2014, 15:43, всего редактировалось 2 раз(а).

Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синхронный-асинхронный мост в адаптере
СообщениеДобавлено: Чт, апр 03 2014, 14:51 
Специалист
Специалист

Зарегистрирован:
Пт, авг 24 2012, 11:48
Сообщения: 200
Если дело будет доходить до того, чтобы 1С что-то пришлось править, то есть более простое решение. Пока я не вижу какого-то смысла в тех данных в ответе, который вы сейчас им отправляете в 1С. Надо превратить процесс чисто в асинхронный. В то же время с точки зрения 1С он останется синхронным!

В этом случае SOAP Adapter отправляет вот такой пустой ответ:

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Header/>
<SOAP:Body/>
</SOAP:Envelope>

Это и есть результат успешной доставки в SAP PI. SOAP Adapter отправляет ответ автоматически, если sender интерфейс асинхронен.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Синхронный-асинхронный мост в адаптере
СообщениеДобавлено: Чт, апр 03 2014, 15:31 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Shvetz, pitroff

Спасибо за подсказки! Завтра буду смотреть и пробовать.
Насчет изменений в 1С - это, кстати, не проблема. В наших специфических условиях мы с коллегой сами занимаемся и программной реализацией выгрузки/загрузки данных из 1С, и интеграцией в PI, и разработкой необходимого функционала в SAP (RFC, Proxy и т.д.).

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Синхронный-асинхронный мост в адаптере
СообщениеДобавлено: Чт, апр 03 2014, 15:57 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Сб, фев 25 2012, 02:52
Сообщения: 141
Откуда: Москва
Пол: Мужской
У Shvetz более простое решение, чем "полумост".

Обратно в обоих случаях при успехе доставки SOAP-запроса возвращается пустой SOAP-конверт.

_________________
Сажаем самолеты по телефону. :)
SAP - фрилансер.
sap.pitroff.ru


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Синхронный-асинхронный мост в адаптере
СообщениеДобавлено: Пн, апр 07 2014, 07:58 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Дошли наконец руки до "попробовать".

Shvetz написал(а):
Надо превратить процесс чисто в асинхронный. В то же время с точки зрения 1С он останется синхронным!


А как? Что-то я начал делать и уперся в то, что не получается замэппить синхронный интерфейс с асинхронным. При активации Operation mapping ругается, что с одной стороны синхронный, с другой - асинхронный.

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Синхронный-асинхронный мост в адаптере
СообщениеДобавлено: Пн, апр 07 2014, 08:16 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, ноя 22 2012, 10:25
Сообщения: 322
Наверное так: делаете асинхронный SOAP от 1С и асинхронный IDOC в ERP. между ними все как обычно: интерфейсы, мапинги итд.
НО в 1С ничего не меняете. пусть думает, что интерфейс синхронный. SOAP по HTTP всегда вернет что-нибудь. Хотя-бы просто код 200 или 201, что все принялось сервисом.

(Я правильно излагаю, коллеги?)

ЗЫ: у меня остался настроенный "полумост", когда запрос шлют по SOAP, а ответ приходит в файл. так вот, на SOAP канал , если ошибок в структуре запроса нет, всегда приходит пакет вида :
Code:
HTTP/1.1 202 Accepted
server: SAP NetWeaver Application Server 7.20 / AS Java 7.10
date: Mon, 07 Apr 2014 05:27:45 GMT
content-length: 0
set-cookie: saplb_*=(sap-pi-00-d_UPD_00)4278350; Version=1; Path=/

Я не знаю, можно ли его как-то обрабатывать?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Синхронный-асинхронный мост в адаптере
СообщениеДобавлено: Пн, апр 07 2014, 09:45 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Да я в общем так и сделал: исходящий интерфейс асинхронный, принимающий - тоже. Сейчас пытаюсь разобраться, почему NO_MAPPINGPROGRAM_FOUND вылетает.

Мне не нравится вот это:
<SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
<SAP:ProcessingMode>synchronous</SAP:ProcessingMode>

Вроде в SOAP-адаптере поставил RequestOnewayBean, а сообщение, получается, синхронное прилетает.

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


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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