Поделиться через


Действия очереди работ

Очереди работ в Power Automate можно использовать для хранения данных, относящихся к процессу, и предоставления способа разделения сложных процессов и средств автоматизации, позволяя им обмениваться данными асинхронно.

Очереди работ могут сыграть решающую роль в повышении эффективности, масштабируемости и отказоустойчивости автоматизации и помочь расставить приоритеты в работе. Очереди работ позволяют выполнять задачи с наивысшим приоритетом в первую очередь, независимо от того, обрабатываются ли они цифровыми работниками, работниками-людьми или с помощью интеграций.

Заметка

  • Для поддержки на рабочем уровне первого набора действий, связанных с рабочей очередью, требуется Power Automate Desktop версии 2.37 или более поздней версии.
  • Действия очереди работ в Power Automate для компьютеров — это расширенная функция, для которой требуется подписка Power Automate.
  • В настоящее время только действия Обработка элементов очереди работ и Обновление элемента очереди работ могут быть классифицированы и разрешены или ограничены из-за политик защиты от потери данных (DLP), а в ближайшее время последуют и другие действия. Обратите внимание, что использование рабочих очередей на основе облачных потоков не может быть ограничено политиками защиты от потери данных.

Обработка элементов очереди работ

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

Снимок экрана с действием «Обработка элемента очереди работ».

Очередь работ, указанная в предыдущем действии, используется оркестратором очереди для определения следующих доступных элементов в этой очереди работ, которые находятся в состоянии В очереди. По мере того как классический поток проходит через действия в цикле «Обработка элементов очереди работ», который отображает это действие, вы можете вызывать значение, используя переменную, назначенную для действия, вместе со свойством .Value. В этом случае вы можете вызвать значение элемента очереди работ, используя переменную %WorkQueueItem.Value%

Важно

Указывая выражение FetchXML в поле "Фильтр строк", вы обходите логику FIFO оркестратора очереди работ по умолчанию для элементов в очереди. Это позволяет задать пользовательский порядок вывода из очереди и игнорировать даты истечения срока действия элементов и другие параметры, которые автоматически применяются, если выражение фильтра не указано.

Processworkqueueitemaction

Для действия Обработка элемента очереди работ требуются следующие аргументы.

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

Аргумент Необязательно Принимает Значение по умолчанию Описание
Очередь работ Нет Текст Идентификатор очереди работ, содержащей элементы для обработки.
Фильтровать строки Да Текст Выражение запроса FetchXML, используемое для извлечения элементов из очереди работ.
Перезапись конфигурации автоматического повтора очереди работ Да Логический False Когда эта функция включена, появляется поле, позволяющее задать или перезаписать максимальное количество повторных попыток для IT Exceptions.
Макс. число повторов нет Текстовое значение, числовое значение Если не перезаписано, используется максимальное количество повторных попыток по умолчанию, определенное в записи очереди работ. Максимальное допустимое число повторных попыток для IT Exceptions. Этот параметр позволяет увеличить или уменьшить количество повторных попыток или даже отключить механизм повторных попыток, установив счетчик равным 0.

Создаваемые переменные

Аргумент Type Описание
WorkQueueItem Нет Информация, хранящаяся в обрабатываемом элементе очереди работ

Исключения

Исключение Описание:
Не найдена очередь работ Значение, введенное в параметр очереди работ, является недопустимым.
Очередь работ приостановлена или остановлена Очередь работ либо приостановлена, либо остановлена, что является недопустимым состоянием при обработке элементов.
Недопустимый FetchXML Предоставлено недопустимое выражение FetchXML.
Не удалось обработать очередь работ Неверный запрос — ошибка в синтаксисе запроса.

Что такое запросы FetchXML?

Microsoft Dataverse FetchXML — это язык, используемый для извлечения данных из базы данных Dataverse. Он разработан так, чтобы пользователи могли легко и понятным образом создавать и использовать запросы. Например, вы можете попросить оркестратор обрабатывать элементы в порядке, отличном от порядка FIFO (первым пришел, первым ушел) и в течение определенного периода истечения срока действия.

Чтобы ограничить поддержку запросов FetchXML обработкой элементов очереди работ, поддерживается ограниченный набор терминов и выражений FetchXML. Эти термины включают фильтры, условия и выражения упорядочения, все они ограничены таблицей элементов очереди работ (workqueueitem). Возвращаются только элементы, которые находятся в состоянии Queued.

Пример запроса FetchXML

Ниже приведен пример выражения запроса для фильтрации по name и упорядочивания результатов по записям, срок действия которых истекает в первую очередь (FEFO).

