Текущее время: Пт, июл 04 2025, 10:34

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




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

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

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


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

Зарегистрирован:
Пт, авг 24 2012, 11:48
Сообщения: 200
Да, коллеги всё в принципе написали.

Нужно сделать всё просто async->async. Проверить все Service interfaces убрать из них упоминание о синхронном характере. Не нужно никаких модулей, т.е. надо убрать из SOAP канала, в который идет сообщение, все модули, переменные и тому подобное. То есть оставить всё предельно примитивно, тогда и заработает :)

И еще кэш обновите, а то может быть у вас там в кэше до сих пор всё синхронное.


Последний раз редактировалось Shvetz Пн, апр 07 2014, 13:25, всего редактировалось 1 раз.

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

Зарегистрирован:
Чт, ноя 22 2012, 10:25
Сообщения: 322
о, да! Кэш это волшебная вещь!
Не даром при любых проблемах индусы первым делом советуют рестартнуть яву целиком.


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

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

1. Создал исходящий асинхронный интерфейс. Тип сообщения - внешний (тип 1С).
2. Входящий интерфейс - тоже асинхронный. Тип сообщения определен в ESR. Мэппинг создан.
3. Коммуникационный канал на приемнике - файл.

Вызываю из 1С операцию, передаю параметром сообщение.
Файл в папке создается, но в мониторе ошибка:

<SAP:Error SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="MAPPING">NO_MAPPINGPROGRAM_FOUND</SAP:Code>
<SAP:P1>Object ID BB004C49AB4333FDA9ADEC06267C294B Software Component F8FF5D10549C11DEC392E318C0A8EA41</SAP:P1>
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:Stack>Mapping program is not available in runtime cache: Object ID BB004C49AB4333FDA9ADEC06267C294B Software Component F8FF5D10549C11DEC392E318C0A8EA41</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>

Думаю, что с кэшем все в порядке, потому что мэппинг там один, и он, судя по содержимому файла, вполне себе отрабатывает.

И по-прежнему в мониторе:

<SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
<SAP:ProcessingMode>synchronous</SAP:ProcessingMode>,

хотя оба интерфейса асинхронные.

Что-то я не так делаю...

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


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

Зарегистрирован:
Сб, фев 25 2012, 02:52
Сообщения: 141
Откуда: Москва
Пол: Мужской
Зайдите в operation mapping, обновите интерфейсы (там кнопка есть "Read Operations") и активируйте заново.

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


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

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Я, конечно, зайду, просто я сегодня полностью все удалил по этому сценарию и создал заново с другими именами (на всякий случай).

Обновил, сохранил, активировал - все то же самое :(

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


Последний раз редактировалось Chaser009 Вт, апр 08 2014, 09:42, всего редактировалось 1 раз.

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

Зарегистрирован:
Пт, авг 24 2012, 11:48
Сообщения: 200
Какой qualityOfService стоит в SOAP Sender канале?


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

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Shvetz написал(а):
Какой qualityOfService стоит в SOAP Sender канале?


Best effort.

Уже даже 1С-ка выругалась, что я пытаюсь процедуру как функцию вызывать, т.е. вкурила из wsdl, что операция асинхронная. Вызов в 1С теперь проходит без ошибок, ибо результатов она и не ждет. А вот PI чем-то недоволен.

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


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

Зарегистрирован:
Пт, авг 24 2012, 11:48
Сообщения: 200
Цитата:
Best effort.


Best Effort - это значит, что у вас канал синхронный и ждет обратного ответа от PI. Нужно "Exactly once" поставить, ведь наша задача сделать канал асинхронным! Советую почитать мат часть по QualityOfService - это основа.

Для 1С операция не должна стать асинхронной, потому что web services синхронный (для них, т.к. ответ есть), а канал асинхронный (для вас, т.к. вы ответ не отсылаете в ручную) . Если поставите, допустим, XML валидацию, то ответы об ошибках повалятся в 1С. Так что, если 1С не ожидает ответов - то подозрительно. Повторюсь, ответы - есть, просто они имеют свободный формат, который вы контроллировать не можете.


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

Зарегистрирован:
Пн, авг 29 2011, 08:54
Сообщения: 318
Откуда: Владивосток, Россия
Пол: Мужской
Shvetz написал(а):
Нужно сделать всё просто async->async.


Shvetz написал(а):
Для 1С операция не должна стать асинхронной, потому что web services синхронный (для них, т.к. ответ есть), а канал асинхронный (для вас, т.к. вы ответ не отсылаете в ручную) .


Что-то я совсем запутался. Если исходящий интерфейс - асинхронный, как для 1С веб-сервис синхронным станет?
Exactly once, кстати, ставил. Результат тот же. Хотя, не мешало бы, наверное, канал рестартануть...

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


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

Зарегистрирован:
Пт, авг 24 2012, 11:48
Сообщения: 200
Цитата:
Что-то я совсем запутался. Если исходящий интерфейс - асинхронный, как для 1С веб-сервис синхронным станет?


Исходящий интерфейс - в том числе исходящий канал - асинхронный. Потому что ваш канал и ваш интерфейс не ожидают ответа. Интерфейс - вы сам определяете с помощью соответствующего параметра, а канал с помощью QualityOfService.
Веб-сервис же синхронный по сути дела всегда, разница лишь в том какой к нему доступ. Веб-сервис не содержит в себе характер асинхронности или синхронности, он всегда возвращает ответ. Даже, если вы его не определили. Можете проверить ваш веб-сервис на предмет ответа с помощью программы SoapUI (можно бесплатно скачать).

Можно обращаться в интернете асинхронно к синхронному веб-сервису, например, с помощью технологии AJAX. В PI то же самое к синхронному веб-сервису привязан асинхронный канал и обращение идет асинхронно.

Всё сводится к тому, что интерфейс (Service Interface ESR) и веб-сервис - это разные вещи и лишь связаны друг с другом.

Мб много текста, может, кто проще расскажет.

Цитата:
Exactly once, кстати, ставил. Результат тот же.


Оставьте в любом случае Exactly once. Рестартаните канал, опять же на всякий случай кэш.
Проверьте Trace и параметры входящего сообщения, посмотрите, что у него Qos = ExactlyOnce а тип взаимодействия = Asynchronous. Если входящее сообщение игнорирует то, что у вас в Sender канале поставлено в поле QoS, то либо рестарт, либо ноты помогут.


Последний раз редактировалось Shvetz Вт, апр 08 2014, 14:05, всего редактировалось 1 раз.

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

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

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


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

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


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

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


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

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