Получить коллекцию ресурсов Версия 8 (Java)

Группа действий: Оркестратор  Подгруппа Очереди ресурсов


Описание

Действие выполняет поиск ресурсов по указанным условиям и возвращает все подходящие ресурсы. Если ни один нужный ресурс не найден, действие ожидает их появления в течение установленного тайм-аута.

  1. Действие отправляет запрос на поиск ресурсов, у которых параметры соответствуют тем, которые указаны в действии.
  2. Поиск ресурса будет происходить по следующим правилам: 

    • Подходящими под условия ресурсами считаются те, которые удовлетворяют всем указанным параметрам поиска. Но при этом также учитывает и количество ресурсов, которое необходимо найти:
      • Если в "Правило количества" выбрано "Не больше чем", действие вернет результат сразу, как только найдет хотя бы один подходящий ресурс, т.е. до окончания времени тайм-аута. При этом, если в очереди сразу есть n или более ресурсов, действие вернет строго n ресурсов, где n - значение из параметра "Количество ресурсов". Если же в очереди меньше n ресурсов, действие сразу (до окончания тайм-аута) вернет все имеющиеся подходящие ресурсы.
      • Если в "Правило количества" выбрано "Строго указанное количество", действие вернет результат только тогда, когда в очереди появиться n или более ресурсов, подходящих под условия поиска. При этом, действие вернет строго n ресурсов, даже если их в очереди больше. 
      • Если в "Правило количества" выбрано "Все", действие вернет результат сразу, если найдет хотя бы один подходящий ресурс, т.е. до окончания времени тайм-аута. При этом значение из параметра "Количество ресурсов" будет проигнорировано, т.е. действие вернет все подходящие ресурсы, которые найдет в очереди.
    • Если параметр "Заблокировать на запись" = true, то при поиске игнорируются ресурсы, которые уже заблокированы на запись. Если = false, такие ресурсы в том числе будут добавлены в список подходящих ресурсов. При этом такое же правило не распространяется на блокировку на чтение, т.к. если ресурс имеет эту блокировку, его в любом случае "не видно" при поиске по условию.
    • Если указана какая-то определенная сортировка, то сначала будет собран список всех подходящих ресурсов, затем ресурсы будут отсортированы по указанному параметру; в результирующую коллекцию ресурсы будут записаны в том же порядке, как в отсортированном списке.
    • Если в очереди нет ни одного подходящего ресурса, действие встает в ожидание появления в очереди хотя бы одного подходящего ресурса. 

Иконка действия

Параметры

Входные параметры

Очередь ресурсов                 Название очереди ресурсов, в которой нужно искать ресурсы

Теги                                         Коллекция строк, в которой каждый элемент - это отдельный тег ресурса. Поиск будет среди тех ресурсов, у которых есть хотя бы один
                                                 из перечисленных тегов

Статус                                      Статусы, которые должны иметь ресурс
                                                         Поле с выпадающим списком значений:

            • Новый или В работе
            • Новый
            • В работе

Мин. приоритет                      Наименьшее значение приоритета, который может быть у ресурса. Вместе со значением из поля «Макс. приоритет» составляет диапазон
                                                 поиска по приоритету

Макс. приоритет                     Наибольшее значение приоритета, который может быть у ресурса. Вместе со значением из поля «Мин. приоритет» составляет диапазон
                                                 поиска по приоритету

Мин. дата создания                Наименьшее значение даты создания ресурса. Вместе со значением из поля «Макс. дата создания» составляет диапазон поиска по дате
                                                 создания

Макс. дата создания               Наибольшее значение даты создания ресурса. Вместе со значением из поля «Мин. дата создания» составляет диапазон поиска по дате
                                                 создания

Мин. дата обновления          Наименьшее значение даты последнего обновления ресурса. Вместе со значением из поля «Макс. дата создания» составляет диапазон
                                                 поиска по дате обновления

Макс. дата обновления         Наибольшее значение даты последнего обновления ресурса. Вместе со значением из поля «Мин. дата создания» составляет диапазон
                                                 поиска по дате обновления

Тип сортировки                     Тип сортировки найденных ресурсов. Действие сортирует найденные ресурсы перед записью в результирующую коллекцию
                                                          Это поле в виде выпадающего списка со значениями:

            • Без сортировки

            • По увеличению приоритета

            • По уменьшению приоритета

            • По увеличению даты создания

            • По уменьшению даты создания

            • По увеличению даты обновления

            • По уменьшению даты обновления

