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

Материал из TaxiMaster
Версия от 14:34, 24 мая 2022; 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 задаются в настройках события. Также в настройках события можно задать признак "Учитывать только остановки, когда заказ в состоянии "Клиент в машине", если требуется фиксировать остановки, только когда водитель уже едет с клиентом. Также можно задать признак "Не считать остановку при потере связи с TMDriver или при отсутствии координат автомобиля", чтобы блокировать срабатывание этого события при отсутствии координат автомобиля из-за потери связи с GPS или из-за разрыва связи между TMDriver и сервером.
      13. По запросу CommonAPI - событие срабатывает при получении CommonAPI запроса run_system_event. В этом запросе должно передаваться ИД события, которое надо запустить, а также могут передаваться произвольные дополнительные параметры для события. Эти параметры можно использовать в условиях для события или действия, и эти параметры можно получать в скриптовом действии.
      14. Получен результат опроса водителя - срабатывает при получении ответа на опрос водителя или при истечении таймаута опроса водителя. Для этого типа события можно использовать стандартные условия по полю "Опрос водителя: атрибут", которые позволяют по-разному реагировать на результаты опроса водителя в зависимости от того, какое значение атрибута выбрано в опросе. Успешность получения ответа на опрос можно определить с помощью поля "Опрос водителя: получен ответ" в стандартном условии.
      15. Создание операции по счету - срабатывает при создании операции по счету водителя, клиента или партнера. В настройках события можно выбрать тип получателя, для которого будет срабатывать событие: водитель, клиент или партнер.
      16. Создание дорожного события - срабатывает при создании дорожного события. Специальных настроек для этого события нет. Но в условиях для события можно задать фильтр по типу дорожного события.
      17. Создание водителя-кандидата - срабатывает, когда водитель-кандидат присылает свою заявку. Специальных настроек для этого события нет. Но в условиях для события можно задать фильтр по городу, группе экипажей, атрибутам водителя или автомобиля, которые указал кандидат в заявке.
      18. Принято решение по водителю-кандидату - срабатывает, когда ответственный сотрудник принимает решение по заявке водителя-кандидата: принять или отклонить. В настройках события можно задать статус: "Успешно принят" или "Отклонен". В условиях для события можно задать фильтр по городу, группе экипажей, атрибутам водителя или автомобиля, которые указал кандидат в заявке. А также если кандидат был успешно принят, то можно использовать все условия по водителю, автомобилю и экипажу, которые были созданы при принятии заявки.
      19. Отказ водителя от заказа - срабатывает при отказе водителя от заказа. Специальных настроек для этого события нет. Но для этого типа события и его действий доступны следующие стандартные условия: "Отказ водителя от заказа: причина отказа" (значения из справочника "Причины отказов водителей"), "Отказ водителя от заказа: тип отказа" (варианты: "Отказ вручную", "Отказ по таймауту"), "Отказ водителя от заказа: отказ от принятого заказа", "Отказ водителя от заказа: отказ от предварительного заказа", "Отказ водителя от заказа: отказ от заказа в очереди", "Отказ водителя от заказа: водитель был онлайн".
      20. Водитель объявил тревогу - срабатывает, когда водитель объявляет тревогу через TMDriver. Специальных настроек для этого события нет.
      21. Включение/выключение режима "Перерыв" в софтфоне - срабатывает при включении/ выключении режима "Перерыв" в софтфоне. В параметрах события можно задать тип: включение или выключение режима "Перерыв"; пользователя - если не задано, то событие будет срабатывать для всех пользователей; линию - если не задано, то событие будет срабатывать для всех линий. В скриптовом действии, запускаемом по событию типа "Включение/выключение режима "Перерыв" в софтфоне" можно получить получить ИД пользователя, у которого меняется режим "Перерыв", тип действия (включение или выключение режима "Перерыв"), список линий, для которых включается/выключается режим "Перерыв". Кроме того, информация о включении и выключении режима "Перерыв" в софтфоне будет сохраняться в журнал контроля действий пользователей.
      22. Получен отзыв по заказу - срабатывает при оценке заказа водителем или клиентом. В параметрах события можно выбрать тип автора: "Клиент" или "Водитель". Для данного события и для его действий будут доступны дополнительные условия по таким полям: "Отзыв по заказу: оценка" и "Отзыв по заказу: атрибут". Это позволит настраивать разную логику действий в зависимости от того, какая оценка и какие атрибуты были выбраны в отзыве. В скриптовое действие, запускаемое по событию типа "Получен отзыв по заказу", добавлены функции для получения всей необходимой информации по отзыву.
      23. Проход по списку автомобилей - запускается из действия типа "Запуск события прохода по списку" другого события. В параметрах задается признак "Прерывать проход по списку при завершении работы сервера" - если он включен, то при завершении работы сервера проход по списку будет прерываться. А если этот признак выключен, то TMServer при завершении работы будет ожидать, пока проход по списку не дойдет до конца. Еще имеются дополнительные параметры, определяющие, для каких именно объектов надо делать проход: заблокированные, незаблокированные, все. Также можно задавать дополнительные условия, по которым могут фильтроваться объекты, для которых делается проход.
      24. Проход по списку водителей - запускается из действия типа "Запуск события прохода по списку" другого события. В параметрах задается признак "Прерывать проход по списку при завершении работы сервера" - если он включен, то при завершении работы сервера проход по списку будет прерываться. А если этот признак выключен, то TMServer при завершении работы будет ожидать, пока проход по списку не дойдет до конца. Еще имеются дополнительные параметры, определяющие, для каких именно объектов надо делать проход: уволенные / неуволенные, заблокированные / незаблокированные, все. Также можно задавать дополнительные условия, по которым могут фильтроваться объекты, для которых делается проход.
      25. Проход по списку экипажей - запускается из действия типа "Запуск события прохода по списку" другого события. В параметрах задается признак "Прерывать проход по списку при завершении работы сервера" - если он включен, то при завершении работы сервера проход по списку будет прерываться. А если этот признак выключен, то TMServer при завершении работы будет ожидать, пока проход по списку не дойдет до конца. Также можно задавать дополнительные условия, по которым могут фильтроваться объекты, для которых делается проход.
      26. Проход по списку текущих/предварительных заказов - запускается из действия типа "Запуск события прохода по списку" другого события. В параметрах задается признак "Прерывать проход по списку при завершении работы сервера" - если он включен, то при завершении работы сервера проход по списку будет прерываться. А если этот признак выключен, то TMServer при завершении работы будет ожидать, пока проход по списку не дойдет до конца. Также можно задавать дополнительные условия, по которым могут фильтроваться объекты, для которых делается проход.
      27. Проход по списку клиентов - запускается из действия типа "Запуск события прохода по списку" другого события. В параметрах задается признак "Прерывать проход по списку при завершении работы сервера" - если он включен, то при завершении работы сервера проход по списку будет прерываться. А если этот признак выключен, то TMServer при завершении работы будет ожидать, пока проход по списку не дойдет до конца. Для событий прохода по списку клиентов рекомендуется включать данный признак, так как клиентов может быть очень много. Еще имеются дополнительные параметры, определяющие, для каких именно объектов надо делать проход: заблокированные, незаблокированные, все. Также можно задавать дополнительные условия, по которым могут фильтроваться объекты, для которых делается проход.
      28. Изменение автомобиля - срабатывает при редактировании карточки автомобиля. В параметрах можно выбирать поля, изменения которых необходимо отслеживать. Если не выбрано ни одного поля, то событие будет срабатывать при любых изменениях.
      29. Изменение водителя - срабатывает при редактировании карточки водителя. В параметрах можно выбирать поля, изменения которых необходимо отслеживать. Если не выбрано ни одного поля, то событие будет срабатывать при любых изменениях.
      30. Изменение экипажа - срабатывает при редактировании карточки экипажа. В параметрах можно выбирать поля, изменения которых необходимо отслеживать. Если не выбрано ни одного поля, то событие будет срабатывать при любых изменениях.
      31. Изменение клиента - срабатывает при редактировании карточки клиента. В параметрах можно выбирать поля, изменения которых необходимо отслеживать. Если не выбрано ни одного поля, то событие будет срабатывать при любых изменениях.
    3. «Теги» - произвольные теги, по которым в дальнейшем можно отфильтровать события в окне справочника системных событий.
    4. «Условия срабатывания события». Для каждого события можно задать дополнительные условия, при которых будет срабатывать это событие. Условия для срабатывания событий бывают следующих типов: стандартные, расширенные и скриптовые. Можно создавать сложные условия с использованием операций И, ИЛИ, НЕ. Условия и операции будут образовывать "дерево".
      1. Операция "И" - для срабатывания события должны выполниться все указанные в данном операторе условия.
      2. Операция "ИЛИ" - для срабатывания события должно выполниться хотя бы одно из указанных в данном операторе условий.
      3. Операция "НЕ" - для срабатывания события указанное условие должно не выполниться, то есть событие выполняется всегда, когда указанное условие неверно.
    5. «Действия», которые будут выполнены при срабатывании события.
      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. Пересчет стоимости заказа. В настройках действия можно задать признак необходимости выполнить подбор тарифа.
        22. Сброс рейтинга водителя - сбрасывает рейтинг водителя.
        23. Сброс рейтинга клиента - будет сбрасывать рейтинг клиента.
        24. Запуск программы. Выполняет запуск сторонней программы. В данном типе действий можно использовать теги (в аргументах для запуска программы).
        25. Фотоосмотр. Создает фотоосмотр.
        26. Установить в заказе значение "В текущие за". В настройках действия можно задать значение поля "В текущие за", которое надо установить в заказе.
        27. Запуск события прохода по списку. В настройках действия необходимо выбрать одно из ранее созданных событий прохода по списку. Действия запуска прохода по списку можно использовать во всех системных событиях, кроме событий прохода по списку.
      2. Условия срабатывания действия. Для каждого действия можно задать дополнительные условия, при которых будет срабатывать это действие. Для всех действий условия проверяются сразу при срабатывании системного события, подходят ли они по условиям, а потом последовательно выполняются те, что подошли. Условия для срабатывания действий бывают следующих типов: стандартные, расширенные и скриптовые. Можно создавать сложные условия с использованием операций И, ИЛИ, НЕ. Условия и операции будут образовывать "дерево".
        1. Операция "И" - для срабатывания действия должны выполниться все указанные в данном операторе условия.
        2. Операция "ИЛИ" - для срабатывания действия должно выполниться хотя бы одно из указанных в данном операторе условий.
        3. Операция "НЕ" - для срабатывания действия указанное условие должно не выполниться, то есть действие выполняется всегда, когда указанное условие неверно.
      3. Установить «Признак активности действия».
      4. Нажать "ОК" для сохранения.
    6. Установить «Признак активности события».
  3. Нажать "ОК" для сохранения.

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

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

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

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

