Текущее время: Пт, апр 19 2024, 20:36

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


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

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


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

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