Если выбрано значение "без сортировки", найденные ресурсы будут записаны в результирующую коллекцию в том же порядке, в каком они были найдены.
При выборе конкретного типа сортировки, сначала будут найдены все ресурса, соответствующие указанным условиям поиска. Затем эти ресурсы будут отсортированы с учетом выбранного типа сортировки, и в таком же порядке будут записаны в коллекцию, которая будет возвращена роботу.
Выбранный тип сортировки по приоритету, дате создания или дате обновления не учитывается, если во входных параметрах действия было указано конкретное значение приоритета, даты создания или даты обновления, соответственно.

Запретить чтение                  Если значение "true", действие заблокирует найденные ресурсы на чтение и скроет их в очереди. Другие роботы не смогут найти скрытые ресурсы при поиске
                                                по условию

Запретить запись                  Если значение "true", действие заблокирует найденные ресурсы на запись для других роботов

Если значение параметра = true, т.е. нужно будет блокировать ресурсы, действие будет искать только среди ресурсов, которые не имеют блокировки на запись, даже если они подходят под указанные условия поиска. Реализован такой вариант, чтобы не "зависать" на заблокированных ресурсах, когда в очереди могут быть другие "свободные" ресурсы.
Если блокировать на запись не надо, действие ищет в том числе и среди ресурсов, которые имеют блокировку на запись.

Завершить обработку          Если значение "true", действие получит значение и параметры ресурсов, а затем изменит их статус на "Обработан". С этим статусом ресурсы будут скрыты
                                                для роботов даже при поиске по их  идентификатору

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

Количество ресурсов           Количество ресурсов, которое должно вернуть действие. Учитывается вместе с параметром "Правило количества"

Правило количества             Правило, указывающее, как интерпретировать значение из поля "Количество ресурсов". Если выбрано "Все", действие игнорирует указанное количество ресурсов,
                                                и возвращает все подходящие ресурсы.

Тайм-аут, мс.                          Время ожидания появления в очереди нужного количества ресурсов, подходящих под условия поиска. Если указано "-1", действие будет ждать бесконечно долго.
                                                Задается в миллисекундах

Тайм-аут здесь - это время на поиск n-го кол-ва элементов, подходящих под условия.
Если в "Правило количества" выбрано "Все", действие не будет ожидать в течение всего тайм-аута, а вернет результат сразу, как только найдет хотя бы бы один подходящий ресурс. Но это не значит, что действие вернет только один ресурс - оно выберет все подходящие ресурсы и сразу их вернет, не дожидаясь возможного появления дополнительных ресурсов.

Выходные параметры

Результат                              Коллекция, в которой каждый элемент - это словарь с данными одного из найденных ресурсов: значение (ключ "Value"), идентификатор (ключ "Id"),
                                                теги (ключ "Tags"), статус (ключ "Status"), приоритет (ключ "Priority"), дата создания (ключ "CreationDate") и дата обновления (ключ "UpdateDate")

Настройки

Свойство

Описание

Тип

Обязательность

 заполнения поля

Значение по умолчаниюПример заполненияПримечание
Входные параметры




Очередь ресурсов

Название очереди ресурсов, в которой нужно искать ресурсы

Robin.String

Да




Теги

Коллекция строк, в которой каждый элемент - это отдельный тег ресурса. Поиск будет среди тех ресурсов, у которых есть хотя бы один из перечисленных тегов

Robin.Collection

Нет




Статус

Статус, который должны иметь ресурсы

Robin.String

Да

Новый или В работе


Поле с выпадающим списком значений:

  • Новый или В работе
  • Новый
  • В работе

Мин. приоритет

Наименьшее значение приоритета, который может быть у ресурса. Вместе со значением из поля «Макс. приоритет» составляет диапазон поиска по приоритету

Robin.Numeric

Нет




Макс. приоритет

Наибольшее значение приоритета, который может быть у ресурса. Вместе со значением из поля «Мин. приоритет» составляет диапазон поиска по приоритету

Robin.Numeric

Нет




Мин. дата создания

Наименьшее значение даты создания ресурса. Вместе со значением из поля «Макс. дата создания» составляет диапазон поиска по дате создания

Robin.DateTime

Нет




Макс. дата создания

Наибольшее значение даты создания ресурса. Вместе со значением из поля «Мин. дата создания» составляет диапазон поиска по дате создания

Robin.DateTime

Нет




Мин. дата обновления

Наименьшее значение даты последнего обновления ресурса. Вместе со значением из поля «Макс. дата создания» составляет диапазон поиска по дате обновления

Robin.DateTime

Нет




Макс. дата обновления

