Skip to Content

Добавить в очередь

Eng: Add to queue

alt

Компонент добавляет новый элемент в очередь обмена данными Оркестратора. Добавленному элементу присваивается статус New.

Предварительные условия

  • Подключение к Orchestrator
  • Созданная очередь в Orchestrator
  • Соответствующие права доступа

Пример отображения нового элемента в очереди Оркестратора:

Таблица с элементами очереди в Оркестраторе

Свойства

Обязательные для заполнения свойства отмечены символом *. Описание общих свойств см. в разделе Свойства элемента.

Процесс:

До версии 1.24.10 свойство Ключ называлось Идентификатор.

  1. Очередь* [String] — название очереди, в которую следует добавить элемент (транзакцию). Должно совпадать с названием очереди в Оркестраторе. Чувствительно к регистру. Пример: Queue_name.
  2. Значение* [String] — значение, которое следует присвоить элементу очереди. Значение можно указать в формате JSON либо в виде переменной. Ниже приведен пример значения в 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"}]\}}}
  3. Таблица* [DataTable] — если значение имеет вид таблицы, укажите название табличной переменной. В этом случае свойство Значение заполнять не нужно. Если заполнены и Значение, и Таблица, то запишутся только табличные данные.
  4. Ключ [String] — натуральный ключ элемента очереди (не то же самое, что ID). Ключ выполняет схожую функцию с ID, но ID присваивается системой автоматически при добавлении элемента в очередь, имеет формат Guid, и его нельзя изменить. Натуральный ключ задается вручную как дополнительный идентификатор. Как правило, он используется для упрощенного распознавания элемента. Пример: "mykey1".
  5. Метаданные [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"}
  6. Тэги [List<string>] — теги для фильтрации элементов. Пример: List{"tag"}.
  7. Приоритет [Int32] — приоритет добавляемого элемента. Приоритет используется для сортировки элементов при извлечении из очереди. По умолчанию задано значение 0 — высший приоритет. Порядок сортировки следующий:
    • Если приоритета нет (или он совпадает у нескольких элементов), то элементы сортируются только по дате добавления.
    • Если приоритет указан, то для сортировки используется сначала он, а потом дата добавления. Чем выше значение, тем ниже приоритет элемента. Значение не может быть отрицательным, положительные числа ограничены типом данных свойства.
  8. Недоступен до [DateTime] — Блокировка обработки до указанной даты. Пример: new DateTime(2022, 9, 19).
  9. Устранить после [DateTime] — Автоматическое удаление после даты.
  10. Забирать [Boolean] — если после добавления элемента в очередь его нужно немедленно взять в работу, поставьте галочку. В результате другие роботы Оркестратора не успеют взять ваш элемент в обработку.
  11. Таймаут [Int32] — лимит времени операции в миллисекундах. По умолчанию 3000. Если по истечении лимита операция не выполнена, робот закончит работу с ошибкой. С версии 1.24.8 таймаут по умолчанию составляет 30000(30 секунд).

Вывод:

  • Элемент LTools.Enterprise.Model.QueueItem — название переменной, в которую будет сохранен созданный элемент очереди.

Если метаданные неизвестны

Если на момент создания элемента метаданные неизвестны, но вы хотите добавить их позднее, действуйте по алгоритму:

  • Добавьте элемент очереди с пустыми метаданными.
  • Извлеките элемент с помощью активности Получить из очереди или Получить по ID/фильтру с установленным чекбоксом Занимать.
  • _Удалите старый элемент либо измените его статус на Success с помощью компонента Изменить статус в очереди
  • Добавьте новый элемент с помощью активности Добавить в очередь и запишите в него нужные метаданные.

Только код

Ниже приведен пример использования элемента в процессе с типом Только код (Pure code):

LTools.Enterprise.OrchestratorApp.WriteQueue(wf, "queue", "data");