Использовать события

Продукты
Все продукты

Использовать события для ветвления процесса 

Для ветвления процесса в зависимости от наступления тех или иных событий используется логический оператор Исключающее “ИЛИ” по событиям. События, от выполнения которых зависит ветвление процесса, помещаются на исходящие потоки логического оператора (Рис. 1).

Рис. 1 — Использование логического оператора Исключающее “ИЛИ” по событиям
scr_process_creation_designer_event_gateway_example.png

Пример. После создания договора необходимо отправить его на визирование. Дальнейшее выполнение бизнес-процесса будет зависеть от результата визирования. При получении визы договор необходимо подписать. Если виза была отклонена, то договор необходимо отправить на доработку.

Для создания договора используется элемент Открыть страницу редактирования. Настройки на странице идентичны настройкам при создании нового документа.

Для отправки договора на визирование необходимо использовать элемент Автогененируемая страница. Настройка данного элемента описана в статье Элемент процесса Автогенерируемая страница. После отправки договора на визирование необходимо добавить визу на страницу договора. Для добавления визы используется элемент Добавить данные.

Схема с реализованным ветвлением представлена на Рис. 2.

Рис. 2 — Процесс визирования договора
scr_process_creation_designer_process_with_events_contracts.png

Чтобы построить ветвление процесса, исходящий поток каждой ветви которого должен активироваться в зависимости от результата:

  1. Поместите логический оператор Исключающее “ИЛИ” по событиям после действия “Добавить визу” и соедините потоком управления.

  2. Поместите элемент Обработка сигнала после логического оператора и соедините потоком управления.

  3. Заполните страницу настройки элемента Обработка сигнала в случае успешного визирования договора (Рис. 3):

    Рис. 3 — Настройки элемента Обработка сигнала для успешного визирования
    scr_process_creation_designer_signal_for_visa.png
  4. В поле Сигнал какого типа получен? выберите значение “Получен сигнал от объекта”.

  5. Нажмите на поле Идентификатор записи, чтобы открыть окно определения значения параметра:

    1. Выберите элемент Добавить визу на вкладке Элементы процесса.

    2. Кликните дважды на значении параметра Id созданной записи. Выбранное значение появится в верхней части окна определения значения параметра.

  6. Нажмите кнопку Сохранить.
  7. Укажите объект, от которого необходимо получить сигнал. В нашем примере это объект “Виза договора”.
  8. В поле Какое событие должно произойти? укажите “Изменение записи”.
  9. Выберите колонку, изменения в которой активируют сигнал. В нашем примере это колонка “Состояние”.
  10. Настройте условия, которым должна соответствовать запись после изменения. Чтобы сигнал активировался после установки визы и открылась страница ранее созданного договора для его подписания, состояние визы должно быть положительным.
  11. Поместите еще один элемент Обработка сигнала после логического оператора и соедините потоком управления. Это сигнал “Отправить на доработку”, который должен срабатывать, если визирующий отклонил визу.

  12. Для запуска обрабатывающего сигнала заполните панель настройки элемента Обработка сигнала (Рис. 4): Настройки идентичны настройкам сигнала, который срабатывает после получения визы, с той разницей, что в условиях фильтрации необходимо указать “Состояние=Отрицательная”.

    Рис. 4 — Настройки элемента Обработка сигнала в случае отклонения визы
    scr_process_creation_designer_signal_for_visa_cancel.png
  13. Добавьте элемент Открыть страницу редактирования после элементов “Договор завизирован” и “Отправить на доработку”. В случае положительной визы открывается ранее созданный договор, в котором необходимо изменить состояние на “Подписан”. В случае отрицательной визы открывается страница ранее созданного договора для доработки.

  14. Сохраните процесс.

    Важно. Логический оператор Исключающее “ИЛИ” по событиям требует публикации процесса. В ходе публикации осуществляется проверка всех созданных процессов.

Запускать процесс автоматически после изменений в Creatio 