Наибольшее значение даты последнего обновления ресурса. Вместе со значением из поля «Мин. дата создания» составляет диапазон поиска по дате обновления

Robin.DateTime

Нет




Тип сортировки

Тип сортировки найденных ресурсов. Действие сортирует найденные ресурсы перед записью в результирующую коллекцию

Robin.String

Нет

По уменьшению приоритета


Это поле в виде выпадающего списка со значениями:

  • Без сортировки
  • По увеличению приоритета
  • По уменьшению приоритета
  • По увеличению даты создания
  • По уменьшению даты создания
  • По увеличению даты обновления
  • По уменьшению даты обновления

Если выбрано значение "без сортировки", найденные ресурсы будут записаны в результирующую коллекцию в том же порядке, в каком они были найдены

При выборе конкретного типа сортировки, сначала будут найдены все ресурса, соответствующие указанным условиям поиска. Затем эти ресурсы будут отсортированы с учетом выбранного типа сортировки, и в таком же порядке будут записаны в коллекцию, которая будет возвращена роботу

Выбранный тип сортировки по приоритету, дате создания или дате обновления не учитывается, если во входных параметрах действия было указано конкретное значение приоритета, даты создания или даты обновления, соответственно

Запретить чтение

Если значение "true", действие заблокирует найденные ресурсы на чтение и скроет их в очереди. Другие роботы не смогут найти скрытые ресурсы при поиске по условию

Robin.Boolean

Нет

False



Запретить запись

Если значение "true", действие заблокирует найденные ресурсы на запись для других роботов

Robin.Boolean

Нет

False


Если значение параметра = true, т.е. нужно будет блокировать ресурсы, действие будет искать только среди ресурсов, которые не имеют блокировки на запись, даже если они подходят под указанные условия поиска. Реализован такой вариант, чтобы не "зависать" на заблокированных ресурсах, когда в очереди могут быть другие "свободные" ресурсы

Если блокировать на запись не надо, действие ищет в том числе и среди ресурсов, которые имеют блокировку на запись

Завершить обработку

Если значение "true", действие получит значение и параметры ресурсов, а затем изменит их статус на "Обработан". С этим статусом ресурсы будут скрыты для роботов, даже при поиске по их идентификатору

Robin.Boolean

Нет

False


Со стороны роботов такой статус у ресурсов будет словно удаление ресурсов, т.к. они больше не смогут найти эти ресурсы. Причем не найдет даже тот робот, который сам же и выполнил это действие. Однако ресурсы до сих пор будут в очереди, их сможет найти пользователь вручную через интерфейс Оркестратора (06 Раздел "Очереди ресурсов")

Количество ресурсов

Количество ресурсов, которое должно вернуть действие. Учитывается вместе с параметром "Правило количества"

Robin.Numeric

Да

0



Правило количества

Правило, указывающее, как интерпретировать значение из поля "Количество ресурсов". Если выбрано "Все", действие игнорирует указанное количество ресурсов, и возвращает все подходящие ресурсы

Robin.String

Да

Не больше чем


Выпадающий список со значениями:

  • "Не больше чем"
  • "Строго указанное количество"
  • "Все"

Тайм-аут, мс

Время ожидания появления в очереди нужного количества ресурсов, подходящих под условия поиска. Если указано "-1", действие будет ждать бесконечно долго. Задается в миллисекундах

Robin.Numeric

Нет

0


Тайм-аут здесь - это время на поиск n-го кол-ва элементов, подходящих под условия

Если в "Правило количества" выбрано "Все", действие не будет ожидать в течение всего тайм-аута, а вернет результат сразу, как только найдет хотя бы один подходящий ресурс. Но это не значит, что действие вернет только один ресурс - оно выберет все подходящие ресурсы и сразу их вернет, не дожидаясь возможного появления дополнительных ресурсов

Выходные параметры




РезультатКоллекция, в которой каждый элемент - это словарь с данными одного из найденных ресурсов: значение (ключ "Value"), идентификатор (ключ "Id"), теги (ключ "Tags"), статус (ключ "Status"), приоритет (ключ "Priority"), дата создания (ключ "CreationDate") и дата обновления (ключ "UpdateDate")




Особые условия использования

  1. Действие может блокировать ресурс на чтение или запись, если активированы соответствующие входные параметры. При блокировке ресурса, данный экземпляр робота становится владельцем установленного вида блокировки. Быть владельцем блокировки означает то, что снять такую блокировку может только этот же экземпляр робота\проекта. Причем 2 разных запуска одного и того же робота (2 разных экземпляра) считаются разными владельцами.
  2. Пользователь имеет больше полномочий, чем роботы, поэтому может снимать\устанавливать блокировку вне зависимости от того, кто ее владелец.

