Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| product:api:creating_bus_events [03.12.2025 08:23] – Москвитина Алина | product:api:creating_bus_events [05.12.2025 09:49] (текущий) – Москвитина Алина | ||
|---|---|---|---|
| Строка 37: | Строка 37: | ||
| Перечень «бизнес-операций» и расписание регулярного таймера для их запуска можно найти в панели администратора ADVANTA, на странице «Дополнительные сервисы / Расписание пользовательских бизнес-операций»: | Перечень «бизнес-операций» и расписание регулярного таймера для их запуска можно найти в панели администратора ADVANTA, на странице «Дополнительные сервисы / Расписание пользовательских бизнес-операций»: | ||
| - | {{ : | + | {{ : |
| - | // Рисунок 1. Запуск справочника пользовательских бизнес-операций // | + | <TEXT align=" |
| \\ | \\ | ||
| Строка 45: | Строка 45: | ||
| \\ | \\ | ||
| - | {{ : | + | {{ : |
| + | <TEXT align=" | ||
| + | |||
| + | \\ | ||
| + | \\ | ||
| + | На странице справочника «бизнес-операций» нажмите кнопку «Добавить»: | ||
| + | |||
| + | {{ : | ||
| + | <TEXT align=" | ||
| + | |||
| + | \\ | ||
| + | \\ | ||
| + | Введите название новой бизнес-операции и нажмите «Сохранить»: | ||
| + | |||
| + | {{ : | ||
| + | <TEXT align=" | ||
| + | |||
| + | \\ | ||
| + | \\ | ||
| + | Операция появится в справочнике. Ей будет присвоен внутренний код, который потребуется при вызове API «InsertTimerEvent»: | ||
| + | |||
| + | {{ : | ||
| + | <TEXT align=" | ||
| + | |||
| + | \\ | ||
| + | \\ | ||
| + | Если требуется реализовать регулярную, | ||
| + | Если требуется однократная операция, | ||
| + | |||
| + | <callout type=" | ||
| + | |||
| + | \\ | ||
| + | ===== Создание сообщения через API «InsertTimerEvent» ===== | ||
| + | Для планирования запуска бизнес-операции на определённый день и время служит API-функция «InsertTimerEvent». Описание этой API можно найти на странице службы «APIScheduledEvents». Относительный путь к странице этой службы на вашем стенде ADVANTA: «/ | ||
| + | |||
| + | Формат тела запроса для вызова API «InsertTimerEvent» следующий: | ||
| + | < | ||
| + | <?xml version=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | \\ | ||
| + | Описание параметров API-функции «InsertTimerEvent»: | ||
| + | ^ Параметр ^ Описание ^ | ||
| + | |SessionID|ID сессии пользователя, | ||
| + | |CallTime|Дата и время, когда событие должно быть помещено в шину| | ||
| + | |ObjectID|Идентификатор объекта ADVANTA, к которому будет привязано событие| | ||
| + | |OperationCode|Код операции в справочнике пользовательских бизнес-операций ADVANTA| | ||
| + | |Parameters|Дополнительные параметры, | ||
| + | |||
| + | \\ | ||
| + | ===== Пример вызова API «InsertTimerEvent» в Postman ===== | ||
| + | Протестировать создание сообщения о выполнении бизнес-операции проще всего через систему Postman. Ниже приведены снимки настроек SOAP-запроса в ней: | ||
| + | |||
| + | {{ : | ||
| + | <TEXT align=" | ||
| + | \\ | ||
| + | \\ | ||
| + | {{ : | ||
| + | <TEXT align=" | ||
| + | |||
| + | \\ | ||
| + | ===== Пример триггера для обработки события ===== | ||
| + | Проверить, | ||
| + | Общие настройки триггера: | ||
| + | |||
| + | {{ : | ||
| + | <TEXT align=" | ||
| + | |||
| + | \\ | ||
| + | Код проверки «условия» запуска триггера: | ||
| + | < | ||
| + | TriggerConsole.WriteLine($" | ||
| + | |||
| + | // Реагируем только на бизнес-операцию с кодом №1 | ||
| + | if (Event.BusinessOperationCode == 1){ | ||
| + | TriggerConsole.WriteLine($" | ||
| + | } else { | ||
| + | return false; // Если это не операция с кодом №1, не запускаем триггер | ||
| + | } | ||
| + | |||
| + | return true; | ||
| + | |||
| + | </ | ||
| + | |||
| + | \\ | ||
| + | Код «скрипта». В данном примере просто выводим в консоль ID и время сообщения, | ||
| + | < | ||
| + | TriggerConsole.WriteLine($" | ||
| + | TriggerConsole.WriteLine($" | ||
| + | |||
| + | // Код бизнес-операции: | ||
| + | TriggerConsole.WriteLine($" | ||
| + | |||
| + | // UID объекта, | ||
| + | TriggerConsole.WriteLine($" | ||
| + | |||
| + | // Параметры, | ||
| + | TriggerConsole.WriteLine($" | ||
| + | |||
| + | </ | ||
| + | |||
| + | \\ | ||
| + | В результате, | ||
| + | |||
| + | {{ : | ||
| + | <TEXT align=" | ||
| + | |||
| + | \\ | ||
| + | ===== Просмотр очереди через API «CheckTimerEvent» ===== | ||
| + | Увидеть всю очередь сообщений бизнес-операции можно с помощью API-функции «CheckTimerEvent». Информацию о способе её вызова также можно найти на странице службы «APIScheduledEvents» (относительный путь на стенде ADVANTA: «/ | ||
| + | |||
| + | Формат вызова API «CheckTimerEvent»: | ||
| + | < | ||
| + | <!-- Позволяет проверить расписание вызова | ||
| + | <?xml version=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | \\ | ||
| + | Пример настройки POST-запроса для вызова «CheckTimerEvent» в Postman: | ||
| + | |||
| + | {{ : | ||
| + | <TEXT align=" | ||
| + | |||
| + | \\ | ||
| + | {{ : | ||
| + | <TEXT align=" | ||
| + | |||
| + | \\ | ||
| + | Если запрос настроен верно, в Postman появится перечень сообщений указанной бизнес-операции. Пример: | ||
| + | |||
| + | {{ : | ||
| + | <TEXT align=" | ||