Бизнес-процессы могут запускаться автоматически после добавления, изменения или удаления записи в Creatio. Чтобы настроить такой процесс, используйте начальный элемент Сигнал как стартовое событие. Детальное описание элемента читайте в статье Начальное событие Cигнал.

Например, процесс обработки нового клиента может запускаться автоматически каждый раз при регистрации новой записи клиента в Creatio.

  1. Для автоматического запуска процесса после изменений в Creatio используйте начальное событие Cигнал (Рис. 5) и заполните область настройки элемента (Рис. 6):
    Рис. 5 — Процесс со стартовым событием Cигнал
    scr_chapter_process_designer_start_main_process_with_signal.png
    Рис. 6 — Настройка параметров начального сигнала
    scr_chapter_process_designer_start_signal_param_main_process.png
    1. В поле Сигнал какого типа получен? выберите значение “Получен сигнал от объекта”.

    2. В поле Объект выберите объект (раздел, деталь или справочник), изменения которого автоматически запустят процесс. Например, для запуска процесса в ответ на изменения в разделе Контрагенты, выберите объект “Контрагент”.

    3. В поле Какое событие должно произойти? укажите тип события (добавление, изменение или удаление записи) в выбранном объекте, которое запустит процесс автоматически. Например, чтобы запускать процесс каждый раз при добавлении нового контрагента, выберите значение “Добавление записи”.

    4. Укажите любые дополнительные требования к записи, которая должна инициировать сигнал. Чтобы сигнал срабатывал только при добавлении контрагента типа “Клиент”, установите фильтр “Тип = Клиент”.

  2. Сохраните процесс.

    В результате процесс будет запущен автоматически каждый раз, когда соответствующие изменения будут происходить в записях Creatio. Например, процесс обработки нового клиента запустится при добавлении нового контрагента с типом “Клиент”.

Запускать процесс из другого процесса по сигналу 

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

Например, можно настроить бизнес-процесс “Подготовка к вебинару”, по сигналу из которого будут запускаться несколько параллельных независимых процессов. Это могут быть процессы по отправке напоминаний участникам вебинара, по сбору обратной связи и т. д.

  1. Добавьте элемент Генерация сигнала, который будет передавать сигнал для запуска связанных процессов, на диаграмму бизнес-процесса. Например, связанные процессы могут стартовать после того, как будет выполнена задача “Подтвердить дату вебинара”. Так, элемент Генерация сигнала, который передаст сигнал “Дата вебинара подтверждена”, должен быть добавлен на схему процесса после задачи по подтверждению даты вебинара (Рис. 7).

    Рис. 7 — Элемент Генерация сигнала на диаграмме родительского бизнес-процесса
     scr_chapter_process_designer_prepare_for_webinar.png
  2. В поле Какой сигнал сгенерировать панели настройки свойств элемента Генерация синала укажите название пользовательского сигнала, который будет передаваться. Убедитесь, что указанное название не совпадает с названиями других пользовательских сигналов. Можно использовать произвольные названия сигнала, например “Дата вебинара подтверждена” (Рис. 8).

    Рис. 8 — Панель настройки элемента Генерация сигнала
    scr_chapter_process_designer_throw_signal_setup.png
  3. Добавьте начальный элемент Сигнал на диаграмму связанного процесса, который должен запускаться по сигналу из родительского процесса (Рис. 9)

    Рис. 9 — Начальный элемент процесса, который стартует по произвольному сигналу
    scr_chapter_process_designer_email_reminder.png
  4. Настройте свойства элемента Сигнал (Рис. 10):

    Рис. 10  — Панель настройки элемента Сигнал
    scr_chapter_process_designer_start_signal_setup.png
    1. В поле Сигнал какого типа получен? выберите “Получен произвольный сигнал”.

    2. В поле Сигнал скопируйте название сигнала, указанного в настройках элемента Геренация сигнала основного процесса, например, “Дата вебинара подтверждена”.

  5. Сохраните процесс.

    В результате связанные процессы будут запущены автоматически, после получения соответствующего сигнала из основного процесса.

Запускать процесс в определенное время 

Вы можете запустить бизнес-процесс один раз, в определенную дату, используя элемент Стартовый таймер. Детальное описание элемента читайте в статье Событие Стартовый таймер.

Например, можно запланировать подготовку презентации для клиента на конкретную дату и время.

Чтобы настроить процесс, который выполняется в определенную дату:

  1. Добавьте элемент Стартовый таймер на диаграмме процесса в качестве начального события (Рис. 11) и заполните область настройки элемента (Рис. 12):
    Рис. 11  — Запуск бизнес-процесса в определенную дату
    scr_chapter_process_designer_running_process_once.png
    Рис. 12  — Настройка элемента Стартовый таймер для запуска в определенную дату
    scr_chapter_process_designer_running_process_once_setup.png
    1. В поле Периодичность запуска процесса выберите “Однократно”.

    2. В поле Дата и время запуска укажите дату и время, когда процесс будет запущен.

    3. Повторять при пропуске — отметьте признак в поле Дополнительные настройки, чтобы перезапустить таймер, если он не смог стартовать, например, во время перезагрузки сайта на сервере. В этом случае процесс запустится автоматически в ближайшее доступное время.

    4. Укажите нужную временную зону в поле Часовой пояс. Процесс запустится согласно времени в этом часовом поясе.

  2. Сохраните процесс.

    В результате процесс запустится автоматически, во время, указанное при настройке свойств элемента Стартовый таймер.

Запускать процесс еженедельно 

Вы можете настроить процесс, который запускается автоматически еженедельно, в определенный день и в указанное время.

Так можно настроить процесс отправки напоминаний о вебинаре, который проводится в течение декабря по пятницам.

Для настройки процесса, который запускается автоматически еженедельно:

  1. Добавьте начальный элемент Стартовый таймер на диаграмму процесса (Рис. 13) и настройте его свойства (Рис. 14):
    Рис. 13  — Еженедельный запуск бизнес-процесса
    scr_chapter_process_designer_run_weekly_timer.png
    Рис. 14  — Пример настройки свойств элемента Стартовый таймер для еженедельного запуска процесса
    scr_chapter_process_designer_run_weekly_timer_setup.png
    1. В поле Периодичность запуска процесса выберите “Неделя”.

    2. В поле Время запуска процесса укажите время, в которое должен запускаться процесс.

    3. В поле В какие дни недели запускать? укажите дни недели, в которые процесс будет запускаться.

    4. В блоке Период действия таймера укажите период, в течение которого будет действовать такой режим запуска процесса. Например, если необходимо, чтобы процесс запускался в течение декабря, выберите 01.12.2018 в поле Дата и время начала и 31.12.2018.

    5. Установите признак Повторять при пропуске, чтобы процесс запустился повторно, даже если в указанное время сигнал Стартовый таймер не сработает, например, по причине сбоя сервера. В этом случае процесс запустится автоматически в ближайшее доступное время.

    6. Укажите нужную временную зону в поле Часовой пояс. Процесс запустится по времени этого часового пояса.

  2. Сохраните процесс.

    В результате процесс будет запускаться автоматически, по указанному режиму в указанный период. Так, процесс из нашего примера будет запускаться каждую пятницу в течение октября, в 9:45 утра.

Запускать процесс периодически по cron-выражению 

Для настройки пользовательских режимов запуска бизнес-процессов в Creatio используются cron-выражения. Функциональность сron-выражений позволяет более гибко  настраивать дату и время запуска бизнес-процессов с помощью специальных cron-символов (цифры, слова и/или символы, размещенные в строго определенном порядке). Больше информации о синтаксисе сron-выражений доступно в документации QUARTZ.

Например, можно настроить, чтобы бизнес-процесс запускался в определенное время в 15 день месяца в течение января, февраля и марта.