Пример использования 

Задача

Cуществует процесс, где имеется очередь с ресурсами, необходимо получить не больше 5 ресурсов со статусом "Новый", а также узнать дату создания 2-ого по счета ресурса из коллекции. 

Решение

Воспользоваться действиями "Получить коллекцию ресурсов", "Получить значение по индексу", "Получить значение", "Сообщение в лог". 

Реализация

  1. Перетащить на рабочую область действие "Получить коллекцию ресурсов" и заполнить его параметры: 
    1. Поле "Очередь ресурсов" - Указать название очереди ресурсов, в которой нужно искать ресурсы.
    2. Поле "Статус" - Указать статус, который должны иметь все ресурсы. В данном случае статус "Новый". 
    3. Поле "Количество ресурсов" - Указать количество ресурсов, которое должно вернуть действие. В данном случае - 5.
    4. Поле "Правило количества" - Указать нужное правило, указывающее, как правильно интерпретировать значение из поля "Количество ресурсов". В данном случае выбираем - "Не больше чем"

  2. Перетащить на рабочую область действие "Получить значение по индексу" и заполнить его параметры.
    1. Поле "Коллекция" - Указать результат действия "Получить коллекцию ресурсов"
    2. Поле "Индекс" - Указать порядковый номер позиции, с которой необходимо извлечь значения. В данном случае - 1 (По задаче нам необходимо вытащить 2-ой ресурс, но так как отсчет в коллекции начинается с 0, то соответственно указываем значение 1)

  3. Перетащить на рабочую область действие "Получить значение" и заполнить его параметры.
    1. Поле "Словарь" - Указать результат действия "Получить значение по индексу". Результатом данного действия в данном случае будет словарь с данными найденного ресурса.
    2. Поле "Ключ" - Указать ключ, по которому выполняется поиск в словаре. В данном случае ключом будет значение "CreationDate", так как по задаче необходимо забрать дату создания ресурса.
  4. Перетащить на рабочую область действие "Сообщение в лог" и заполнить его параметры.
    1. Поле "Сообщение" - Указать текст, который будет выведен в лог файл сообщения. В данном случае указываем результат действия "Получить значение". Это будет дата создания ресурса.
  5. Запустить робота по кнопке "Старт" в верхней панели. 
    • Если необходимо получить коллекцию ресурсов с определенными тегами, то необходимо заполнить поле "Теги", указав названия тегов ресурсов.
    • Если необходимо получить коллекцию ресурсов с определенными приоритетами, то следует заполнить поля "Мин. приоритет" и "Макс. приоритет". 
    • Если необходимо получить коллекцию ресурсов с группировкой по дате создания (например, с 12.08.2022 4:00 по 14.08.2022 4:00) необходимо указать даты и время в соответствующих полях: "Мин. дата создания", "Макс. дата создания". 
    • Если необходимо получить коллекцию ресурсов с группировкой по дате обновления (например, 15.08.2022 5:00 по 17.08.2022 5:00) необходимо указать даты и время в соответствующих полях: "Мин. дата обновления", "Макс. дата обновления".
    • Если необходимо отсортировать найденные ресурсы, то необходимо выбрать типа сортировки из выпадающего списка параметра "Тип сортировки". 
    • Если необходимо завершить обработку ресурсов, то следует установить чекбокс "Завершить обработку ресурса" = true. 
    • Если необходимо заблокировать ресурсы на запись и/или чтение , то следует установить чек-бокс в полях: "Заблокировать на чтение"/"Заблокировать на запись". 

      Ресурсы очереди могут быть заблокированы роботом (на чтение и\или запись).

      • только на чтение - когда ресурсы заблокированы на чтение, по умолчанию также происходит их скрытие в очереди (скрытие для поиска), т.е. его нельзя будет получить действиями с поиском по условию; действием получения по ID можно будет "увидеть ресурсы", но робот зависнет на ресурсе в ожидании снятия блокировки (в зависимости от выставленного тайм-аута).
      • только на запись - когда ресурсы заблокированы на запись (роботом или пользователем), другой робот не может изменить их значения.
      • и на чтение, и на запись - соблюдаются одновременно два условия, описанных выше, то есть робот не сможет ни изменить ресурсы, ни прочитать их.

Результат

Программный робот отработал успешно.

Была получена коллекция, из которой был выбран 2-ой ресурс со статусом "Новый", а также была выведена в лог дата создания данного ресурса.

  • Нет меток