<filter type="and">
  <condition attribute="expirydate" operator="on-or-before" value="2024-10-18" />
  <condition attribute="name" operator="eq" value="MyNonUniqueNameString" />
</filter>
<order attribute="expirydate" descending="false" />

Сведения о поддержке запросов и справочные данные

Обновление элемента очереди работ

Действие Обновление элемента очереди работ позволяет пользователям изменять состояние и результаты обработки выбранного элемента очереди работ.

Снимок экрана с действием «Обновление элемента очереди работ».

Updateworkqueueitemaction

Для действия Обновление элемента очереди работ требуются следующие аргументы.

Аргумент Необязательно Принимает Значение по умолчанию Описание:
Элемент очереди работ Нет Текст Переменная элемента очереди работ, ранее возвращенная оркестратором очередей
Состояние. Нет Обработано, универсальное исключение Обработано Обновите обрабатываемый элемент очереди работ, используя статус из списка параметров.
Примечания по обработке Да Текст Пользовательские примечания к обработке или значение, добавляемое к обрабатываемому элементу очереди.
Очистка примечаний по обработке Да Логический False Если этот параметр включен, поле примечаний по обработке будет скрыто и очищено на этом экране, и из базы данных будут удалены все примечания по обработке, ранее записанные для этого элемента.

Исключения

Аргумент Описание
Элемент очереди работ не найден Обрабатываемый элемент очереди работ был удален либо больше не принадлежит очереди, из которой он был вызван.
Элемент очереди работ приостановлен Обрабатываемый элемент очереди работ имеет статус on hold в оркестраторе очередей и больше не может быть обновлен.
Не удалось обновить элемент очереди работ В обновляемом элементе очереди работ произошла непредвиденная ошибка. Чтобы узнать больше, прочитайте сообщение об ошибке.

Добавление элемента очереди работ

Действие Добавить элемент очереди работ позволяет пользователям заполнять элементы очереди работ в очереди работ, настроенной на портале потоков.

Снимок экрана с действием «Добавление элемента очереди работ».

Enqueueworkqueueitemaction

Для действия Добавление элемента очереди работ требуются следующие аргументы.

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

Аргумент Необязательно Принимает Значение по умолчанию Описание
Очередь работ Нет Текстовое значение Элемент очереди работ, в который нужно добавить элемент
Приоритет Нет Высокий, обычный, низкий Обычная Приоритет для установки элемента очереди работ
Name Нет Текстовое значение, числовое значение Пользовательское имя или ИД для нового элемента очереди работ
Входные данные нет Текстовое значение, числовое значение Данные, которые принадлежат столбцу значений, подлежащих обработке
Срок действия истекает Да Datetime Значение даты и времени, установленное для истечения срока действия элемента очереди. В противном случае принимает значение по умолчанию, если оно установлено для очереди
Примечания по обработке Да Текстовое значение, числовое значение Пользовательские примечания по обработке, которые будут добавлены в новый элемент очереди
С уникальным ИД или ссылкой Да Текстовое значение, числовое значение Если этот параметр включен, должно быть указано значение, уникальное в рамках этой очереди. Если оставить это поле пустым, система автоматически предоставит уникальное значение в формате system-<GUID>

Создаваемые переменные

Аргумент Type Описание
WorkQueueItem Нет Информация, хранящаяся для добавляемого элемента очереди работ

Исключения

Аргумент Описание:
Не найдена очередь работ Значение, введенное в параметр очереди работ, является недопустимым
Не удалось добавить элемент в очередь работ Элемент очереди работ нельзя добавить в очередь работ. Неверный запрос — ошибка в синтаксисе запроса

Добавить несколько элементов очереди работ

Действие Добавить несколько элементов очереди работ позволяет пользователям добавлять один или несколько элементов очереди работ в очередь работ на основе данных, предоставленных в виде таблицы данных элементов очереди работ.

Снимок экрана действия добавления нескольких элементов очереди работ.

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

Имя столбца Описание Обязательно Допустимые значения
Полное имя Имя элемента. нет Любая буквенно-цифровая строка
Входные данные Сведения входных данных или данные для элемента. Да Любая буквенно-цифровая строка
Срок действия истекает через Задает длительность до истечения срока действия элемента. нет Значение даты и времени
Примечания по обработке Обработка заметок, связанных с элементом. нет Любая буквенно-цифровая строка
Приоритет Уровень приоритета элемента. Да Числовое значение 100 (высокое), 200 (нормальное), 300 (низкое)
Уникальная ссылка Уникальный идентификатор или ссылочное значение для элемента. нет Любая уникальная буквенно-цифровая строка или ссылка
Status Состояние элемента при приеме. Да Числовое значение, равное нулю (В очереди) или единице (В ожидании).
Задержка до Указывает дату и время, до которых элементы очереди работ должны игнорироваться для обработки. нет Значение даты и времени

