Справка по системе Платформа ELMA BPM
×
Меню

Эскалация операции

Эскалация – это автоматический выход из операции процесса по таймеру, при обработке ошибки или при выполнении определенного условия, задаваемого сценарием. Для операций в системе ELMA возможны следующие типы эскалации:
Эскалация задается в настройках переходов. По умолчанию эскалация для переходов не задана. Для того, чтобы открыть окно настроек перехода, необходимо дважды нажать кнопкой мыши по нему на графической модели или выбрать пункт Настройки в контекстном меню перехода. Кнопка Изменить, расположенная в открывшемся окне в блоке Эскалация, позволяет выбрать требуемый тип эскалации (рис. 2, 9, 13).
Эскалация реализована для операций в следующих разделах:
Раздел "BPMN"
Раздел "Документооборот"
Примечание
Для всех вышеперечисленных операций (за исключением операции Пользовательская задача), для которых требуется создать эскалацию, нужно предусмотреть минимум один исходящий переход, активируемый без эскалации. Для операции Пользовательская задача в качестве исходящего перехода может быть использован только один переход с эскалацией.

Эскалация по таймеру

На графической модели процесса переход, для которого активирована эскалация по таймеру, обозначается иконкой (рис. 1).
Рис. 1. Эскалация по таймеру
Вкладки окна настроек перехода с эскалацией по таймеру
Вкладка "Общие"
Для активации эскалации по таймеру необходимо на данной вкладке выбрать тип эскалации "Таймер" (рис. 2).
Рис. 2. Настройки перехода
После активации эскалации по таймеру в окне настроек перехода появятся вкладки Настройки таймера и Уведомления.
Вкладка "Настройки таймера"
На этой вкладке можно настроить срок, по истечении которого сработает таймер и произойдет эскалация операции (процесс продолжит работу по настраиваемому переходу). Настройки, задаваемые на этой вкладке, выполняются аналогично настройкам, задаваемым для настроек таймера промежуточного события.
Тип запуска таймера
Точное время – данная настройка позволяет указать точное время, когда произойдет эскалация операции по настраиваемому переходу. Если процесс достигнет операции позже времени, указанного в поле Значение времени или контекстной переменной, эскалация операции по настраиваемому переходу произойдет автоматически.
Рис. 3. Настройки перехода. Вкладка "Настройки таймера". Тип запуска "Точное время"
Относительное время – данная настройка позволяет указать период времени, по истечении которого произойдет эскалация операции по настраиваемому переходу.
Рис. 4. Настройки перехода. Вкладка "Настройки таймера". Тип запуска "Относительное время"
Цикл запуска позволяет настроить регулярное срабатывание таймера в соответствии с календарем. В отличии от типа запуска Точное время, данная настройка не обрабатывает предыдущие моменты срабатывания таймера, ожидая наступления следующего цикла для эскалации операции.
Рис. 5. Настройки перехода. Вкладка "Настройки таймера". Тип запуска "Цикл запуска"
Вкладка "Уведомления"
На вкладке Уведомления можно указать пользователей, которым будет приходить сообщение о том, что произошла эскалация операции.
Рис. 6. Настройки перехода. Вкладка "Уведомления"
Чтобы добавить пользователей, нажмите кнопку Добавить и выберите нужных пользователей – элемент(ы) оргструктуры или роли в процессе (рис. 6). Пользователи, занимающие эти должности или роли в процессе будут получать сообщение о том, что в процессе произошла эскалация.
Чтобы удалить пользователя из списка информируемых нажмите кнопку напротив элемента списка.
Рис. 7. Настройки перехода. Вкладка "Уведомления". Кнопка "Добавить"

Эскалация "Обработка ошибки"

На графической модели процесса переход, для которого настроена эскалация Обработка ошибки, обозначается иконкой (рис. 8). Эскалация данного типа может быть установлена только на исходящем переходе из сценария.
Рис. 8. Эскалация "Обработка ошибки"
Вкладки окна настроек перехода с эскалацией "Обработка ошибки"
Вкладка "Общие"
Для активации эскалации Обработка ошибки необходимо на данной вкладке выбрать тип эскалации "Обработка ошибки" (рис. 9).
Рис. 9. Настройки перехода
После активации эскалации Обработка ошибки в окне настроек перехода будут отображены дополнительные вкладки Настройки и Уведомления.
Вкладка "Настройки"
На данной вкладке (рис. 10) осуществляется добавление и/или выбор контекстной переменной типа Ошибка выполнения сценария, в которую в дальнейшем будет записан текст ошибки, если она возникнет при выполнении сценария.
Рис. 10. Настройки перехода. Вкладка "Настройки"
Данная переменная (рис. 11) предназначена для последующего использования в процессе при реализации логики обработки ошибок. В настройках типа переменной может быть указан вид отображения ошибки на форме: упрощенный (краткое описание ошибки) или полный (развернутое описание ошибки).
Рис. 11. Настройки перехода. Вкладка "Настройки". Контекстная переменная типа "Ошибка выполнения сценария"
Вкладка "Уведомления"
Содержимое данной вкладки и набор доступных действий аналогичны вкладке Уведомления (рис. 6) в диалоговом окне настройки эскалации по таймеру.
Вкладка "Дополнительно"
Содержимое данной вкладки и набор доступных действий аналогичны вкладке Дополнительно в диалоговом окне настройки простого перехода.

