Очереди – это способ группировать однотипные Задачи, создавать потоки Задач.

Можно рассматривать Очереди как способ «хранения списка данных», которые требуется обработать.

Подобные группировки используются для того, чтобы внешняя система (или Роботы) добавляли Задачи в Очередь, а другие Роботы выполняли пункты Очереди Задач, то есть извлекали Задачи из определённой Очереди и делали работу.

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

Очереди содержат набор Задач, при этом каждая Задача — это набор параметров в виде пар “Параметр и Значение”, которые могут указывать Роботу, что именно ему нужно сделать в рамках выполнения Процесса.

Задачи добавляются в Очередь тремя способами:

  • вручную пользователем с помощью Оркестратора
  • Роботом с помощью блока “Добавить задачу в очередь”
  • с помощью вызовов API.

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

Можно создавать неограниченное количество Очередей, в каждой Очереди находится поток задач и к каждой Задаче можно привязать словарь (hashtable) в виде набора пар “Ключ = Значение”. При получении Задачи из Очереди вы получаете данный словарь и параметры и можете их обрабатывать. После обработки можно изменить Статус задачи.

Интерфейс экрана Очереди

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

Создание новой Очереди

Для создания новой Очереди кликните на кнопку Создать в таблице Очереди на Экране

и заполните все поля карточки:

Имя, Описание (не является обязательным).

После заполнения наименования Очереди и прочих параметров следует сохранить данные, нажав ОК.

Новая Очередь отобразится на Экране в списке.

Обратите внимание! После создания любого элемента ему присваивается GUID – уникальный номер, который можно использовать в дальнейшей работе.

Для удобства рядом с GUID расположена иконка, при нажатии на которую копируется в буфер обмена текущее значение из поля GUID.

Настройки окна Очереди

Заполнить необходимые параметры задачи.

Создание новой Задачи

Для создания новой Задачи кликните на кнопку Создать в таблице Задачи и заполните все поля карточки: Имя, Описание, Комментарий и Приоритет.

Поля Описание и комментарий не являются обязательными. Также вы можете указать Приоритет Задачи (низкий, нормальный, высокий).

Статусы

Задачи могут иметь различные статусы:

  • Создана (New) – новая Задача
  • В процессе (InProgress) — в работе. Находится в процессе работы Робота
  • Успешно (Success) — выполнена
  • Неудачно (Приложение) – Failed (Application) — Ошибка (Приложение). Статус присваивается Задачам, если возникшая проблема может быть решена при повторном выполнении Задачи (например, при зависании системы, с которой работает Робот)
  • Неудачно (Бизнес) – Failed (Business) — Ошибка (Бизнес). Используется, когда автоматическая попытка сигнализирует о проблемах с входными данными или со Статусами внешних информационных систем, с которыми работает Робот, и повторное выполнение Задачи ожидаемо будет безрезультатным.
  • Отложена до – Postponed – Отложена. Статус автоматически устанавливается из сценария Дизайнера в случае, если мы хотим отложить Задачу до определенного времени, чтобы Оркестратор в течение этого времени вернул эту Задачу обратно в Очередь
  • Заброшена (Abandoned) – статус проставляется, если Задача была взята в работу, но в течение более 1 суток она не была выполнена

Статус Задачи может быть установлен в момент создания новой Задачи или изменен для уже существующей Задачи.

При постановке Задачи из Очереди статус Задачи должен быть изменен на “InProgress”. Статус задачи не назначается автоматически. Иногда не требуется автоматически проставлять статус “InProgress”, например, если вы хотите только посмотреть на задачу и определить, должен ли конкретный Робот заниматься той или иной Задачей.

Приоритеты

Каждая Задача имеет Приоритет:

  • Низкий
  • Нормальный
  • Высокий
  • Дедлайн

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

Приоритет влияет на то, в каком порядке Задачи будут получены Роботом. Первыми Робот получит Задачи с высоким приоритетом, затем с нормальным, далее с низким.

Приоритет Дедлайн устанавливается у задачи, у которой установлен параметр Дедлайн (дата крайнего срока), и дедлайн-дата уже подошла. Такая задача будет выполняться с наивысшим приоритетом.

Комментарии

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

Эту опцию удобно использовать в процессе логирования, чтобы объяснить причину невыполнения той или иной Задачи.

Параметры

Для каждой Задачи может быть установлен набор Параметров (пара Параметр/Значение). Благодаря этой опции мы можем передавать суть Задачи, например, мы можем указать ID документа, с которым должен работать Робот, а также указать путь к папке, в которой расположен документ.

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

К Задачам из сценария обращаются по GUID, а не по названию, которое указано в Оркестраторе.

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

Пока Статус задачи не изменен на “InProgress”, ее может взять любой Робот, но со статусом “InProgress” Задача становится “забронирована” за конкретным Роботом.