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

Скрипт

Такое действие можно использовать для создания интеграций, например, для отправки запросов во внешнюю систему. Настройки действия выполняются на трех вкладках: Настройки, Контекст, Сценарии.

Вкладка «Настройки»

exten_8

На вкладке Настройки укажите:

  • Название — наименование действия;
  • Название по умолчанию — наименование, отображающееся на блоке действия при добавлении его на схему бизнес-процесса;
  • Цвет блока — цвет, в который будет окрашен блок действия на схеме процесса;
  • Описание описание функциональных возможностей действия и его особенностей;
  • Устаревшее — при обновлении модуля действие можно отметить как устаревшее. В этом случае оно перестанет отображаться на панели инструментов в дизайнере процессов. Устаревший блок нельзя будет добавить на вновь создаваемые схемы процессов. Однако устаревшие действия продолжат работать без изменений в уже созданных процессах;
  • Сообщение для устаревшего блока — текст предупреждения о том, что процесс содержит устаревшие блоки. Сообщение показывается пользователю при публикации процесса с устаревшими действиями;
  • Модель выполнения — способ выполнения действия:
    • Синхронное — простое выполнение заданного в действии сценария, то есть синхронное исполнение функции action;
    • Запрос результатапосле выполнения заданного сценария во внешний сервис отправится запрос о значении статуса. Для реализации такого подхода в действии нужно определить функцию проверки результата check. Она должна вызываться с заданной периодичностью. Бизнес-процесс продолжится только после того, как функция check вернёт ответ true;
    • Обратный вызов — в обращении к внешнему сервису передаётся url, на который необходимо вернуть результат. То есть в параметрах вызова передаётся адрес, который будет вызван после выполнения задачи внешним сервисом, и на который будут отправлены результаты выполнения. Url ответа передаётся как входной аргумент функции action. Любой запрос на данный url передается в функцию callback. После этого выполнение процесса продолжится;
  • Количество повторов при ошибке — укажите количество попыток выполнения действия;
  • Пауза между повторами при ошибке (сек)* — определите частоту попыток.

Вкладка «Контекст»

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

Чтобы создать новую контекстную переменную, нажмите +Добавить. Подробнее о типах переменных читайте в статье «Типы данных в системе».

ld1

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

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

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

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

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

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

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

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

Вкладка «Сценарии»

На вкладке Сценарии создается сценарий действия. Для написания сценариев используется язык программирования TypeScript. Более подробно про принципы написания сценариев в ELMA365 вы можете прочитать в справке по TypeScript SDK.

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

Чтобы разрешить доступ к константе Global в верхнем меню нажмите Настройки. В открывшемся окне выберите опцию Global.

api-2

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

Нашли опечатку? Выделите текст, нажмите ctrl + enter и оповестите нас