Модули расширения системы > Пользовательские модули > Действия в бизнес-процессах / Особенности действий в бизнес-процессах

Особенности действий в бизнес-процессах

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

Сопоставление контекста действия и процесса (биндинг)

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

  1. В настройках действия на вкладке Контекст задайте входные и выходные параметры:
  • Входные параметры — заполняются до выполнения действия. В них передаются данные из бизнес-процесса, в котором используется действие;
  • Выходные параметры — заполняются после выполнения действия. Передаются из действия в контекст бизнес-процесса, или напрямую в поля приложения, используемого в процессе.
  1. Отметьте, какие переменные являются входными и выходными.
  2. Сохраните контекст и опубликуйте действие.

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

  1. Дважды нажмите на пользовательском действии или добавьте новое с правой панели.
  2. На вкладке Основное в поле Присвоить выходные атрибуты в выберите нужную опцию:

exten-13

  • Контекст процесса — значения выходных атрибутов действия можно будет присвоить контекстным переменным бизнес-процесса;
  • Приложение — значения выходных атрибутов действия можно будет присвоить полям приложения, добавленного в контекст бизнес-процесса;
  • Переменная* — в контексте процесса выберите приложение, с полями которого будут сопоставляться выходные атрибуты действия.
  1. Перейдите на вкладку Входные и выходные атрибуты.
  2. Откроется окно с формой сопоставления, в ней необходимо сопоставить контекст действия и процесса или приложения.

Стандартная форма сопоставления содержит две колонки. В столбцах Шаг указаны входные и выходные переменные действия. Столбец Процесс в каждой из колонок служит для выбора переменных процесса, в котором действие используется.

  1. Нажмите Выберите поле напротив входной или выходной переменной действия и в выпадающем списке укажите переменную процесса, которую хотите сопоставить. Сопоставляемые переменные должны быть одного типа.
  2. Для завершения настройки нажмите Сохранить.

Изменить форму сопоставления

Вы можете создать свою форму сопоставления. Для этого на вкладке Контекст нажмите кнопку Создать форму. Важно: после того, как форма будет создана, вернуться к базовой форме будет нельзя. Система предупредит вас об этом, и вы сможете либо продолжить, либо отменить изменение формы. 

ld2

Нажмите кнопку ОК, чтобы перейти в дизайнер интерфейсов для создания формы.

Когда форма будет создана, в дизайнере бизнес-процессов в настройках действия вместо вкладки Входные и выходные атрибуты появится вкладка Настройки действия. На ней будет отображена настроенная вами форма.

Создание входных и выходных переменных с помощью сценария

Входные и выходные переменные пользовательского действия можно создавать на форме сопоставления с помощью сценария.

начало внимание

Создание переменных с помощью сценария возможно только для пользовательских действий типа Скрипт.

конец внимание

Чтобы создавать переменные с помощью сценария:

  1. На вкладке Действия в БП пользовательского модуля создайте действие типа Скрипт или выберите ранее созданное действие.
  2. Создайте в действии свою форму сопоставления, как описано выше, и откройте ее.
  3. Перейдите на вкладку Шаблон и с правой панели вынесите на форму виджет Динамический биндинг.
  4. На вкладке Контекст формы создайте переменную типа Произвольный тип, в которую будет записываться набор входных и выходных переменных.
  5. Сохраните и опубликуйте форму.
  6. Чтобы контекстная переменная стала доступна в сценарии, закройте форму и откройте снова, нажав кнопку Изменить форму на вкладке Контекст действия.
  7. Откройте настройки виджета Динамический биндинг и на вкладке Основные в опции Динамические поля выберите переменную, созданную на шаге 4. Сохраните настройки виджета.

dynamic_binding-_2

  1. На вкладке Сценарии формы разместите клиентский скрипт, который будет создавать входные и выходные переменные и сохранять их в ранее созданную переменную типа Произвольный тип:

async function FillOut(): Promise<void> {
    ViewContext.data.bindings = 
    {
        'field1': {name: 'Поле 1', type: DynamicFieldType.String, input: true,},
        'field2': {name: 'Поле 2', type: DynamicFieldType.String, output: true,},
        'field3': {name: 'Поле 3', type: DynamicFieldType.File, input: true, output: true,},
    }
}

  1. Настройте параметры запуска сценария. Сценарий можно запускать с помощью управляющего элемента на форме, например, кнопки, или при наступлении какого-либо события. Пример текста сценария и настройки запуска приведён в «ELMA365 Community».
  2. Сохраните и опубликуйте форму сопоставления.
  3. После того как вы определили переменную, к ней можно обратиться на вкладке Сценарии в действии бизнес‑процесса. Например, вы можете задать переменной значение:

async function action(): Promise {
   Context.data['bindings.field2'] = `Значение переменной`;
}

Когда вы откроете действие на схеме бизнес-процесса и перейдёте на вкладку Настройки, динамические поля с входными и выходными параметрами будут созданы автоматически, либо вы сможете запустить скрипт для их генерации. Подробнее о динамических полях читайте в справке ELMA365 TS SDK.

dynamic_binding_1

Эскалация

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

Чтобы настроить эскалацию, дважды нажмите на блок на схеме процесса. Перейдите на вкладку Обработка ошибок.

exten-12

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

Различия действий «Вызов процесса» и «Запуск процесса»

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

 

Вызов процесса

пользовательское действие

Запуск процесса

системное действие

Отслеживается в мониторе процессов

Нет

Да

История выполнения каждого шага доступна пользователям

Нет

Да

Асинхронный запуск

Нет

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

Да

Можно продолжить выполнение текущего процесса, не дожидаясь окончания дочернего.

Отображение

Не отображается в списке процессов в разделе Администрирование. Нельзя запустить напрямую в интерфейсе ELMA365, нажав на кнопку Запуск процесса. Выполняется только с помощью действия типа Вызов Процесса.

Самостоятельный бизнес-процесс. Отображается в разделе Администрирование > Бизнес-процессы.

Обновление действий

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