Skip to content

Latest commit

 

History

History
76 lines (57 loc) · 8.14 KB

readfromqueuebyfilter.md

File metadata and controls

76 lines (57 loc) · 8.14 KB
description
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
Вывод:
Элемент 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 %}

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