Получить из очереди по фильтру

Peek queue by filter

Компонент позволяет получить элементы из очереди Оркестратора в соответствии с настроенным фильтром. Для успешной работы Студия должна быть подключена к Оркестратору.

Как производится получение по фильтру:

  1. Первичная фильтрация. Осуществляется на стороне Оркестратора – элементы очереди фильтруются по всем указанным свойствам, кроме Фильтра по значению.

  2. Вторичная – происходит на стороне робота. Робот получает от Оркестратора элементы после первичной фильтрации и фильтрует их по свойству Фильтр по значению.

  3. Результат сохраняется в переменную вывода – в свойство Элемент.

Получить и сразу занять элементы

Обратите внимание, что в свойствах компонента есть чекбокс Занимать. Установка чекбокса позволяет не только получить элементы по фильтру, но и извлечь их из очереди при условии, что они находятся в статусе New. При извлечении элемента (-ов) другие роботы не смогут брать их в работу. Такие элементы переходят из статуса New в статус InProgress.

Только ваш робот сможет изменять состояние извлеченного элемента или удалить его из очереди. Подробнее о статусах элемента см. здесь.

«Получение» элемента (без чекбокса Занимать) не влияет на статус элемента.

Свойства

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

🔸 Обязательным для заполнения является только свойство Очередь – остальные фильтры настраиваются выборочно.

СвойствоТипОписаниеПример

Процесс:

Очередь*

String

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

"Queque1"

ID

String

Натуральный ключ элемента очереди (не путать с ID). То же самое, что поле Key в модели QueueItem

"MyKey"

Фильтр

String

Фильтр по метаданным в виде регулярного выражения для SQL. Обратите внимание, что если Оркестратор установлен с MS SQL SERVER, то необходимо использовать шаблоны с оператором LIKE (но без указания оператора, только шаблон). Если Оркестратор установлен с PostgreSQL, то доступны функции Regexp

"%1330|15.07.2022%"

Фильтр по значению

String

Фильтр по значению в виде регулярного выражения

"\w+"

Тэги

List<string>

Фильтр по тегам элемента очереди

new List\<string>( ) { "tag1", "tag2", "tag3" }

Логика

-

Настраивает логику поиска элемента по тегам. Доступные значения:

1. Or – будет учитываться один и более тегов. Значение по умолчанию.

2. And – у элемента должны быть все перечисленные теги

Or

Статус

-

Фильтр по статусу элемента очереди. Выберите нужный из выпадающего списка

Error

Занимать

Boolean

По умолчанию флаг НЕАКТИВЕН. Определяет, нужно ли занимать отфильтрованные элементы. Если установлен, то в ответе вернутся лишь те значения, которые можно занять – т.е. изъять из очереди, чтобы далее с ними работал только ваш робот

Страница

Int32

Номер страницы очереди Оркестратора, на которой находится искомый элемент

5

Кол-во

Int32

Определяет, сколько элементов очереди нужно получить. Если не заполнено, вернется только 1

10

Только свои

Boolean

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

Игнорировать спецполя

Boolean

Определяет, нужно ли включать в выборку отсроченные, просроченные и удаленные элементы. По умолчанию такие элементы игнорируются

Таймаут

Int32

Лимит времени операции (мс). Если по истечении лимита операция не выполнена, робот закончит работу с ошибкой

5000

Вывод:

Элемент

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

Только код

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

object ret = LTools.Enterprise.OrchestratorApp.PeekQueueByFilter(wf, "queue", id, ".name", LTools.Enterprise.Model.QueueItemStates2.Any, false, 10);

Дополнительно

Last updated