Расширенные условия

В условиях типа "Расширенный" требуется задать "Выражение 1", "Оператор сравнения" и "Выражение 2".

Выражения могут включать арифметические операции: Плюс, Минус, Умножить, Разделить.

При составлении выражений с использованием операций будут проверяться типы аргументов, чтобы нельзя было создать бессмысленные выражения. Например, нельзя складывать между собой числовой параметр и строковый. Если в выражении требуется изменить параметр типа Дата, Время или Дата/время на фиксированное количество секунд, минут, часов или дней, то специально для этого в качестве аргумента арифметической операции можно использовать такие поля: "Общее: N секунд", "Общее: N минут", "Общее: N часов", "Общее: N дней". Также надо учитывать, что поля "Общее: текущее время" и "Общее: текущее дата/время" отличаются друг от друга: первое содержит только текущее время и нулевую дату, а второе содержит текущее время и текущую дату, то есть "Общее: текущее дата/время" = "Общее: текущая дата" + "Общее: текущее время".

Расширенные условия срабатывания событий и действий.png

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

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

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

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

Изменение порядка действий

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

Системные события - Изменение порядка действий.png

Копирование системных событий и действий

Существует возможность копировать системные события и действия.

Копирование события

Для того чтобы скопировать событие, необходимо:

  1. В справочнике системных событий выделить курсором событие.
  2. Нажать кнопку "Копировать событие".
  3. Откроется новая карточка для создания системного события, и в нее скопируются данные из выделенного события. К названию нового события в конец допишется текст " - копия", и новое событие будет по умолчанию неактивным.

Копирование действия

Для того чтобы скопировать действие, необходимо:

  1. В карточке системного события на вкладке "Действия" выделить курсором действие.
  2. Нажать кнопку "Копировать действие".
  3. Выделенное действие скопируется и добавится в конец списка действий. Новое действие будет по умолчанию неактивным.

Примеры настройки системного события

Примеры системных событий: