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

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

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

Для ветвления процесса в зависимости от наступления тех или иных событий используется логический оператор [ Исключающее “ИЛИ” по событиям ]. События, от выполнения которых зависит ветвление процесса, помещаются на исходящие потоки логического оператора (Рис. 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. Сохраните процесс.

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