Справочник "Системные события"

Материал из TaxiMaster
Версия от 14:21, 12 мая 2021; TechnicalWriter (обсуждение | вклад) (Новая страница: «'''Системные события''' - очень гибкий и сложный инструмент, поэтому к его настройке нужно…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Системные события - очень гибкий и сложный инструмент, поэтому к его настройке нужно подходить обдуманно и аккуратно.

Интересная информация

Если после создания системного события появилась проблема с зацикливанием этого события, что привело к блокированию работы, то в файле TMServer.xml нужно прописать такую настройку:

«<use_system_events>0</use_system_events>»

Она заблокирует выполнение действий для системных событий. Это позволит нормально запустить TMServer и Рабочее место ТМ, чтобы выключить в справочнике системных событий нужные события.

После этого можно будет либо удалить указанную настройку из файла TMServer.xml, либо задать в настройке значение «1» вместо «0». После изменения настройки в файле TMServer.xml достаточно зайти в форму настроек TMServer и нажать "ОК".

Справочник "Системные события" - справочник, который позволяет указать различные события, на которые должна реагировать система. Можно задать условия, при которых надо реагировать на то или иное событие. Для каждого события можно настроить набор действий, которые должны выполняться при срабатывании события.

Также для действий тоже можно задавать свои условия, при которых должны будут срабатывать эти действия.

Справочник Системные события.png

Добавление системного события

Чтобы добавить новое системное событие, необходимо:

  1. В справочнике "Системные события" нажать «Добавить».
  2. В открывшемся окне заполнить следующие поля:
    1. «Наименование».
    2. «Тип события» - выбирается из фиксированного списка. При редактировании тип события изменить нельзя. Типы событий бывают:
      1. По расписанию - в настройках события можно задать расписание, по которому будет срабатывать событие.
      2. Создание заказа - срабатывает после создания заказа. Дополнительных настроек нет.
      3. Изменение заказа - срабатывает после изменения заказа. В настройках события можно выбрать, при изменении каких полей заказа должно срабатывать данное событие. Если не выбрано ни одно из полей, то событие будет срабатывать при любом изменении заказа.
      4. Завершение заказа - срабатывает при завершении заказа. В настройках события можно задать, для каких типов завершения заказа должно срабатывать данное событие: при успешном завершении заказа, при неуспешном завершении заказа или при любом завершении заказа. Также данный тип события не будет срабатывать при изменении в выполненном заказе состояния с одного завершенного на другое завершенное.
      5. Срабатывает через N секунд после изменения состояния заказа - в настройках события можно задать, после перехода в какое состояние заказа запускать отсчет времени, а также таймаут в секундах для срабатывания события. Событие не будет срабатывать, если заказ поменяет свое состояние до истечения таймаута. Также в настройках данного события можно задать признак "Выполнять просроченные события после перезапуска системы", чтобы выполнить события, которые оказались пропущенными из-за перезапуска TMServer. Но есть вероятность двойного срабатывания события при включении этого признака: до перезапуска TMServer и после перезапуска TMServer. Чтобы обеспечить только один запуск данного события, можно при срабатывании события с помощью дополнительного действия выставлять в заказе атрибут, который будет сигнализировать, что событие по заказу уже сработало. И добавить условие для срабатывания события, проверяющее, что данный атрибут еще не выставлен в заказе.
      6. Срабатывает за N минут до времени подачи заказа - в настройках события задается, за сколько минут до наступления времени подачи будет срабатывать событие. Можно указать и отрицательное значение, тогда событие будет срабатывать через N минут после наступления времени подачи. Также в настройках данного события можно задать признак "Выполнять просроченные события после перезапуска системы" - работает точно так же, как в типе события "Срабатывает через N секунд после изменения состояния заказа".
      7. Создание события в журнале событий - событие срабатывает после создания события в журнале событий (автоматически или оператором). В настройках события можно задать тип события из журнала событий, для которых должно срабатывать системное событие. Если эта настройка не задана, то системное событие будет срабатывать при создании любого события в журнале событий.
      8. Экипаж вышел на линию - срабатывает после того, как экипаж выходит на линию. Событие будет срабатывать как при выходе на линию через TMDriver, так и при выводе экипажа на линию оператором. Дополнительных настроек нет.
      9. Экипаж ушел с линии - срабатывает после того, как экипаж уходит с линии. Событие будет срабатывать как при уходе с линии через TMDriver, так и при уводе экипажа с линии оператором. Дополнительных настроек нет.
      10. Въезд в зону контроля проезда - срабатывает при въезде экипажа в зону контроля проезда. Специальных настроек для этого события нет. Но в условиях для события можно задать фильтр по зоне контроля проезда.
      11. Потеря связи с TMDriver - срабатывает после того, как теряется связь с TMDriver. В настройках события можно задать, через сколько минут после потери связи должно срабатывать событие. Также в настройках события можно задать флаг "Только во время выполнения заказа", чтобы событие срабатывало только в том случае, если водитель сейчас на заказе.
      12. Остановка автомобиля по заказу - событие срабатывает, если водитель выполняет заказ, и при этом он за X минут проехал менее Y метров. Значения X и Y задаются в настройках события. Также в настройках события можно задать признак "Учитывать только остановки, когда заказ в состоянии "Клиент в машине", если требуется фиксировать остановки, только когда водитель уже едет с клиентом.
      13. По запросу CommonAPI - событие срабатывает при получении CommonAPI запроса run_system_event. В этом запросе должно передаваться ИД события, которое надо запустить, а также могут передаваться произвольные дополнительные параметры для события. Эти параметры можно использовать в условиях для события или действия, и эти параметры можно получать в скриптовом действии.
      14. Получен результат опроса водителя - срабатывает при получении ответа на опрос водителя или при истечении таймаута опроса водителя.
      15. Создание операции по счету - срабатывает при создании операции по счету водителя, клиента или партнера. В настройках события можно выбрать тип получателя, для которого будет срабатывать событие: водитель, клиент или партнер.
    3. «Условия срабатывания события». Для каждого события можно задать дополнительные условия, при которых будет срабатывать это событие. Если указано несколько условий, то для срабатывания события должны выполниться все условия. Условия для срабатывания событий бывают двух типов: стандартные и скриптовые.
    4. «Действия», которые будут выполнены при срабатывании события.
      1. Тип действия - выбирается списка. Список доступных типов действий зависит от типа события. Например, тип действия "Изменение состояния заказа" доступен, только если событие связано с заказом. Типы действия бывают:
        1. Задается скриптом - запуск скрипта, в котором можно реализовать как стандартные действия, так и те, которые нельзя указать стандартными средствами.
        2. Изменение группы клиента. В настройках действия задается новая группа клиентов.
        3. Блокировка/разблокировка клиента. В настройках действия задается тип: блокировка или разблокировка, а также текст причины блокировки, который будет сохраняться в карточку клиента при блокировке.
        4. Блокировка/разблокировка автомобиля. В настройках действия задается тип: блокировка или разблокировка, а также текст причины блокировки, который будет сохраняться в карточку автомобиля при блокировке.
        5. Постоянная блокировка/разблокировка водителя. В настройках действия задается тип: блокировка или разблокировка, а также текст причины блокировки, который будет сохраняться в карточку водителя при блокировке.
        6. Временная блокировка/разблокировка водителя. В настройках действия задается тип: блокировка или разблокировка, а также длительность блокировки в минутах.
        7. Изменение состояния заказа. В настройках действия задается новое состояние заказа. Примечания:
          1. При переводе заказа из состояния типа "В работе" в состояние типа "Принят" экипаж будет автоматически сниматься с заказа.
          2. Нельзя менять состояния завершенных заказов.
          3. Нельзя заказ из состоянии типа "Принят" перевести в состояние типа "В работе" или "Выполнен", так как для этих состояний необходимо, чтобы в заказе был задан экипаж.
        8. Изменение состояния экипажа. В настройках действия задается новое состояние экипажа. Примечания:
          1. Нельзя менять состояние экипажа, который не на линии.
          2. Если экипаж в состоянии типа "На заказе", то экипаж можно перевести только в другое состояние типа "На заказе".
        9. Изменение группы экипажей в заказе. В настройках действия задается новая группа экипажей для заказа. Если на заказ уже назначен экипаж из другой группы, то он не будет сброшен с заказа. Если надо сбросить экипаж с заказа, то лучше использовать действие изменения состояния заказа с переводом заказа в состояние типа "Принят".
        10. Отправка СМС. В настройках действия можно выбрать тип получателя: "Водитель", "Клиент" или "Произвольный". Для варианта "Произвольный" требуется дополнительно указать номер телефона, на который будет отправлено СМС. Также в настройках действия задается текст СМС, который может содержать стандартные теги.
        11. Отзвон. В настройках действия можно выбрать тип получателя: "Водитель", "Клиент" или "Произвольный". Для варианта "Произвольный" требуется дополнительно указать номер телефона, на который будет производиться отзвон. Также в настройках действия задается название сценария для отзвона. В запросе к колцентру в параметре startparam1 будет передаваться номер телефона, на который надо совершить отзвон, а в параметре startparam2 может передаваться ИД заказа, если событие было по заказу.
        12. Отправка E-mail. В настройках действия можно выбрать тип получателя: "Водитель", "Клиент" или "Произвольный". Для варианта "Произвольный" требуется дополнительно указать E-mail адрес, на который будет отправлено письмо. Также в настройках действия задается шаблон E-mail.
        13. Создание операции по счету (клиента, водителя или партнера). В настройках действия можно выбрать тип получателя: "Водитель", "Клиент" или "Партнер". Также можно указать тип счета, тип операции (начисление/списание), фиксированную сумму операции или процент от суммы заказа, название операции, комментарий к операции.
        14. Создание динамического приоритета по водителю. В настройках действия задается название приоритета, значение приоритета (можно указать и отрицательное значение для уменьшения приоритета), продолжительность действия приоритета, признак "Учитывать только время на линии".
        15. Изменение атрибута - изменение значения атрибута. В настройках действия можно выбрать тип владельца атрибута: "Автомобиль", "Водитель", "Экипаж", "Клиент", "Заказ", "Глобальный атрибут". После этого надо выбрать конкретный атрибут из списка доступных для данного типа владельца. Далее надо выбрать тип изменения атрибута: "Установить значение", "Увеличить", "Уменьшить" (варианты "Увеличить" и "Уменьшить" доступны только для атрибутов типа "Число"). Далее в настройках действия надо задать новое значение атрибута. Если выбрано действие "Увеличить" или "Уменьшить", то значение атрибута будет изменяться на заданное значение.
        16. Создание события в журнале событий. В настройках действия можно будет указать тип события из журнала событий, название события и комментарий к событию. В создаваемое событие для журнала событий будет автоматически подставляться ИД заказа, экипаж и клиент в зависимости от того, по какому событию срабатывает данное действие.
        17. Сообщение в TMDriver. В настройках действия задается текст сообщения. Если водитель не подключен к серверу, то в TMDriver автоматически будет отправлен push.
        18. Уведомление операторов. В настройках действия задается текст уведомления. Если системное событие сработало по заказу, то в уведомлении будет передаваться ИД заказа, так что операторы смогут быстро открыть карточку заказа, кликнув по соответствующей кнопке в панели с уведомлением.
        19. Запись в лог. В настройках действия задается текст сообщения. Запись будет производиться в файл «Logs\TMServer\SystemEvents.log».
        20. Опрос водителя - создает опрос для водителя, с которым связано событие. В настройках действия выбирается тип опроса. Типы опроса задаются в соответствующем справочнике.
        21. Пересчет стоимости заказа. В настройках действия можно задать признак необходимости выполнить подбор тарифа.
      2. Условия срабатывания действия. Для каждого действия можно задать дополнительные условия, при которых будет срабатывать это действие. Если указано несколько условий, то для срабатывания действия должны выполниться все условия. Для всех действий условия проверяются сразу при срабатывании системного события, подходят ли они по условиям, а потом последовательно выполняются те, что подошли. Условия для срабатывания действий бывают двух типов: стандартные и скриптовые.
      3. Установить «Признак активности действия».
      4. Нажать "ОК" для сохранения.
    5. Установить «Признак активности события».
  3. Нажать "ОК" для сохранения.

Условия срабатывания событий и действий

Стандартные условия

Для стандартного условия можно задать:

  • Поле, значение которого будет сравниваться. В качестве поля можно выбрать одно из полей заказа, экипажа, клиента, водителя или автомобиля. Список доступных полей зависит от типа системного события. Например, поля заказа доступны только в том случае, если системное событие связано с заказом. Если в качестве поля выбирается "Общее: глобальный атрибут", "Заказ: атрибут", "Экипаж: атрибут" или "Клиент: атрибут", то дополнительно потребуется выбрать конкретный атрибут, значение которого будет проверяться в условии.
  • Оператор сравнения. Он может принимать значения:
    • Равно.
    • Не равно.
    • Больше. Доступно только для полей, имеющих числовое значение.
    • Больше или равно. Доступно только для полей, имеющих числовое значение.
    • Меньше. Доступно только для полей, имеющих числовое значение.
    • Меньше или равно. Доступно только для полей, имеющих числовое значение.
  • Значение для сравнения. Зависит от выбранного поля. Значение для сравнения нужно либо выбрать из фиксированного выпадающего списка, либо ввести вручную, либо указать "флажком".
Стандартные условия срабатывания событий и действий.png

Скриптовые условия

Скриптовые условия позволяют проверять более сложные ситуации. С помощью скриптовых условий можно в том числе объединять отдельные условия по правилу "ИЛИ".

При необходимости для создания скриптового условия обратитесь в отдел технической поддержки support@bitmaster.ru

Скриптовые условия срабатывания событий и действий.png