Эскалация по сценарию

Для активации эскалации операции по сценарию требуется указать сценарий и период проверки сценария. Сценарий должен возвращать значение true или false (здесь и далее речь идет о типе bool языка C#, на котором пишутся сценарии в системе ELMA). При достижении экземпляром процесса операции, для которой настраивается эскалация, с указанной периодичностью запускается сценарий, указанный на вкладке Настройки сценария. Если сценарий возвращает значение true, происходит эскалация операции по настраиваемому переходу.
На графической модели процесса переход, на котором настроена эскалация по сценарию, обозначается иконкой (рис. 12).
Рис. 12. Эскалация по сценарию
Вкладки окна настроек перехода с эскалацией по сценарию
Вкладка "Общие"
Для активации эскалации по сценарию необходимо на данной вкладке выбрать тип эскалации "Сценарий" (рис. 13).
Рис. 13. Настройки перехода
После активации эскалации по сценарию в окне настроек перехода появятся вкладки Настройки сценария и Уведомления.
Вкладка "Настройки сценария"
На вкладке Настройки сценария можно указать сценарий, запускаемый для проверки необходимости эскалации операции и период проверки сценария.
Сценарий должен возвращать значение true или false.
Рис. 14. Настройки перехода. Вкладка "Настройки сценария"
Период проверки сценария – промежуток времени, через который будет запускаться сценарий. По умолчанию сценарий запускается каждые 15 минут.
Для выбора сценария нажмите кнопку Указать сценарий.
После загрузки модуля сценариев в выпадающем списке можно выбрать один из уже существующих сценариев (рис. 15).
Если функция проверки необходимости эскалации операции не существует в сценариях процесса, её можно добавить, нажав кнопку (). Кнопка Перейти позволяет перейти к выбранному сценарию на вкладке Сценарии процесса. На данной вкладке доступны специальные инструменты написания сценариев, такие как синтаксическая подсветка кода, технология автодополнения функций и переменных IntelliSense, ссылки на сборки и веб-сервисы.
Рис. 15. Настройки перехода. Вкладка "Настройки сценария". Выбор сценария

Пример эскалации по сценарию

Эскалация – это автоматический выход из операции процесса по таймеру или при выполнении определенного условия, задаваемого сценарием.
Рассмотрим процесс "Продажа по безналу", в котором сотрудник отдела продаж должен связаться с клиентом, выставить ему счет и подтвердить оплату по счету. По умолчанию счет действует в течении трех дней, однако сотрудник отдела продаж может договориться на конкретную дату, когда клиент готов оплатить счет. Если счет не оплачен в срок, менеджер должен уточнить дату оплаты счета. Наш процесс состоит из пяти операций: "Согласовать заказ с клиентом", "Выставить счет", "Подтвердить оплату по счету", "Уточнить дату оплаты счета" и "Отгрузить заказ" и сценария, записывающего дату выставления счета (рис. 16).
Рис. 16. Пример процесса с эскалацией по сценарию
В сценарии "Записать дату выставления счета" качестве даты выставления счета будем использовать текущую дату:
public void SaveBillDate(Context context)
{
        context.DataVystavleniyaScheta = DateTime.Now;
}
Эскалация из операции "Подтвердить оплату по счету" к операции "Уточнить дату оплаты счета" происходит автоматически через 3 дня при условии, что предварительно не согласована конкретная дата оплаты. Иначе эскалация происходит на следующий день после согласованной даты оплаты. Если оплата по счету подтверждена, на производство уходит задача "Отгрузить товар". Соответствующий сценарий будет выглядеть следующим образом:
public bool CheckDate(Context context)
{
        if ((context.PredpolagaemayaDataOplaty != null) && (DateTime.Now >= context.PredpolagaemayaDataOplaty.Value.AddDays(1)))
        {
                return true;
        } else if (DateTime.Now >= context.DataVystavleniyaScheta.Value.AddDays(3))
        {
                return true;
        } else
        {
                return false;
        }
}
Рис. 17. Пример процесса с эскалацией по сценарию. Карта процесса после эскалации
См. также: