description |
---|
Peek queue by filter |
Компонент позволяет получить элементы из очереди Оркестратора в соответствии с настроенным фильтром. Для успешной работы Студия должна быть подключена к Оркестратору.
Как производится получение по фильтру:
- Первичная фильтрация. Осуществляется на стороне Оркестратора – элементы очереди фильтруются по всем указанным свойствам, кроме Фильтра по значению.
- Вторичная – происходит на стороне робота. Робот получает от Оркестратора элементы после первичной фильтрации и фильтрует их по свойству Фильтр по значению.
- Результат сохраняется в переменную вывода – в свойство Элемент.
Обратите внимание, что в свойствах компонента есть чекбокс Занимать. Установка чекбокса позволяет не только получить элементы по фильтру, но и извлечь их из очереди при условии, что они находятся в статусе 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. 2. |
Or |
Статус | - | Фильтр по статусу элемента очереди. Выберите нужный из выпадающего списка | Error |
Занимать | Boolean | По умолчанию флаг НЕАКТИВЕН. Определяет, нужно ли занимать отфильтрованные элементы. Если установлен, то в ответе вернутся лишь те значения, которые можно занять – т.е. изъять из очереди, чтобы далее с ними работал только ваш робот | |
Страница | Int32 | Номер страницы очереди Оркестратора, на которой находится искомый элемент | 5 |
Кол-во | Int32 | Определяет, сколько элементов очереди нужно получить. Если не заполнено, вернется только 1 | 10 |
Только свои | Boolean | При установке чекбокса будут получены только те элементы, которые были добавлены в очередь с идентичной учетной записи, то есть тем же роботом | |
Игнорировать спецполя | Boolean | Определяет, нужно ли включать в выборку отсроченные, просроченные и удаленные элементы. По умолчанию такие элементы игнорируются | |
Таймаут | Int32 | Лимит времени операции (мс). Если по истечении лимита операция не выполнена, робот закончит работу с ошибкой | 5000 |
Вывод: | |||
Элемент | List<LTools.Enterprise.Model.QueueItem> | Название переменной, в которую запишется список элементов очереди, полученных по фильтру |
Ниже приведен пример использования элемента в процессе с типом Только код (Pure code):
{% tabs %} {% tab title="C#" %}
object ret = LTools.Enterprise.OrchestratorApp.PeekQueueByFilter(wf, "queue", id, ".name", LTools.Enterprise.Model.QueueItemStates2.Any, false, 10);
{% endtab %}
{% tab title="Python" %}
ret = LTools.Enterprise.OrchestratorApp.PeekQueueByFilter(wf, "queue", id, ".name", LTools.Enterprise.Model.QueueItemStates2.Any, false, 10)
{% endtab %}
{% tab title="JavaScript" %}
var ret = _lib.LTools.Enterprise.OrchestratorApp.PeekQueueByFilter(wf, "queue", id, ".name", _lib.LTools.Enterprise.Model.QueueItemStates2.Any, false, 10);
{% endtab %} {% endtabs %}
- Изменить статус в очереди — присваивает элементу финальный статус обработки.
- Удалить из очереди — удаляет элемент из очереди.