Для настройки пользовательского режима запуска бизнес-процесса:

  1. Добавьте элемент Стартовый таймер на диаграмму процесса (Рис. 15). Настройте свойства элемента (Рис. 16):
    Рис. 15 — Запуск бизнес-процесса с пользовательской периодичностью
    scr_chapter_process_designer_run_custom_schedule.png
    Рис. 16 — Пример настройки свойств элемента Стартовый таймер для запуска процесса с пользовательской периодичностью
    scr_chapter_process_designer_start_timer_other_frequency.png
    1. В поле Периодичность запуска процесса выберите “Другая периодичность”.

    2. В поле Cron-выражение введите выражение, обозначающее периодичность, с которой будет запускаться процесс. Если введенное cron-выражение корректно, то под полем Cron-выражение вы увидите время и дату запуска процесса в традиционном виде. Например, используйте выражение “0 15 10 15 * ?” для запуска процесса в 10:15 утра 15го дня каждого месяца. Больше информации о cron-выражениях ищите в документации QUARTZ.

    3. В блоке Период действия таймера укажите период, в течение которого будет действовать такой режим запуска процесса. Например, если необходимо, чтобы процесс запускался c января по март 2019, выберите 01.01.2019 в поле Дата и время начала и 31.03.2019 в поле Дата и время завершения.

    4. Установите признак Повторять при пропуске, чтобы процесс запустился повторно, даже если в указанное время сигнал Стартовый таймер не сработает, например, по причине сбоя сервера. В этом случае процесс запустится автоматически в ближайшее доступное время.

    5. Укажите нужную временную зону в поле Часовой пояс. Процесс запустится согласно времени в этом часовом поясе.

  2. Сохраните процесс.

    В результате процесс будет запускаться автоматически, по указанному режиму в указанный период. Например, в 10:15 каждого 15 дня месяца с января по март 2019, по времени UTS.

Запускать процесс по факту поступления сообщения 

Промежуточные сообщения используются для синхронизации независимых потоков в рамках одного процесса. Так, можно настроить бизнес-процесс, который на определенном шаге прекратит выполняться, и будет ожидать поступления определенного сообщения для активации следующего элемента на схеме процесса и продолжения выполнения.

Например, бизнес-процесс может ожидать сообщения об оплате счета, прежде чем переходить на шаг отправки товара.

Для настройки возобновления выполнения процесса при поступлении сообщения:

  1. Добавьте два промежуточных элемента, работающих с сообщениями, на схему процесса (Рис. 17).

    1. Элемент Генерация сообщения разместите на схеме после задачи по процессу, после выполнения которой должно передаваться активирующее процесс сообщение.

    2. Элемент Обработка сообщения разместите перед задачей, которая должна выполняться после поступления сообщения.

      Рис. 17 — Возобновление выполнения процесса после поступления сообщения
      scr_chapter_process_designer_resume_using_message.png
  2. В поле Какое сообщение сгенерировать? панели настройки элемента Генерация сообщения (Рис. 18) введите произвольное сообщение. Текст может быть произвольным, например, “Счет оплачен”.

    Рис. 18 — Панель настройки элемента Генерация ообщения
    scr_chapter_process_designer_throw-message-setup.png
  3. Заполните панель настройки элемента Обработка сообщения (Рис. 19):

    Рис. 19 — Панель настройки элемента Обработка сообщения
    scr_chapter_process_designer_wait_for_message_setup.png
    1. В поле Какое сообщение должно быть получено? скопируйте сообщение, указанное в настройках элемента Генерация сообщения.

    2. Если установить признак Выполнять следующие элементы в фоновом режиме, то все шаги процесса, следующие после данного элемента, будут выполнятсья в фоновом режиме без отображения маски загрузки.

  4. Сохраните процесс.

    В результате выполненных настроек процесс прекратит выполняться на шаге Обработка сообщения и возобновит выполнение только после поступления сообщения, указанного в настройках элемента Генерация сообщения.