Acciones de colas de trabajo

Las colas de trabajo en Power Automate se pueden usar para almacenar datos relevantes para el proceso y proporcionar una forma de desacoplar procesos y automatizaciones complejos, lo que les permite comunicarse de forma asíncrona.

Las colas de trabajo pueden desempeñar un papel crucial en la mejora de la eficiencia, la escalabilidad y la resistencia de las automatizaciones y ayudan a priorizar el trabajo. Las colas de trabajo le permiten completar primero los elementos de mayor prioridad, independientemente de si los procesan trabajadores digitales, trabajadores humanos o a través de integraciones.

Nota

  • La compatibilidad a nivel de producción para el primer conjunto de acciones relacionadas con la cola de trabajos requiere la versión de escritorio 2.37 o posteriores de Power Automate.
  • Las acciones de la cola de trabajo en Power Automate para escritorio son una función premium que requiere una suscripción a Power Automate.
  • Actualmente, solo las acciones Procesar elementos de la cola de trabajo y Actualizar elemento de la cola de trabajo pueden clasificarse y permitirse o restringirse mediante directivas de prevención de pérdida de datos (DLP); pronto se añadirán otras acciones. Tenga en cuenta que las políticas de DLP no pueden restringir el uso de colas de trabajo basado en el flujo de la nube.

Procesar elementos de la cola de trabajo

La acción Procesar elementos de la cola de trabajo indica al orquestador de colas que la máquina está lista para procesar uno o más elementos de la cola de trabajo. El contexto de usuario que solicita un nuevo elemento debe tener privilegios suficientes en la cola de trabajo y en la tabla de elementos de la cola de trabajo para poder procesar las colas de trabajo.

Captura de pantalla de la acción Procesar elemento de cola de trabajo.

El orquestador de colas usa la cola de trabajo a la que se hace referencia en la acción anterior para determinar cuáles son los próximos elementos disponibles de esa cola de trabajo que están en estado En cola. A medida que el flujo de escritorio avanza por las acciones dentro del bucle «Procesar elementos de la cola de trabajo» que genera esta acción, puede acceder al valor mediante la variable que haya designado para la acción junto con la propiedad .Value. En este caso, podría hacer referencia al valor del elemento de la cola de trabajo usando la variable %WorkQueueItem.Value%

Importante

Al proporcionar una expresión FetchXML en el campo "Filtrar filas", evita la lógica FIFO predeterminada del orquestador de colas de trabajo para los elementos en cola. Esto le permite establecer un orden personalizado para quitar de la cola e ignorar las fechas de caducidad de los elementos y otras configuraciones que se aplican automáticamente cuando no se proporciona ninguna expresión de filtro.

Processworkqueueitemaction

La acción Procesar elemento de cola de trabajo requiere los siguientes argumentos.

Parámetros de entrada

Argumento Opcionales Acepta Valor predeterminado Descripción
Cola de trabajo No Texto El id. de cola de trabajo de la cola de trabajo que contiene elementos para procesar.
Filtrar filas Texto La expresión FetchXML de consulta utilizada para recuperar elementos de la cola de trabajo.
Sobrescribir la configuración de reintentos automáticos de la cola de trabajo Booleano Falso Cuando se habilita, aparece un campo que le permite establecer o sobrescribir el número máximo de reintentos para IT Exceptions.
Número máximo de reintentos No Valor de texto, valor numérico Cuando no se sobrescribe, utiliza el recuento máximo de reintentos predeterminado definido en el registro de la cola de trabajo. El número máximo permitido de reintentos para IT Exceptions. Este parámetro le permite ajustar el recuento de reintentos a un valor mayor o menor, o incluso deshabilitar el mecanismo de reintentos estableciendo el recuento en 0.

Variables producidas

Argumento Tipo Descripción
WorkQueueItem Elemento de la cola de trabajo Información almacenada en el elemento de la cola de trabajo que se está procesando

Excepciones

Excepción Descripción
No se ha encontrado la cola de trabajo El valor introducido en el parámetro de la cola de trabajo no es válido.
Cola de trabajo en pausa o detenida La cola de trabajo está en pausa o detenida, lo cual no es un estado válido cuando se procesan elementos.
FetchXML no válido Se ha proporcionado una expresión FetchXML no válida.
No se ha podido procesar la cola de trabajo Solicitud incorrecta: error en la sintaxis de la consulta.

¿Qué son las consultas de FetchXML?

Microsoft Dataverse FetchXML es un lenguaje utilizado para recuperar datos de una base de datos de Dataverse. Está diseñado para ser fácil de crear, usar y entender. Por ejemplo, es posible que desee pedir al orquestador que procese los elementos en un orden diferente al de "primero en entrar, primero en salir" (FIFO) y dentro de un plazo de expiración específico.

