Получить из очереди по фильтру
Peek queue by filter
Компонент получает элементы из очереди Оркестратора в соответствии с настроенным фильтром. Результат сохраняется в переменную. Для успешного запуска/отладки проекта должно быть установлено подключение к Оркестратору.
Этапы фильтрации:
Первичная фильтрация – осуществляется на стороне Оркестратора. Элементы очереди фильтруются по всем указанным свойствам, кроме «Фильтра по значению».
Вторичная фильтрация – осуществляется на стороне робота. На этом этапе робот получает от Оркестратора элементы после первичной фильтрации и фильтрует их по свойству «Фильтр по значению».
Результат сохраняется в переменную вывода – в свойство «Элемент».
Получить и сразу занять элементы
Обратите внимание, что в свойствах компонента есть чекбокс Занимать. Установка чекбокса позволяет при получении элементов сразу же извлекать их из очереди. Излекать из очереди возможно только новые элементы (статус New) – то есть те, которые еще не занял ни один робот.
Если элемент извлечен, то другие роботы не смогут взять его в работу. Данный элемент перейдет из статуса New в статус InProgress. В дальнейшем только ваш робот сможет изменить состояние извлеченного элемента или удалить его из очереди.
Использование компонента без чекбокса Занимать не изменяет статус элемента в очереди.
Свойства
Описание общих свойств элемента см. в разделе Свойства элемента.
🔸 Обязательным для заполнения является только свойство Очередь, остальные фильтры настраиваются выборочно.
Процесс:
Очередь* [String] – название очереди в Оркестраторе. Пример:
"Queque1"
.ID [String] – натуральный ключ элемента очереди, который пользователь указывал при создании элемента. То же самое, что поле 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"
}`.Логика – настраивает логику поиска элемента по тегам. Доступные значения:
Or – будет учитываться один и более тегов. Значение по умолчанию.
And – у элемента должны быть все перечисленные теги.
Статус – фильтр по статусу элемента очереди. Возможные значения:
Any – статус элемента не важен. Значение по умолчанию.
New – новый элемент.
In progress – элемент, извлеченный из очереди определенным роботом, но еще не обработанный.
Success – элемент был извлечен из очереди и успешно обработан.
Error – элемент был извлечен из очереди, но его обработка завершилась с ошибкой общего вида.
Business Error – элемент был извлечен из очереди, но его обработка завершилась с бизнес-ошибкой.
Занимать [Boolean] – по умолчанию чекбокс НЕАКТИВЕН. Определяет, нужно ли извлекать из очереди отфильтрованные элементы. Если чекбокс установлен, то в ответе вернутся лишь те значения, которые можно занять – изъять из очереди, чтобы его мог обработать только ваш робот.
Игнорировать спецполя [Boolean] – определяет, нужно ли включать в выборку отсроченные, просроченные и логически удаленные элементы (которые не удаляли из БД). По умолчанию чекбокс выключен – перечисленные элементы в выборку не входят. При использовании свойства Игнорировать спецполя следует снять галочку в свойстве Занимать.
Страница [Int32] – номер страницы очереди Оркестратора, на которой находится искомый элемент. Пример:
5
.Кол-во [Int32] – определяет, сколько элементов очереди нужно получить. Если не заполнено, вернется 1 элемент. Пример:
10
.Только свои [Boolean] – при установке чекбокса будут получены только те элементы, которые были добавлены в очередь с идентичной учетной записи, то есть тем же роботом.
Таймаут [Int32] – лимит времени операции (мс). Если по истечении лимита операция не выполнена, робот закончит работу с ошибкой. Пример:
5000
.
Вывод:
Элемент [List<LTools.Enterprise.Model.QueueItem>] – название переменной, в которую запишется список элементов очереди, полученных по фильтру.
Только код
Ниже приведен пример использования элемента в процессе с типом Только код (Pure code):
Дополнительно
Изменить статус в очереди — присваивает элементу финальный статус обработки.
Удалить из очереди — удаляет элемент из очереди.
Last updated