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 trabajos y Actualizar elementos de la cola de trabajos se pueden clasificar y permitir o restringir mediante la pérdida de datos (DLP) y pronto se implementará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 cola de trabajo
La acción Procesar elementos de la cola de trabajo indica al orquestador de la cola 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.
El orquestador de colas utiliza la cola de trabajo a la que se hace referencia en la acción anterior para determinar los siguientes elementos disponibles en esa cola de trabajo que están en estado En cola. A medida que el flujo de escritorio recorre las acciones dentro del bucle Procesar elementos de la cola de trabajo que representa esta acción, puede solicitar el valor utilizando la variable que ha designado para la acción junto con la propiedad .Value
. En este caso, podría llamar 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 elementos 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 | Sí | 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 | Sí | Booleana | False | 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 | No | 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, todo ello restringido a la tabla de elementos de la 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
- Lista de operadores de consulta disponibles para su uso, incluidos operadores como on-or-before, between y last-month.
- Lista de atributos disponibles en la tabla de elementos de la cola de trabajo.
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.
Updateworkqueueitemaction
La acción Actualizar elementos de 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 devuelto previamente el orquestador de cola | |
Estado de ejecución | No | Excepción genérica procesada | Procesada | Actualice el elemento de la cola de trabajo que se está procesando utilizando un estado de la lista de opciones. |
Notas sobre el procesamiento | Sí | Texto | Notas de procesamiento personalizadas o valor para agregar al elemento de la cola que se está procesando. | |
Borrar notas de procesamiento | Sí | Booleana | False | 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 el elemento de cola de trabajo | El elemento de la cola de trabajo que se está procesando se eliminó o ya no pertenece a la cola desde la que se llamó. |
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.
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 | Id. o nombre personalizado para el nuevo elemento de cola de trabajo | |
Entrada | No | Valor de texto, valor numérico | Los datos que pertenecen a la columna de valor a procesar | |
Caduca | Sí | Datetime | El valor de fecha y hora establecido para caducar el elemento de la cola; de lo contrario, adopta el valor predeterminado si se establece uno para la cola | |
Notas sobre el procesamiento | Sí | 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 | Sí | 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 | No | Información almacenada para el elemento de la cola de trabajo que se está agregando |
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 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.
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. | Sí | 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. | Sí | 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. | Sí | Valor numérico de cero (En cola), uno (En espera). |
Retraso 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 de elemento de cola de trabajo | Sí | Tabla de datos | La tabla de datos personalizada que contiene los elementos de la cola de trabajo que se agregarán a la cola de trabajo |
Variables producidas
Argumento | Tipo | Valor predeterminado | Descripción |
---|---|---|---|
FailedWorkQueueItems | No | Habilitados | 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 | Habilitados | 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 de la cola de trabajo que se agregaron 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 | El elemento de la cola de trabajo no se pudo agregar a la cola de trabajo porque la cola de trabajo está en pausa o detenida. |
Error al poner en cola una lista de elementos de cola de trabajo por lotes | 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. |
Volver a poner en cola el elemento con retraso
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.
Requeueworkqueueitemaction
La acción Reponer elemento en cola con retraso requiere los siguientes argumentos.
Parámetros de entrada
Argumento | Opcionales | Acepta | Valor predeterminado | Descripción |
---|---|---|---|---|
Elemento de cola de trabajo | No | Elemento de cola de trabajo | El elemento de cola de trabajo al que agregar el elemento | |
Retraso hasta | No | Valor DateTime | Normal | El valor de fecha y hora aplicado para retrasar el elemento de la cola hasta |
Caduca | Sí | Valor DateTime | Tiempo de vencimiento personalizado para el artículo que se está solicitando | |
Notas sobre el procesamiento | Sí | Valor de texto, valor numérico | Notas de procesamiento personalizadas que se agregarán al nuevo elemento de la cola | |
Borrar notas de procesamiento | Sí | Booleana | False | 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 ha encontrado el elemento de 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 notas sobre el procesamiento de elementos de 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.
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 | Sí | Texto | Resultado o valor del procesamiento personalizado para agregar al elemento de la cola procesado | |
Borrar notas de procesamiento | Sí | Booleana | False | 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 ha encontrado el elemento de 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 cola de trabajo por 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.
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 deben devolver | 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 | Habilitados | Lista de elementos de la cola de trabajo que coinciden con la expresión de filtro. |
Excepciones
Argumento | Descripción |
---|---|
Cola de trabajo | La cola de trabajo de la que recuperar los elementos. |
Filtrar filas | La expresión FetchXML de consulta utilizada para recuperar elementos de la cola de trabajo. |
Filas que se deben devolver | El número máximo de elementos de la cola de trabajo devueltos por el orquestador (el valor predeterminado es 5000). |
¿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 ordenación, todo ello limitado a la tabla de elementos de la 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
- Lista de operadores de consulta disponibles para su uso, incluidos operadores como on-or-before, between y last-month.
- Lista de atributos disponibles en la tabla de elementos de la cola de trabajo.
Estado (statecode)
Estado | Código | Descripción |
---|---|---|
En cola | 0 | El elemento está en cola |
Procesando | 1 | Se está procesando el elemento |
Procesada | 2 | Se ha procesado el elemento |
En espera | 3 | El elemento está en espera |
Error | 4 | El elemento ha encontrado un error |
Razón para el estado (statuscode)
Razón para el estado | Código | Descripción |
---|---|---|
En cola | 0 | El elemento está en cola |
Procesando | 1 | Se está procesando el elemento |
Procesada | 2 | Se ha procesado el elemento |
OnHold (en pausa) | 3 | El elemento está en espera (en pausa) |
Excepción genérica | 4 | El elemento encontró una excepción genérica |
Excepción de TI | 5 | El elemento encontró una excepción de TI |
Excepción de empresa | 6 | El elemento encontró una excepción empresarial |
Mensajes fallidos | 7 | El elemento está en espera |
ProcessingTimeout | 8 | Se ha agotado el tiempo de procesamiento del elemento |