Para limitar el soporte de consultas FetchXML al procesamiento de elementos de la cola de trabajo, se admite un conjunto limitado de términos y expresiones de FetchXML. Estos términos incluyen filtros, condiciones y expresiones de ordenación, restringidos todos ellos a la tabla de elementos de cola de trabajo (workqueueitem). Solo se devuelven elementos que están en un estado Queued.

Consultas de ejemplo de FetchXML

A continuación se muestra un ejemplo de expresión de consulta sobre cómo filtrar en name y ordenar los resultados según los registros que caducan primero (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" />

Soporte de consultas y datos de referencia

Actualizar elemento de cola de trabajo

La acción Actualizar elemento de cola de trabajo permite a los usuarios cambiar el estado y los resultados del procesamiento del elemento de cola de trabajo seleccionado.

Captura de pantalla de la acción Actualizar cola de trabajo

Updateworkqueueitemaction

La acción Actualizar elementos de cola de trabajo requiere los siguientes argumentos.

Argumento Opcionales Acepta Valor predeterminado Descripción
Elemento de la cola de trabajo No Texto Variable de elemento de cola de trabajo que ha devuelto previamente el orquestador de cola
Estado No Excepción genérica procesada Procesado Actualice el elemento de la cola de trabajo que se está procesando con uno de los estados de la lista de opciones.
Notas sobre el procesamiento Texto Notas de procesamiento personalizadas o valor para agregar al elemento de la cola que se está procesando.
Borrar notas de procesamiento Booleano Falso Cuando está habilitado, oculta y borra el campo de notas de procesamiento en esta pantalla y elimina cualquier nota de procesamiento de la base de datos que se haya capturado previamente para este elemento.

Excepciones

Argumento Descripción
No se encontró el elemento de la cola de trabajo El elemento de la cola de trabajo que se está procesando ha sido eliminado o ya no pertenece a la cola desde la que se invocó.
Elemento de cola de trabajo en espera El elemento de la cola de trabajo que se está procesando contiene un estado de on hold en el orquestador de colas y ya no se puede actualizar.
No se ha podido actualizar el elemento de cola de trabajo El elemento de la cola de trabajo que se está actualizando ha encontrado un error inesperado. Compruebe el mensaje de error para obtener más detalles.

Agregar elemento de cola de trabajo

La acción Agregar elemento de cola de trabajo permite a los usuarios del flujo de trabajo de escritorio a introducir elementos de cola de trabajo en una cola de trabajo que se haya configurado en el portal de flujos.

Captura de pantalla de la acción Agregar elemento de cola de trabajo

Enqueueworkqueueitemaction

La acción Agregar elementos de cola de trabajo requiere los siguientes argumentos.

Parámetros de entrada

Argumento Opcionales Acepta Valor predeterminado Descripción
Cola de trabajo No Valor de texto El elemento de cola de trabajo al que agregar el elemento
Prioridad No Alta, Normal, Baja Normal La prioridad a la que establecer el elemento de la cola de trabajo
Name No Valor de texto, valor numérico Nombre personalizado o ID para el elemento de la nueva cola de trabajo
Entrada No Valor de texto, valor numérico Los datos que pertenecen a la columna de valor a procesar
Caduca Fecha y hora El valor de fecha y hora establecido para que caduque el elemento de la cola; en caso contrario, adopta el valor predeterminado si se ha establecido alguno para la cola.
Notas sobre el procesamiento Valor de texto, valor numérico Notas de procesamiento personalizadas que se agregarán al nuevo elemento de la cola
Tiene id. o referencia único Valor de texto, valor numérico Cuando está habilitado, se debe proporcionar un valor que sea único dentro de esta cola. Si se deja vacío, el sistema proporciona automáticamente un valor único en el formato system-<GUID>.

Variables producidas

Argumento Tipo Descripción
WorkQueueItem Elemento de la cola de trabajo Información almacenada para el elemento de la cola de trabajo que se está añadiendo

Excepciones

Argumento Descripción
No se ha encontrado la cola de trabajo El valor introducido en el parámetro de la cola de trabajo no es válido
No se ha podido agregar el elemento a la cola de trabajo El elemento de la cola de trabajo no se pudo agregar a la cola de trabajo. Solicitud incorrecta: error en la sintaxis de la consulta

Agregar varios elementos de la cola de trabajo

La acción Agregar varios elementos a la cola de trabajo permite a los usuarios agregar uno o más elementos de la cola de trabajo a una cola de trabajo en función de los datos proporcionados como tabla de datos de elementos de la cola de trabajo.

Captura de pantalla de la acción Agregar varios elementos de cola de trabajo

Esta acción requiere una tabla de datos personalizada que contenga uno o más elementos de la cola de trabajo. La tabla de datos debe tener ocho columnas y ajustarse al siguiente esquema:

Nombre de columna Descripción Obligatorio Valores permitidos
Nombre El nombre del artículo. No Cualquier cadena alfanumérica
Entrada Introduzca los detalles o datos del elemento. Cualquier cadena alfanumérica
Expira en Especifica la duración hasta que caduca el elemento. No Valor de fecha y hora
Notas sobre el procesamiento Notas de procesamiento relacionadas con el elemento. No Cualquier cadena alfanumérica
Prioridad El nivel de prioridad del elemento. Valor numérico de 100 (Alto), 200 (Normal), 300 (Bajo)
Referencia única Un identificador único o valor de referencia para el elemento. No Cualquier cadena o referencia alfanumérica única
Estado Estado del elemento en el momento de la ingesta. Valor numérico de cero (En cola) o de uno (En espera).
Retrasar hasta Especifica una fecha y hora hasta la que los elementos de la cola de trabajo deben ser ignorados para su procesamiento. No Valor de fecha y hora

Fragmento de código de Robin para crear la tabla de datos

El siguiente ejemplo es un fragmento de código Robin (utilizado en flujos tradicionales) que puede copiar y pegar directamente en la ventana del diseñador de escritorio de Power Automate. Este fragmento de código agrega una acción Crear nueva tabla de datos con el conjunto esperado de campos a su flujo.

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

Fragmento de código de PowerFx para crear la tabla de datos

El siguiente ejemplo es un fragmento de código de PowerFx que puede copiar y pegar directamente en la ventana del diseñador de escritorio de Power Automate. Este fragmento de código agrega una acción Crear nueva tabla de datos con el conjunto esperado de campos a su flujo.

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

La acción de Agregar varios elementos de cola de trabajo requiere los siguientes argumentos.

Parámetros de entrada

Argumento Opcionales Acepta Valor predeterminado Descripción
Cola de trabajo No Valor de texto El elemento de cola de trabajo al que agregar el elemento
Datos del elemento de la cola de trabajo Tabla de datos La tabla de datos personalizada que contiene los elementos de la cola de trabajo que se añadirán a la cola de trabajo

Variables producidas

Argumento Tipo Valor predeterminado Descripción
FailedWorkQueueItems No Activado Si se producen errores, este objeto contiene el índice del elemento que no se pudo insertar junto con un código de error. El índice devuelto es la posición (índice) del elemento en la tabla de datos de la cola de trabajo proporcionada de la acción Agregar varios elementos de cola de trabajo.
HasFailedItems No Habilitado Indicador de si las acciones encontraron errores de ingesta debido a problemas con los datos de los elementos de la cola de trabajo.
SuccessfulWorkQueueItems Deshabilitados No Objeto personalizado que contiene el índice y los elementos que se añadieron correctamente a la cola de trabajo.

Excepciones

Argumento Descripción
No se ha encontrado la cola de trabajo El valor introducido en el parámetro de la cola de trabajo no es válido
Cola de trabajo en pausa o detenida No se pudo añadir el elemento a la cola de trabajo porque la cola de trabajo está pausada o detenida.
No se pudo poner en cola por lotes una lista de elementos de la cola de trabajo Los elementos de la cola de trabajo no se pudieron agregar a la cola de trabajo debido a una solicitud o un error de comunicación.

Reencolar el elemento con demora

La acción Volver a poner en cola el elemento con retraso permite a los usuarios volver a agregar un elemento de la cola que se está procesando en el flujo del escritorio a su cola de origen. Además, el elemento en cola se puede retener y liberar hasta un tiempo definido.

Captura de pantalla de la acción de volver a poner en cola el elemento de la cola de trabajo.

Requeueworkqueueitemaction

La acción Volver a poner el elemento en cola con retraso requiere los siguientes argumentos.

Parámetros de entrada

Argumento Opcionales Acepta Valor predeterminado Descripción
Elemento de la cola de trabajo No Elemento de la cola de trabajo El elemento de cola de trabajo al que agregar el elemento
Retrasar hasta No Valor de fecha y hora El valor de fecha y hora utilizado para posponer el elemento de la cola hasta
Caduca Valor de fecha y hora Tiempo de vencimiento personalizado para el artículo que se está solicitando
Notas sobre el procesamiento Valor de texto, valor numérico Notas de procesamiento personalizadas que se agregarán al nuevo elemento de la cola
Borrar notas de procesamiento Booleano Falso Cuando está habilitado, oculta y borra el campo de notas de procesamiento en esta pantalla y elimina cualquier nota de procesamiento de la base de datos que se haya capturado previamente para este elemento.

Excepciones

Argumento Descripción
No se ha encontrado la cola de trabajo El valor introducido en el parámetro de la cola de trabajo no es válido
No se encontró el elemento de la cola de trabajo El valor del elemento de la cola no es válido
No se ha podido volver a poner en cola el elemento de cola de trabajo El elemento de la cola de trabajo no se pudo agregar a la cola de trabajo. Solicitud incorrecta: error en la sintaxis de la consulta

Actualizar las notas de procesamiento de los elementos de la cola de trabajo

La acción Actualizar notas sobre el procesamiento de elementos de cola de trabajo permite a los usuarios actualizar o borrar notas de procesamiento del elemento de la cola de trabajo seleccionado sin cambiar su estado ni ninguna otra propiedad.

Captura de pantalla de la acción Actualizar las notas de procesamiento de un elemento de la cola de trabajo.

updateprocessingnotesaction

La acción Actualizar notas de procesamiento de elementos de la cola de trabajo requiere los siguientes argumentos.

Argumento Opcionales Acepta Valor predeterminado Descripción
Elemento de cola de trabajo No Texto Variable de elemento de cola de trabajo que ha sido devuelta previamente por el orquestador de cola
Notas sobre el procesamiento Texto Resultado o valor de procesamiento personalizado que se añadirá al elemento de cola procesado
Borrar notas de procesamiento booleano Falso Cuando está habilitado, oculta y borra el campo de notas de procesamiento en esta pantalla y elimina cualquier nota de procesamiento de la base de datos que se haya capturado previamente para este elemento.

Excepciones

Argumento Descripción
No se ha encontrado la cola de trabajo La cola de trabajo asociada con el elemento se eliminó o ya no se puede acceder a ella
No se encontró el elemento de la cola de trabajo El elemento de la cola de trabajo no es válido
No se pudieron anexar los resultados del procesamiento El elemento de la cola de trabajo que se está actualizando ha encontrado un error inesperado. Compruebe el mensaje de error para obtener más detalles.

Obtener elementos de la cola de trabajo mediante un filtro

La acción de Obtener elementos de la cola de trabajo por filtro permite a los usuarios recuperar uno o más elementos de la cola de trabajo en función de una expresión de filtro FetchXML.

Captura de pantalla de la acción Obtener elementos de la cola de trabajo por filtro.

Getworkqueueitemsaction

La acción de Obtener elementos de cola de trabajo por filtro requiere los siguientes argumentos.

Parámetros de entrada

Argumento Opcionales Acepta Valor predeterminado Descripción
Cola de trabajo No Texto Cola de trabajo de la que se recuperan elementos
Filtrar filas No Texto FetchXML expresión de consulta utilizada para recuperar elementos de la cola de trabajo
Filas que se devolverán No Número 5000 El número máximo de elementos de la cola de trabajo devueltos por el orquestador

Variables producidas

Argumento Tipo Valor predeterminado Descripción
WorkQueueItems No Habilitado Lista de elementos de la cola de trabajo que coinciden con la expresión de filtro.

¿Qué son las consultas de FetchXML?

Microsoft Dataverse FetchXML es un lenguaje utilizado para recuperar datos de una base de datos de Dataverse. Está diseñado para ser fácil de crear, usar y entender. Por ejemplo, es posible que desee pedir a Dataverse que le proporcione una lista de todos los elementos de la cola de trabajo que se encuentran en estado IT Exception.

Para limitar la compatibilidad de consultas FetchXml a la recuperación de elementos de la cola de trabajo, solo admitimos un conjunto limitado de términos y expresiones FetchXml. Estos términos y expresiones incluyen atributos, filtros, condiciones y expresiones de orden, todos ellos limitados a la tabla de elementos de cola de trabajo (workqueueitem). Debe especificar explícitamente qué propiedades se van a devolver de la tabla de elementos de la cola de trabajo y el criterio de ordenación deseado.

Consultas de ejemplo de FetchXML

El siguiente ejemplo es una expresión de consulta sobre cómo obtener varias propiedades, filtrar los elementos erróneos marcados como IT Exceptions y ordenar los resultados según los registros que expiran primero (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" />

Soporte de consultas y datos de referencia

Estado (statecode)

Estado Código Descripción
En cola 0 El elemento está en cola
Procesando 1 Se está procesando el elemento
Procesado 2 Se ha procesado el elemento
En espera 3 El elemento está en espera
Error 4 El elemento ha encontrado un error

Motivo del estado (statuscode)

Motivo del estado Código Descripción
En cola 0 El elemento está en cola
Procesando 1 Se está procesando el elemento
Procesado 2 Se ha procesado el elemento
Pausa 3 El elemento está en pausa o en espera
Excepción genérica 4 El elemento encontró una excepción genérica
ITException 5 El elemento experimentó una excepción informática
Excepción de negocio 6 El elemento encontró una excepción empresarial
Mensaje no entregado 7 El elemento está en espera
Tiempo de espera de procesamiento 8 Se ha agotado el tiempo de procesamiento del elemento