Добавить в очередь
Eng: Add to queue
Компонент добавляет новый элемент в очередь обмена данными Оркестратора. Добавленному элементу присваивается статус New.
Предварительные условия
- Подключение к Оркестратору
- Созданная очередь в Оркестраторе
- Соответствующие права доступа
Пример отображения нового элемента в очереди Оркестратора:
Свойства
Обязательные для заполнения свойства отмечены символом *
. Описание общих свойств см. в разделе Свойства элемента.
Процесс:
- Очередь* [String] — название очереди, в которую робот добавит элемент. Название чувствительно к регистру и должно совпадать с названием очереди в Оркестраторе. Пример:
Queue_name
. - Значение* [String] — строковое значение, которое робот присвоит элементу очереди. Значение можно указать в виде строки или переменной. Ниже приведен пример значения в JSON (кавычки нужно экранировать):
{\"collection\":{\"row\":{\"field\":[{\"name\":\"FIO\",\"type\":\"text\",\"value\":\"Иванов Иван Иванович\"},{\"name\":\"from\",\"type\":\"text\",\"value\":\"Москва, Улица, Номер дома\"},{\"name\":\"to\",\"type\":\"text\",\"value\":\"Санкт-Петербург,Улица, Номер дома\"}, {\"name\":\"dateAndTime\",\"type\":\"text\",\"value\":\"23.08.2022 19:04\"},{\"name\":\"reestrFullPath\",\"type\":\"text\",\"value\":\"\\\of-FS-01\\\Common\\\Works\\\Название отдела\\\Такси реестр\\\реестры в оплату\\\такси\\\_август.xlsx\"},{\"name\":\"row\",\"type\":\"text\",\"value\":\"70\"}]}}}
- Таблица* [DataTable ] — значение в табличном виде, которое робот запишет в элемент очереди. Обычно это название табличной переменной. Если вы используете таблицу, убедитесь, что свойство Значение не заполнено. Если заполнены и Значение, и Таблица, то запишутся только табличные данные.
- Ключ [String] — натуральный ключ элемента очереди (пример:
"mykey1"
). Ключ задается вручную как дополнительный идентификатор и используется для упрощенного распознавания элемента в очереди. Помимо ключа, элемент будет иметь ID — уникальный идентификатор в формате Guid, который система присвоит автоматически. В отличие от ключа, ID нельзя задать вручную или изменить. - Метаданные [Dictionary<string, string>] — произвольные данные в формате коллекции ключей и значений. Метаданные могут помочь при фильтрации элементов. Пример (кавычки нужно экранировать):
{\"Tags\":\"123\",\"KeyField\":\"FIO\",\"KeyValue\":\"Иван Иванович Иванов\",\"Attempt\":\"1\",\"Loaded\":\"9/20/2022 4:31:12 PM\",\"Completed\":\"9/20/2022 11:38:06 AM\",\"Worktime\":\"1\",\"Priority\":\"0"\,\"Prevworktime\":\"0\",\"Attemptworktime\":\"1\",\"Finished\":\"9/20/2022 11:38:06 AM\",\"LastUpdated\":\"9/20/2022 11:38:06 AM\"}
- Тэги [List<string>] — список тегов для фильтрации элементов. Пример:
List{"tag"}
. - Приоритет [Int32] — приоритет элемента в очереди. Приоритет используется для сортировки элементов при извлечении роботом из очереди. По умолчанию задано значение
0
— высший приоритет. Порядок сортировки следующий:- Если приоритета нет (или он совпадает у нескольких элементов), то элементы сортируются только по дате добавления.
- Если приоритет указан, то для сортировки используется сначала он, а потом дата добавления. Чем выше значение, тем ниже приоритет элемента. Значение не может быть отрицательным, положительные числа ограничены типом данных свойства.
- Недоступен до [DateTime ] — блокировка обработки элемента до указанной даты, если требуется. Пример:
new DateTime(2022, 9, 19)
. - Устранить после [DateTime] — автоматическое удаление после даты.
- Забирать [Boolean] — определяет, должен ли робот немедленно взять элемент в работу после его добавления в очередь. Если параметр включен, то другие роботы Оркестратора не успеют взять добавленный элемент в обработку.
- Таймаут [Int32] — лимит времени операции в миллисекундах. Если по истечении лимита операция не выполнена, робот закончит работу с ошибкой. По умолчанию
3000
(30 секунд).
Вывод:
- Элемент [LTools.Enterprise.Model.QueueItem] — название переменной, в которую будет сохранен созданный элемент очереди.
Если метаданные неизвестны
Если на момент создания элемента метаданные неизвестны, но вы хотите добавить их позднее, действуйте по алгоритму:
- Добавьте элемент очереди с пустыми метаданными.
- Извлеките элемент из очереди одной из следующих активностей:
- Получить из очереди;
- Получить из очереди по ID с установленным чекбоксом Занимать;
- Получить из очереди по фильтру с установленным чекбоксом Занимать.
- Удалите старый элемент либо измените его статус на
Success
с помощью компонента Изменить статус в очереди. - Добавьте новый элемент с помощью активности Добавить в очередь и запишите в него нужные метаданные.
Только код
Ниже приведен пример использования элемента в процессе с типом Только код (Pure code):
C#
LTools.Enterprise.OrchestratorApp.WriteQueue(wf, "queue", "data");