Сценарий — это код на языке C#, который позволяет автоматизировать некоторые этапы процесса. Чаще всего сценарии применяются в операциях Сценарий. Также вы можете использовать сценарии в следующих настройках процесса:
- маркеры операций;
- вычисление значения служебной переменной шлюза;
- условие перехода из шлюза;
- эскалация операции;
- создание динамической формы задачи, определяемой сценарием;
- смена статуса экземпляра процесса;
- расчёт метрик и показателей процесса;
- создание динамической зоны ответственности, определяемой сценарием.
С помощью сценария можно выполнять действия:
- вычислять значения контекстных переменных и обрабатывать операции с ними;
- загружать формы объектов и определять значения их свойств;
- загружать формы документов;
- изменять значения атрибутов документов и РКК;
- взаимодействовать с объектами ELMA, а также с другими информационными системами.
Все сценарии, созданные в черновике процесса, образуют модуль сценариев процесса и отображаются на странице процесса на вкладке Сценарии. Здесь вы можете создать новый сценарий процесса, а также перейти к редактированию модуля сценариев.
Для работы с модулем сценариев опубликованных версий процесса перейдите в дизайнер в раздел Сценарии.
Ознакомиться с примерами сценариев для моделирования процессов можно в Базе знаний.
Важно: обратите внимание на рекомендации в Базе знаний по работе с клиентскими сценариями во втором рантайме.
Создание сценария
Создать сценарий при моделировании процесса можно одним из следующих способов:
- на странице процесса на вкладке Сценарии нажмите + Сценарий;
- на графической схеме процесса в настройках элемента в поле выбора сценария нажмите .
В открывшемся окне введите название сценария и нажмите Сохранить. Если название сценария задано, перейдите к написанию кода в редакторе сценариев.
Название сценария
Название сценария по умолчанию создаётся на основе имени элемента, который инициирует обращение к этому сценарию. При этом используется метод транслитерации. В зависимости от условий выполнения сценария его название формируется по следующим шаблонам:
- <ИмяЭлемента>OnViewLoad — если сценарий выполняется при загрузке формы;
- <ИмяЭлемента>OnChange — если сценарий выполняется при изменении значения элемента, инициирующего обращение к сценарию;
- <ИмяЭлемента>ButtonOnClick — если сценарий выполняется при нажатии на кнопку.
Если свойство типа «Блок» инициирует обращение к сценарию, то название сценария включает в себя имя свойства и имя родительского элемента: <ИмяБлока><ИмяСвойстваБлока>.
Название сценария автоматически создаётся на основе имени элемента, инициирующего обращение к сценарию, в следующих случаях:
- в операции Сценарий;
- для определения условий перехода из шлюза;
- для вычисления значения служебной переменной шлюза;
- для определения условий выполнения операции;
- для определения условий эскалации операции;
- в динамической зоне ответственности, определяемой сценарием.
Если сценарий выполняется при прерывании экземпляра процесса, его название автоматически создаётся на основе названия процесса.
Вы можете задать название сценария вручную. При этом можно использовать цифры и знак нижнего подчёркивания. Название сценария нужно начинать с буквы. Если вы введёте название на русском языке, то произойдет транслитерация.
Использовать транслитерацию нежелательно. Рекомендуем указывать название переведённым на английский язык.
ELMA API
ELMA API — это набор методов для разработки сценариев, которые собраны в иерархическую структуру. Подробнее об этих методах и примерах их использования читайте в справке по ELMA API. Также о разработке сценариев читайте в Базе знаний.
Уникальный идентификатор элемента
У каждого элемента на графической модели процесса есть уникальный идентификатор. Используйте его в сценариях для доступа к элементу.
Чтобы скопировать значение идентификатора в буфер обмена, в настройках элемента на вкладке Общие в поле Название нажмите . Затем вставьте значение в сценарий.
Пример кода для поиска задачи с уникальным идентификатором afc26787-e786-4f4d-80b4-e6821ed5a237:
Guid taskGiud = new Guid("afc26787-e786-4f4d-80b4-e6821ed5a237");
var task = EleWise.ELMA.Tasks.Managers.TaskManager.Instance.LoadOrNull(taskGiud);
Нашли опечатку? Выделите текст, нажмите ctrl + enter и оповестите нас