Текущее время: Чт, мар 19 2026, 01:27

Часовой пояс: 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 часа


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

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


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

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