Документация по настройке процессов

Работа с коллекциями данных

У элементов [Читать данные] и [Вызвать веб-сервис] могут быть исходящие параметры типа “Коллекция”. Чтобы иметь возможность работать с элементами коллекции (отдельными записями одной коллекции), ее необходимо обработать.

Есть несколько способов обработки коллекции:

  • Коллекцию записей можно передать в другой параметр типа “коллекция”. Например, коллекцию записей можно передать в элемент [Вызвать веб-сервис], для которого задан параметр вызова с типом “коллекция”.

  • Также обработать параметры типа “коллекция” можно с помощью элемента [Задание-сценарий]. Например, можно использовать сценарий для преобразования коллекций записей в отдельные записи, которые можно передать в другие элементы процесса.

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

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

Наиболее удобный способ работы с коллекциями данных — это использование подпроцессов. Этот способ не требует написания кода, как элемент [Задание-сценарий], а также не ограничен возможностями стороннего веб-сервиса, как элемент [Вызвать веб-сервис].

Общая последовательность обработки коллекции с помощью элемента [Подпроцесс]:

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

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

3.Сопоставьте входящие и двунаправленные параметры элемента [Подпроцесс] с параметрами коллекции.

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

Создайте новый или отредактируйте существующий процесс, который будет работать с экземпляром коллекции как с отдельной записью. Например, для отправки email-сообщения контактам из списка (коллекции) подготовьте процесс, который будет отправлять письмо отдельному контакту (Рис. 65).

Рис. 65 — Базовый подпроцесс для отправки email

chapter_process_principles_mail.png 

Входящие параметры подпроцесса должны соответствовать встроенным параметрам коллекции. Например, для отправки email-сообщения нужен адрес электронной почты контакта. Это означает, что коллекция данных должна содержать колонку [Email], а процесс отправки письма должен содержать соответствующий входящий параметр [Email], значение которого будет передаваться в элемент [Отправить email].

На заметку

Перейти к диаграмме подпроцесса можно, нажав btn_bpms_principles_add.png (для создания нового подпроцесса) либо btn_bpms_principles_edit.png (для редактирования существующего подпроцесса) в поле [Какой процесс запустить] панели настроек элемента [Подпроцесс]. Подробнее читайте в статье “Настройки элемента [Подпроцесс]”.

Настроить элемент [Подпроцесс]

Добавьте элемент [Подпроцесс] на диаграмму процесса, из которого необходимо получить параметр коллекции. В поле [Какой процес запустить] панели настроек элемента [Подпроцесс] выберите процесс, который будет обрабатывать экземпляры коллекции, и настройте получение входящих параметров выбранного процесса (Рис. 66):

Рис. 66 — Передача параметров коллекции данных

chapter_process_principles_mapping_data_collection.gif 

Важно

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

В результате элемент [Подпроцесс] поэлементно обработает всю коллекцию данных. Многоэкземплярный подпроцесс запускает отдельные экземпляры подпроцесса для каждого из элементов коллекции данных, используя значения параметров.

Многоэкземплярый подпроцесс может выполняться в следующих режимах (Рис. 67):

Рис. 67 — Выбор режима выполнения многоэкземплярного подпроцесса

chapter_process_principles_selecting_execution_method.png 

  • Последовательный. Экземпляры подпроцесса запускаются последовательно. Новый экземпляр подпроцесса стартует после выполнения предыдущего экземпляра. Этот режим установлен по умолчанию.

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

После выполнения последнего экземпляра подпроцесса элемент [Подпроцесс] актуализирует значения своих исходящих и двунаправленных параметров из соответствующих параметров выполненного экземпляра и активирует свои исходящие потоки.

Это означает что, после обработки коллекции данных элемент [Подпроцесс] может вернуть новую коллекцию, основанную на данных входящей коллекции. Например, для подпроцесса отправки уведомлений коллекции контактов можно выполнить настройку таким образом, чтобы в результате получать коллекцию результатов отправки и/или ошибок.

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

Смотрите также

Работа с данными

Был ли данный материал полезен?

Как можно улучшить эту статью?