Archive Packer / Графический элемент «Создать архив»

Графический элемент «Создать архив»

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

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

Настройка процесса с блоком «Создать архив»

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

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

Схема бизнес-процесса архивации может выглядеть следующим образом:

work-with-archive-packer-1

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

Затем на правой панели инструментов перейдите на вкладку Интеграции. Перетащите на схему блок Создать архив.

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

На форме финальной задачи вынесите поле, которое по завершении процесса будет заполнено ссылкой для скачивания архива в формате .zip.

Настройка блока «Создать архив»

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

Вкладка «Основное»

Укажите общую информацию об архиве:

work-with-archive-packer-2

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

Вкладка «Входные и выходные атрибуты»

На этой вкладке поля настроек блока сопоставляются с контекстом процесса или приложения. Сопоставляемые переменные должны быть одного типа:

work-with-archive-packer-3

  • Входные переменные — укажите данные для архивации:
    • Название архива — название, которое будет присвоено архиву (без указания расширения .zip). Тип переменной: Строка;
    • Файлы — файлы для автоматической генерации в архив. Тип переменной: Файлы;
  • Выходные переменные — выберите переменные, в которые будет записан результат работы блока:
    • Архив — сформированный файл архива. Тип переменной: Файлы.

Свойство JSON, а также атрибуты для отслеживания диагностических данных Ответ сервиса (create), Идентификатор запроса и Ответ сервиса (get) заполняются при использовании скрипта для передачи данных в блок. В данном примере это не требуется, так как свойства передаются из предшествующей задачи.  

Вкладка «Время выполнения»

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

Вкладка «Обработка ошибок»

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

work-with-archive-packer-4

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

После завершения настроек нажмите кнопку Сохранить.  

Использование скрипта для передачи данных в блок «Создать архив»

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

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

Для этого в дизайнере бизнес-процесса на вкладке Скрипт пропишите скрипт для передачи данных с помощью JSON.

Скрипт может выглядеть следующим образом:

work-with-archive-packer-5

В контексте процесса добавьте переменную типа Строка (Текст), которая будет соответствовать в настройках блока Создать архив входному атрибуту JSON. В ходе выполнения процесса свойство заполняется, например, следующими данными:

{
    archive_name : "название файла архива (без расширения)",
    directory : "идентификатор (guid) папки в разделе «Файлы» ELMA365, куда будет загружен созданный архив",
         files : [
           {
             download_url : "ссылка на скачивание архива",
             file_name : "название файла в архиве",
             folder : "папка внутри архива/может быть вложенной/может быть пустым значением для корня"
           }
         ]
  }

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

При использовании JSON вы также можете добавить в контекст процесса переменные для отслеживания случаев некорректной обработки запроса сервером. Это выходные атрибуты блока Создать архив:

  • Ответ сервиса (create) — результат получения сервером запроса на архивацию. Тип переменной: Строка (Текст);
  • Идентификатор запроса — идентификационный номер запроса. Тип переменной: Строка;
  • Ответ сервиса (get) — результат отправки сервером данных по запросу на архивацию. Тип переменной: Строка (Текст).