Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
product:api:creating_bus_events [02.12.2025 08:11] – создано Белугин Александрproduct:api:creating_bus_events [03.12.2025 08:45] (текущий) Москвитина Алина
Строка 1: Строка 1:
 ====== Создание сообщений о событиях в системной шине ADVANTA через API ====== ====== Создание сообщений о событиях в системной шине ADVANTA через API ======
 +===== Шина, события и бизнес-операции =====
 +Обмен информацией между модулями ADVANTA выполняется через «системную шину данных». В шине публикуются «сообщения» о случившихся в системе [[product:triggers:events|событиях]] и тех изменениях в данных, которые в результате произошли. Сообщения служат сигналами к запуску «триггеров» в модуле «Цифровой помощник». 
 +Сообщения о событиях могут появляться в шине:
 +  * в ответ на действия пользователя в интерфейсе.
 +  * при запуске [[product:triggers:button|настраиваемых команд]]. 
 +  * по расписанию. 
 +  * при вызове API-функций, изменяющих данные в системе.
 +  * при вызове специальной API-функции «InsertTimerEvent», которая планирует возникновение в шине события на указанное время.
  
 +Помимо изменения данных, могут происходить и события, отражающие специфику бизнес-процессов предприятия, называемые [[product:triggers:timer#%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_%D0%B1%D0%B8%D0%B7%D0%BD%D0%B5%D1%81_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B9|бизнес-операциями]]. 
 +
 +Бизнес-операции могут быть:
 +  * повторяющиеся регулярные, запускаемые по таймеру; 
 +  * однократные, планируемые на определённую дату и время;
 +
 +<callout type="primary">Примеры «регулярных» операций: еженедельная отправка отчётов руководителям проектов, планирование регулярных совещаний, периодический расчёт метрик, регулярный обмен данными с внешними системами</callout>
 +
 +«Однократные» операции можно запускать, когда требуется:
 +  * обработать событие, случившееся вне ADVANTA, в другой информационной системе. 
 +  * выполнить событие, сроки которого установлены регламентом или SLA относительно ранее произошедшего события.
 +\\
 +===== Пример внешнего события =====
 +Предположим, в системе электронного документооборота предприятия «утверждён» приказ о реализации проекта. Надо оповестить об этом ADVANTA, поместив в её шину данных сообщение о соответствующей бизнес-операции. Это можно сделать  помощью API-функции «InsertTimerEvent». В сообщении можно передать необходимую информацию, например, идентификатор утверждённого проекта и присвоенный ему статус. В результате в ADVANTA выполнят свою работу триггеры, привязанные к бизнес-операции утверждения проекта: создадут необходимые объекты, оповестят проектную команду, запланируют установочное совещание и другое. Если в будущем потребуется выполнять в ADVANTA какое-то дополнительные действия по созданию нового проекта, достаточно будет создать новый триггер и подключить к уже существующей бизнес-операции.
 +\\
 +\\
 +===== Пример события с установленными сроками исполнения =====
 +Некоторые бизнес-процессы предприятия требуют выполнения работ в период времени, ограниченный регламентом или SLA. К примеру, при получении сообщения об утверждении проекта, его руководитель обязан в течение двух рабочих дней подготовить документ «паспорт проекта». Помимо простого уведомления о начале этой задачи будет полезно при наступлении планового срока завершения автоматически проверить, подготовил он документ или нет. Если не подготовил, надо оповестить всех заинтересованных участников проекта, напомнить исполнителю и запланировать следующую проверку, например, ещё через сутки.
 +
 +В этом случае можно организовать работу следующим образом: 
 +  - В справочнике бизнес-операций зарегистрировать две операции: «№1 - Утверждён приказ о проекте», «№2 - Проверка подготовки паспорта проекта».
 +  - После утверждения приказа в СЭД, в шине данных ADVANTA с помощью API «InsertTimerEvent» создаётся сообщение о бизнес-операции «№1 - Утверждён приказ о проекте» с датой исполнения на «текущий момент времени».
 +  - Создать триггер, который исполняется при появлении в шине сообщения о бизнес-операции «Утверждён приказ о проекте». Этот триггер в свою очередь помещает в шине данных, с помощью всё той же API «InsertTimerEvent», сообщение о запуске бизнес-операции «№2 - Проверка подготовки паспорта проекта», но устанавливает дату запуска этого сообщения, в соответствие с регламентом, например, через двое суток от текущей даты. 
 +  - Как только наступит дата и время запланированного запуска второго сообщения, оно появится в шине данных и на него смогут отреагировать триггеры, выполняющие проверку, оповещения и прочие необходимые операции. Один из этих триггеров может в свою очередь запланировать повторную проверку, поместив с помощью API «InsertTimerEvent» ещё одно сообщение о запуске бизнес-операции «№2 - Проверка подготовки паспорта проекта» со сроком, например, ещё через сутки. Таких циклов эскалации проблемы можно создать столько, сколько необходимо.
 +\\
 +===== Как регистрировать в ADVANTA «бизнес-операции» =====
 +Перечень «бизнес-операций» и расписание регулярного таймера для их запуска можно найти в панели администратора ADVANTA, на странице «Дополнительные сервисы / Расписание пользовательских бизнес-операций»:
 +
 +{{ :product:api:picture_1.png?800nolink&400 |}}
 +// Рисунок 1. Запуск справочника пользовательских бизнес-операций //
 +
 +\\
 +\\
 +Чтобы создать новую «бизнес-операцию» перейдите в справочник по ссылке «Справочник бизнес-операций»:
 +\\
 +
 +{{ :product:api:picture_2.png?500nolink&400 |}}
 +//Рисунок 2. Переход в справочник бизнес-операций//
 +
 +\\
 +\\
 +На странице справочника «бизнес-операций» нажмите кнопку «Добавить»:
 +
 +{{ :product:api:picture_3.png?500nolink&400 |}}
 +//Рисунок 3. Добавление бизнес-операции//
 +
 +\\
 +\\
 +Введите название новой бизнес-операции и нажмите «Сохранить»:
 +
 +{{ :product:api:picture_4.png?500nolink&400 |}}
 +//Рисунок 4. Создание новой бизнес-операции//
 +
 +\\
 +\\
 +Операция появится в справочнике. Ей будет присвоен внутренний код, который потребуется при вызове API «InsertTimerEvent»:
 +
 +{{ :product:api:picture_5.png?500nolink&400 |}}
 +//Рисунок 5. Новая операция в справочнике бизнес-операций//
 +
 +\\
 +\\
 +Если требуется реализовать регулярную, повторяющуюся бизнес-операцию, настройте запуск по таймеру. Это можно сделать, вернувшись на страницу расписания бизнес-операций (меню «Дополнительные сервисы / Расписание пользовательских бизнес-операций»).
 +Если требуется однократная операция, которая будет помещаться в шину через API «InsertTimerEvent», расписание не требуется.
 +
 +<callout type="primary">Примечание! Следует подчеркнуть, что справочник бизнес-операций служит лишь для присвоения кода. Логика действий при появлении в шине сообщения о выполнении этой бизнес-операции закладывается в триггерах, реагирующих на это сообщение</callout>