Добрый день,
Стоит задача в OTRS6 при обновлении состояния заявки послать данные во внешнюю систему.
В случае, если веб-сервис отработает с ошибкой, состояние заявки не менять.
Кто-нибудь имел опыт настройки подобного рода решения?
Я создал REST invoker, добавил в него инициатор вызова на основе контроллера Ticket::Generic, куда добавил срабатывание по событию TicketStateUpdate, галочку асинхронного вызова убрал в надежде, что вся цепочка действий будет отменена в случае ошибки отсылки запроса, но заявка сменила состояние и но и данные не ушли во внешнюю систему.
Настройка web-service invoker
Модератор: ykolesnikov
-
alexus
- OTRS Гуру
- Сообщения: 5220
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 96 раз
- Поблагодарили: 84 раза
Re: Настройка web-service invoker
Добрый день. Скрины настройки веб-сервиса покажите. Логи OTRS, лог веб-сервиса были бы тоже полезны.
С уважением,
Алексей Юсов
Prod: Radiant Service Desk on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
Алексей Юсов
Prod: Radiant Service Desk on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
Re: Настройка web-service invoker
Добрый день,
Я добавил файл конфигурации веб-сервиса, который я сделал Там заведомо неправильно указал endpoint, чтобы сэмулировать недоступность удаленного сервера
Ожидаемо я получил ошибку
Потом он закончил свою работу с ошибкой, а состояние у заявки к прежнему не вернулось.
Возможно я что-то упустил в конфигурации веб-сервиса, чтобы он реально был синхронным и вся цепочка действий откатилась после ошибки.
Я добавил файл конфигурации веб-сервиса, который я сделал Там заведомо неправильно указал endpoint, чтобы сэмулировать недоступность удаленного сервера
Ожидаемо я получил ошибку
Скриншот лога веб-сервиса я приложил. Там в начале видно, что данные из заявки подтянулись и State":"pending reminder" - это то состояние, которое я выставил и после этого веб сервис начал свою работу.Can't connect to zzz.yyy:80 (Name or service not known)
Name or service not known at /opt/znuny/Kernel/cpan-lib/LWP/Protocol/http.pm line 50.
Потом он закончил свою работу с ошибкой, а состояние у заявки к прежнему не вернулось.
Возможно я что-то упустил в конфигурации веб-сервиса, чтобы он реально был синхронным и вся цепочка действий откатилась после ошибки.
- Вложения
-
- otrs.zip
- (432 байт) 44 скачивания
-
- 19_09_2025_14_35_46.png (143.05 КБ) 2482 просмотра
-
alexus
- OTRS Гуру
- Сообщения: 5220
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 96 раз
- Поблагодарили: 84 раза
Re: Настройка web-service invoker
Этот момент я упустил. Логика у обработчика событий другая. Есть событие - StateUpdate. Обоработчик событий передаёт его всем "подписантам", и на этом всё. Обработчик ошибок надо писать отдельноVolkodav писал(а): 18 сен 2025, 10:32
В случае, если веб-сервис отработает с ошибкой, состояние заявки не менять.
С уважением,
Алексей Юсов
Prod: Radiant Service Desk on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
Алексей Юсов
Prod: Radiant Service Desk on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal
Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!