Фрагмент кода Robin для создания таблицы данных

В следующем примере показан фрагмент кода Robin (используется в традиционных потоках), который можно скопировать и вставить непосредственно в окно конструктора классических приложений Power Automate. Этот фрагмент кода добавляет в поток действие Создать новую таблицу данных с ожидаемым набором полей.

Variables.CreateNewDatatable InputTable: { ^['Name', 'Input', 'Expires in', 'Processing notes', 'Priority', 'Unique reference', 'Status', 'Delay until'], [$'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $'''''', $''''''] } DataTable=> DataTable

Фрагмент кода PowerFx для создания таблицы данных

В следующем примере показан фрагмент кода PowerFx, который можно скопировать и вставить непосредственно в окно конструктора классических приложений Power Automate. Этот фрагмент кода добавляет в поток действие Создать новую таблицу данных с ожидаемым набором полей.

Variables.CreateNewDatatable InputTable: { ^['Name', 'Input', 'Expires in', 'Processing notes', 'Priority', 'Unique reference', 'Status', 'Delay until'], [$fx'', $fx'', $fx'', $fx'', $fx'', $fx'', $fx'', $fx''] } DataTable=> DataTable

Batchenqueueworkqueueitemsaction

Для действия Добавить несколько элементов очереди работ требуются следующие аргументы.

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

Аргумент Необязательно Принимает Значение по умолчанию Описание
Очередь работ нет Текстовое значение Элемент очереди работ, в который нужно добавить элемент
Данные элементов очереди работ Да Таблица данных (Datatable) Настраиваемая таблица данных, содержащая элементы очереди работ, которые будут добавлены в очередь работ

Создаваемые переменные

Аргумент Type Значение по умолчанию Описание
FailedWorkQueueItems нет Включено В случае сбоев этот объект содержит индекс элемента, который не удалось вставить, вместе с кодом ошибки. Возвращаемый индекс — это позиция (индекс) элемента в предоставленной таблице данных очереди работ действия Добавить несколько элементов очереди работ.
HasFailedItems нет Включено Индикатор того, возникали ли в действиях ошибки приема из-за проблем с данными элементов очереди работ.
SuccessfulWorkQueueItems Disabled нет Пользовательский объект, содержащий индекс и элементы очереди работ, которые были успешно добавлены в очередь работ.

Исключения

Аргумент Описание
Не найдена очередь работ Значение, введенное в параметр очереди работ, является недопустимым
Очередь работ приостановлена или остановлена Элемент очереди работ не может быть добавлен в очередь работ, так как очередь работ приостановлена или остановлена.
Не удалось пакетно поставить в очередь список элементов очереди работ Элементы очереди работ не могут быть добавлены в очередь работ из-за ошибки запроса или связи.

Повторная постановка элемента в очередь с задержкой

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

Снимок экрана с действием «Повторная постановка элемента очереди работ в очередь».

Requeueworkqueueitemaction

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

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

Аргумент Необязательно Принимает Значение по умолчанию Описание
Элемент очереди работ Нет Элемент очереди работ Элемент очереди работ, в который нужно добавить элемент
Задержка до Нет Значение даты и времени Обычная Значение даты и времени, применяемое для задержки элемента очереди до тех пор, пока
Срок действия истекает Да Значение даты и времени Настраиваемое время истечения срока элемента, повторно поставленного в очередь
Примечания по обработке Да Текстовое значение, числовое значение Пользовательские примечания по обработке, которые будут добавлены в новый элемент очереди
Очистка примечаний по обработке Да Логический False Если этот параметр включен, поле примечаний по обработке будет скрыто и очищено на этом экране, и из базы данных будут удалены все примечания по обработке, ранее записанные для этого элемента

Исключения

Аргумент Описание
Не найдена очередь работ Значение, введенное в параметр очереди работ, является недопустимым
Элемент очереди работ не найден Недопустимое значение элемента очереди
Не удалось повторно поставить в очередь элемент очереди работ Элемент очереди работ нельзя добавить в очередь работ. Неверный запрос — ошибка в синтаксисе запроса

Обновление примечаний по обработке элемента очереди работ

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

Снимок экрана с действием «Обновление примечаний по обработке элемента очереди работ».

updateprocessingnotesaction

Для действия Обновление примечаний по обработке элемента очереди работ требуются следующие аргументы.

Аргумент Необязательно Принимает Значение по умолчанию Описание
Элемент очереди работ нет Текст Переменная элемента очереди работ, ранее возвращенная оркестратором очереди
Примечания по обработке Да Текст Результат пользовательской обработки или значение, добавляемое к обрабатываемому элементу очереди
Очистка примечаний по обработке Да Логический False Если этот параметр включен, поле примечаний по обработке будет скрыто или очищено на этом экране, и из базы данных будут удалены все примечания по обработке, ранее записанные для этого элемента

Исключения

Аргумент Описание
Не найдена очередь работ Очередь работ, связанная с элементом, удалена либо больше недоступна
Элемент очереди работ не найден Элемент очереди работ является недействительным
Не удалось добавить результаты обработки В обновляемом элементе очереди работ произошла непредвиденная ошибка. Чтобы узнать больше, прочитайте сообщение об ошибке.

Получить элементы очереди работ по фильтру

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

Снимок экрана действия получения элементов очереди работ по фильтру.

Getworkqueueitemsaction

Для действия Получить элементы очереди работ по фильтру требуются следующие аргументы.

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

Аргумент Необязательно Принимает Значение по умолчанию Описание
Очередь работ нет Текст Очередь работ, из которой требуется извлечь элементы
Фильтровать строки нет Текст Выражение запроса FetchXML, используемое для извлечения элементов из очереди работ
Вернуть строк нет Число 5000 Максимальное число элементов очереди работ, возвращаемых оркестратором

Создаваемые переменные

Аргумент Type Значение по умолчанию Описание
WorkQueueItems нет Включено Список элементов очереди работ, соответствующих выражению фильтра.

Исключения

Аргумент Описание
Очередь работ Очередь работ, из которой требуется извлечь элементы.
Фильтровать строки Выражение запроса FetchXML, используемое для извлечения элементов из очереди работ.
Вернуть строк Максимальное число элементов очереди работ, возвращаемых оркестратором (по умолчанию — 5000)

Что такое запросы FetchXML?

Microsoft Dataverse FetchXML — это язык, используемый для извлечения данных из базы данных Dataverse. Он разработан так, чтобы пользователи могли легко и понятным образом создавать и использовать запросы. Например, вы можете попросить Dataverse предоставить вам список всех элементов очереди работ, которые находятся в состоянии IT Exception.

Чтобы ограничить поддержку запросов FetchXml получением элементов очереди работ, мы поддерживаем только ограниченный набор терминов и выражений FetchXml. Эти термины и выражения включают атрибуты, фильтры, условия и выражения упорядочения, все они ограничены таблицей элементов очереди работ (workqueueitem). Необходимо явным образом указать, какие свойства возвращаются из таблицы элементов очереди работ, а также требуемый порядок сортировки.

Пример запроса FetchXML

В следующем примере приведено выражение запроса, определяющее, как получить несколько свойств, отфильтровать ошибочные элементы, помеченные как IT Exceptions, и упорядочить результаты по записям, срок действия которых истекает в первую очередь (FEFO).

<attribute name="statecode" />
<attribute name="uniqueidbyqueue" />
<attribute name="createdon" />
<attribute name="completedon" />
<attribute name="workqueueitemid" />
<attribute name="executioncontext" />
<attribute name="name" />
<attribute name="expirydate" />
<attribute name="processingresult" />
<attribute name="priority" />
<attribute name="statuscode" />
<attribute name="modifiedon" />
<attribute name="processingstarttime" />
<attribute name="retrycount" />
<attribute name="requeuecount" />
<attribute name="input" />
<attribute name="delayuntil" />
<filter type="and">
    <condition attribute="statecode" operator="eq" value="4" />
    <condition attribute="statuscode" operator="eq" value="5" />
    <condition attribute="expirydate" operator="on-or-before" value="2024-10-18" />
</filter>
<order attribute="expirydate" descending="false" />

Сведения о поддержке запросов и справочные данные

Состояние (statecode)

Status Код Описание
В очереди 0 Элемент помещен в очередь
В обработке 1 Элемент обрабатывается
Обработано 2 Элемент обработан
Приостановлено 3 Элемент блокирован
Error 4 В элементе произошла ошибка

Причина состояния (statuscode)

Причина состояния Код Описание
В очереди 0 Элемент помещен в очередь
В обработке 1 Элемент обрабатывается
Обработано 2 Элемент обработан
OnHold (Приостановлено) 3 Элемент блокирован (приостановлен)
Универсальное исключение 4 Элемент столкнулся с универсальным исключением
ИТ-исключение 5 Элемент столкнулся с исключением ИТ
Бизнес-исключение 6 Элемент столкнулся с бизнес-исключением
Недоставленное сообщение 7 Элемент блокирован
ProcessingTimeout 8 Истекло время ожидания обработки элемента