Servicio asincrónico

El servicio asincrónico ejecuta operaciones a largo plazo independientemente del funcionamiento del núcleo Microsoft Dataverse principal. Al ejecutar operaciones de larga ejecución de este modo, se permite un rendimiento general del sistema y una escalabilidad mejorados. El servicio asincrónico es una cola administrada de tipo primero en entrar, primero en salir (FIFO) para la ejecución de complementos registrados asincrónicos, flujos de trabajo y operaciones como correo masivo, importación masiva y propagación de actividades de la campaña. Estas operaciones se registran con el servicio asincrónico y se ejecutan periódicamente cuando el servicio procesa la cola.

Después de que ocurre un evento y se procesan las extensiones síncrónicas, Dataverse serializa el contexto para las extensiones asincrónicas y lo guarda en la tabla de Job del sistema (AsyncOperation). El trabajo del sistema define y sigue la ejecución de la operación asincrónica. A medida que se puede disponer de los recursos, Dataverse procesa los trabajos del sistema y ejecuta las operaciones que definen. Dataverse procesa cualquier operación de datos definida en la extensión de nuevo en la canalización de ejecución de eventos, pero este vez como operación sincrónica.

Orden y dependencias de ejecución

Los trabajos del sistema se evalúan como una cola mediante la fecha CreatedOn. Si no hay condiciones para diferir la ejecución se ejecutan en cuanto los recursos estén disponibles. No siempre está garantizado que la ejecución se realice en el orden establecido por la fecha CreatedOn, ya que diferentes tipos de operaciones requieren diferentes recursos.

Un trabajo del sistema puede depender de otro trabajo del sistema, por lo que comenzará solo después de que el otro trabajo del sistema se complete. El valor de la columna DependencyToken establece esta dependencia cuando se crea un trabajo del sistema. Si el valor DependencyToken es nulo, el trabajo del sistema no tiene ninguna dependencia. Los trabajos del sistema dependientes tienen el mismo valor de DependencyToken y se ejecutan en el orden en que se crearon. Si se pospone un trabajo del sistema, todos los trabajos del sistema dependientes siguientes continúan esperando hasta que el trabajo del sistema pospuesto se ejecute.

Note

Este sistema de dependencias no puede ser utilizado por los complementos que están registrados para ejecutarse de forma asincrónica, porque los trabajos del sistema que les corresponden son creados por el sistema.

Consideraciones de seguridad para trabajos del sistema

La AsyncOperation tabla (trabajo del sistema) tiene un modelo de permisos por capas, tal y como se describe a continuación.

  • Privilegios de nivel de entidad: los usuarios con privilegios de escritura (prvWrite) en AsyncOperation pueden actualizar las columnas de ciclo de vida admitidas (StateCode, StatusCode, PostPoneUntil) para administrar los trabajos del sistema. Este es el mecanismo previsto para cancelar, pausar, reanudar o posponer trabajos.

  • Protección de nivel de plataforma para columnas internas: las columnas que contienen datos de ejecución internos, como la carga del trabajo serializado, están protegidas por comprobaciones adicionales de autorización del lado servidor que se aplican independientemente de los privilegios de nivel de entidad. Estas protecciones impiden la modificación no autorizada de los datos de ejecución del trabajo incluso por parte de los usuarios que tienen acceso de escritura a la AsyncOperation tabla.

  • Acceso de lectura: los usuarios con el privilegio Read (prvRead) en AsyncOperation pueden recuperar registros de trabajo del sistema, incluidos metadatos como el nombre del trabajo, el estado y las marcas de tiempo. Esto es así por diseño para permitir a los usuarios supervisar el progreso y el estado del trabajo.

Este modelo en capas garantiza que los usuarios puedan administrar el ciclo de vida de sus trabajos del sistema, una operación prevista y compatible, mientras que los datos de ejecución internos permanecen protegidos por la plataforma.

Gestión de tareas del sistema

Puede realizar las siguientes operaciones para administrar trabajos del sistema utilizando la Tabla AsyncOperation.

  • Recuperar tareas del sistema
  • Eliminar trabajos del sistema
  • Administrar estados de trabajos del sistema
  • Posponer trabajos del sistema

Note

No se admite crear trabajos del sistema con código. Aunque la tabla AsyncOperation admite varias columnas que se pueden escribir y operaciones de creación, solo se admiten las siguientes columnas para la actualización:

Estas columnas permiten a los usuarios con el privilegio de escritura a nivel de entidad (prvWrite) adecuado en AsyncOperation administrar el ciclo de vida de los trabajos del sistema (cancelar, pausar, reanudar y posponer). Otras columnas de la AsyncOperation tabla, incluidos los datos de ejecución internos, están sujetas a comprobaciones de autorización de nivel de plataforma adicionales y no se pueden modificar a través de operaciones de actualización estándar aunque el esquema de la tabla indique que se pueden escribir. El atributo de escritura de nivel de esquema refleja las funcionalidades internas de la plataforma, no los permisos del usuario final.

Recuperar tareas del sistema

Puede ver tareas del sistema en la aplicación navegando a Configuración>Sistema>Trabajos del sistema y también puede buscarlas usando la Búsqueda avanzada en aplicaciones basadas en modelo.

Usando código, puede recuperar tareas del sistema como cualquier otra tabla. La siguiente tabla enumera las columnas seleccionadas que son importantes para comprender los trabajos del sistema:

Columna Description
AsyncOperationId Identificador único del trabajo del sistema.
CompletedOn Fecha y hora en que se completó el trabajo del sistema.
CreatedBy Identificador único del usuario que creó el trabajo del sistema.
CreatedOn Fecha y hora en que se creó el trabajo del sistema.
Data Datos sin estructurar asociados al trabajo del sistema.
DependencyToken La ejecución de todas las operaciones con el mismo símbolo (token) de dependencia está serializada. Más información sobre el orden y dependencias de ejecución
Depth Número de llamadas de SDK realizadas desde la primera llamada.
ErrorCode Código de error devuelto de un trabajo del sistema cancelado.
ExecutionTimeSpan Tiempo que tardó el trabajo del sistema en ejecutarse.
FriendlyMessage Mensaje proporcionado por la tarea del sistema.
IsWaitingForEvent Se indica que el trabajo del sistema está esperando un evento determinado.
Message Mensaje relacionado con la tarea del sistema.
MessageName Nombre del mensaje que inició este trabajo del sistema.
ModifiedBy Identificador único del usuario que modificó el trabajo del sistema por última vez.
ModifiedOn Fecha y hora en que se modificó el trabajo del sistema por última vez.
Name Nombre del trabajo del sistema.
OperationType Tipo de trabajo del sistema. Más información sobre los tipos de operación
OwnerId Identificador único del usuario o equipo propietario del trabajo del sistema.
OwningBusinessUnit Identificador único de la unidad de negocio propietaria del trabajo del sistema.
OwningExtensionId Identificador único de la extensión propietaria a la que está asociado el trabajo del sistema.
OwningTeam Identificador único del equipo propietario del registro.
OwningUser Identificador único del usuario propietario del registro.
PostponeUntil Indica si el trabajo del sistema sólo debería ejecutarse después de la fecha y la hora especificadas. Aprenda a posponer trabajos del sistema
PrimaryEntityType Tipo de tabla con la que está principalmente asociado el trabajo del sistema.
RecurrencePattern Patrón de la periodicidad del trabajo del sistema. Más información sobre las horas de inicio y los patrones de la periodicidad
RecurrenceStartTime Hora de inicio del patrón de recurrencia en UTC. Más información sobre las horas de inicio y los patrones de la periodicidad
RegardingObjectId Identificador único del objeto al que está asociado el trabajo del sistema.
RetryCount Número de veces que se debe reintentar la tarea del sistema.
Sequence Orden en el que se enviaron las operaciones.
StartedOn Fecha y hora en que se inició el trabajo del sistema.
StateCode Estado del trabajo del sistema. Aprenda a administrar estados de trabajos del sistema
StatusCode Razón del estado del trabajo del sistema. Aprenda a administrar estados de trabajos del sistema
UTCConversionTimeZoneCode Código de zona horaria que estaba en uso cuando se creó el registro.
WorkflowStageName Nombre de una fase del flujo de trabajo.

Ejemplos

Puede usar los siguientes ejemplos para recuperar datos de trabajos del sistema.

Utilice la siguiente consulta de API web para recuperar las columnas de la tabla anterior. [Aprenda a consultar datos mediante la API web](webapi/query/overview.md

GET <organization URL>/api/data/v9.2/asyncoperations?$top=1000
&$select=
asyncoperationid,
completedon,
createdon,
data,
dependencytoken,
depth,
errorcode,
executiontimespan,
friendlymessage,
iswaitingforevent,
message,
messagename,
modifiedon,
name,
operationtype,
_ownerid_value,
postponeuntil,
primaryentitytype,
recurrencepattern,
recurrencestarttime,
_regardingobjectid_value,
retrycount,
sequence,
startedon,
statecode,
utcconversiontimezonecode,
workflowstagename
&$expand=
createdby($select=fullname),
modifiedby($select=fullname),
owningbusinessunit($select=name),
owningextensionid($select=name),
owningteam($select=name),
owninguser($select=fullname)

Note

Con la API web, hay una propiedad de navegación de un solo valor para cada tabla que admite trabajos del sistema. El nombre de esta propiedad de navegación sigue el patrón regardingobjectid_<table logical name>.

Tipos de operación

La columna Tipo de operación describe las categorías de trabajos del sistema. Dataverse inicia muchos de estos tipos para realizar tareas de mantenimiento.

Note

No puede realizar operaciones de cancelación, pausa, o reanudación en trabajos del sistema generados por la plataforma.

Algunos de los tipos de estos trabajos generados por la plataforma se incluyen en la tabla siguiente:

Valor de OperationType Etiqueta de OperationType
9 Recolección de datos SQM
16 Recopilar estadísticas de la organización
18 Calcular tamaño de almacenamiento de la organización
19 Recopilar estadísticas de la base de datos de la organización
20 Recopilar estadísticas del tamaño de la organización
22 Calcular tamaño de almacenamiento máximo de la organización
24 Actualizar intervalos de estadísticas
25 Índice del catálogo de texto completo de la organización
27 Actualizar estados de contrato
31 Notificador de límite de almacenamiento

Para obtener una lista completa, consulte Opciones/elecciones de tipo de operación

Horas de inicio y patrones de recurrencia

Los trabajos del sistema periódicos requieren la información sobre cuándo deberían empezar y con qué frecuencia se repiten. Estos valores se almacenan en la tabla AsyncOperation, columnas RecurrenceStartTime y RecurrencePattern.

Como no puede crear registros AsyncOperation directamente con código, necesita interpretar estos valores al consultar los datos. Estos valores de propiedad se establecen indirectamente usando mensajes que crean nuevas tareas del sistema. Los mensajes BulkDelete y BulkDeleteDuplicates incluyen ambos parámetros o propiedades en las acciones de la Web API correspondientes o en las clases de solicitud del SDK para .NET. Más información: Clase BulkDetectDuplicatesRequest, Acción BulkDetectDuplicates, Clase BulkDeleteRequest y Acción BulkDelete

RecurrenceStartTime es simplemente un valor de fecha y hora para indicar cuándo el trabajo del sistema debe iniciarse. Si no se configura, se espera que el trabajo del sistema se inicie inmediatamente.

La columna RecurrencePattern almacena información sobre la periodicidad con la que se repiten las tareas del sistema. A veces, la plataforma establece este valor al crear un nuevo registro de asyncoperation. Puede configurar esta opción para cambiar el patrón.

Los valores de esta columna utilizan partes del Estándar de Internet RFC2445 (Especificación de objeto principal de programación y calendario de Internet).

La tabla siguiente proporciona algunos ejemplos:

Patrón de periodicidad Frecuencia de ejecución del trabajo
FREQ=MONTHLY; Una vez al mes
FREQ=WEEKLY; Una vez a la semana
FREQ=DAILY; Una vez al día
FREQ=DAILY;INTERVAL=3; Cada tres días
FREQ=HOURLY; Una vez a la hora

Si un valor INTERVAL no se configura, se interpreta como 1.

Consultas de diagnóstico

Utilice las consultas de esta sección para ayudar a diagnosticar problemas.

Empleos por estado, estatus y tipo

Utilice esta consulta para comprender la distribución y frecuencia de los diferentes tipos de trabajos. Los resultados podrían indicarle qué trabajos están causando un problema.

Esta consulta no se ordena por count descendiente. Es posible que desee utilizar FetchXml con Web API en su lugar. Consultar datos mediante FetchXml

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=groupby((statecode,statuscode,operationtype),aggregate($count as count))
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Aprenda a consultar datos utilizando API Web

Principales tareas del sistema que están en estado suspendido, por número de recuento

Utilice esta consulta para extraer un recuento de todos los trabajos dentro de la tabla AsyncOperation que están en estado Suspendido. Esta consulta le ayuda a:

  • Comprender el volumen y la naturaleza de los trabajos en espera.
  • Identifique dónde se producen los atracos.
  • Tome decisiones informadas sobre cómo abordarlos para mejorar el rendimiento y el rendimiento del sistema.

Esta consulta no se ordena por count descendiente. Es posible que desee utilizar FetchXml con Web API en su lugar. Consultar datos mediante FetchXml

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((statecode eq 1))/groupby((statecode,statuscode,operationtype),aggregate($count as count))
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Aprenda a consultar datos utilizando la API Web

Esto es lo que debe buscar en los resultados:

  • Cuantificar trabajos suspendidos: la consulta se dirige específicamente a trabajos que están suspendidos (statecode = 1). Los resultados le brindan un recuento de todos esos trabajos, categorizados por su statuscode y operationtype.

  • Desglose del tipo de operación: el recuento de trabajos suspendidos agrupados operationtype, que muestra los tipos de operaciones que se realizan con mayor frecuencia en un Estado suspendido.

  • Identificación de posibles cuellos de botella: un recuento elevado de trabajos suspendidos durante períodos prolongados puede deberse a limitaciones de recursos, dependencias de otros procesos o configuraciones erróneas del sistema.

  • Gestión de capacidad y recursos: si ciertos trabajos están constantemente en el estado suspendido, podría indicar que el sistema carece de los recursos necesarios para procesar estos trabajos. eficientemente.

  • Comprobación del estado del sistema: los trabajos en un estado suspendido sirven como indicador de salud. Idealmente, un sistema saludable debería tener un mínimo de tareas en un estado Suspendido o al menos mostrar una rápida rotación de Suspendido a procesamiento activo.

  • Eficiencia del flujo de trabajo: los resultados pueden arrojar luz sobre la eficiencia del flujo de trabajo. Si un operationtype en particular tiene un alto número de trabajos suspendidos , podría indicar ineficiencias o la necesidad de optimización dentro de ese flujo de trabajo.

Flujos de trabajo por recuento

Esta consulta proporciona un desglose detallado de los trabajos relacionados con el flujo de trabajo, filtrado por un valor operationtype para flujos de trabajo. Utilice los resultados de la consulta para obtener una vista completa de los trabajos de flujo de trabajo, administrar los recursos del sistema de manera más efectiva y garantizar que los flujos de trabajo se ejecuten sin problemas y de manera eficiente.

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((operationtype eq 10))/groupby((statecode,statuscode,operationtype),aggregate($count as count))
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Aprenda a consultar datos utilizando la API Web

Esto es lo que debe buscar en los resultados:

  • Trabajos específicos del flujo de trabajo: el filtro operationtype = 10 limita los resultados a trabajos de flujo de trabajo. Puede ver cuántos trabajos están relacionados con los flujos de trabajo y sus estados actuales. También puede aplicar esta consulta de ejemplo con otros tipos de operaciones. Más información sobre los tipos de operaciones

  • Distribución del estado del trabajo: statecode le indica el estado actual de estos trabajos de flujo de trabajo, por ejemplo, si están Listos, Suspendidos, Bloqueados, o Completados.

  • Análisis de código de estado: El statuscode puede brindar información específica sobre el motivo detrás del estado actual de un trabajo. Por ejemplo, podría indicar si un trabajo está Esperando recursos, Esperando, En curso, Pausando, Cancelando, Completado, Fallido o Cancelado.

  • Recuento de cada categoría: el número total de trabajos para cada combinación statecode y statuscode. Esto ayuda a identificar los resultados más comunes de las operaciones de flujo de trabajo.

  • Identificación de resultados comunes: con los resultados ordenados por conteo en orden descendente, puede identificar los resultados o cuellos de botella más frecuentes en el procesamiento del flujo de trabajo.

  • Solución de problemas y optimización: Los recuentos altos en estados Error o Suspendido pueden resaltar áreas donde los flujos de trabajo pueden fallar o atascarse, lo que indica la necesidad de solucionar problemas u optimizar los procesos.

  • Métricas de rendimiento: comprender qué flujos de trabajo son más comunes y cómo se distribuyen en diferentes estados puede ayudar a evaluar el rendimiento y la confiabilidad del sistema de gestión de flujo de trabajo.

  • Planificación de capacidad: un número constantemente elevado de flujos de trabajo en curso o en espera podría sugerir que se necesitan más recursos para manejar la carga, o que es necesario optimizar el entorno de ejecución del flujo de trabajo.

  • Gestión de flujos de trabajo: los resultados de la consulta pueden guiar a los administradores sobre cómo gestionar los flujos de trabajo de manera más efectiva, como decidir qué flujos de trabajo priorizar o identificar flujos de trabajo que se pueden optimizar o desactivar/deshabilitar.

  • Comprobación del estado del sistema: los resultados generales pueden servir como un control del estado de su sistema de flujo de trabajo, indicando si el sistema está funcionando de manera óptima o si hay áreas que requieren atención.

Trabajos en espera de que los recursos del sistema estén disponibles

Utilice esta consulta para recuperar un análisis detallado de los trabajos de la tabla AsyncOperation que se encuentran en un estado específico de preparación pero que están pendientes de ejecución debido a la falta de disponibilidad de recursos del sistema. Esta consulta puede identificar factores que contribuyen a la lentitud y a la toma de decisiones para lograr eficiencia y un mejor manejo del trabajo atrasado.

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((statecode eq 0 and statuscode eq 0))/groupby((statecode,statuscode,operationtype),aggregate($count as count))
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Aprenda a consultar datos utilizando la API Web

Esto es lo que debe buscar en los resultados:

  • Filtrar trabajos listos en espera de recursos: limitar los resultados donde statecode = 0 y statuscode = 0 filtra los trabajos que están en Listo y Esperando recursos. Esta combinación indica trabajos que están en cola y preparados para ejecutarse pero que están en espera.

  • Optimización de la programación del trabajo : La identificación de patrones en la preparación del trabajo y los tiempos de espera puede informar mejoras en la programación del trabajo, lo que posiblemente conduzca a una distribución más equilibrada de la carga del sistema.

  • Identificar problemas subyacentes: En algunos casos, los trabajos que esperan recursos pueden no ser únicamente un problema de recursos, sino que también pueden ser indicativos de problemas subyacentes, como interbloqueos o mecanismos de bloqueo de recursos ineficientes.

Consultas para almacenamiento de archivos

Según el tamaño de la columna de datos de la tabla de AsyncOperation, los datos de esa columna se pueden guardar en el almacenamiento de archivos. La columna DataBlobId tiene un valor cuando la fila usa almacenamiento de archivos. Para ahorrar espacio, es posible que desee identificar y eliminar estos registros. Utilice las siguientes consultas para descubrir estos registros

Recuento de blobs de datos de almacenamiento de archivos de AsyncOperation

Utilice esta consulta para contar el número de registros en la tabla AsyncOperation donde la columna datablobid no es NULL.

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((datablobid ne null))/aggregate($count as FileStorageCount)
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0

Aprenda a consultar datos utilizando la API Web

Esto es lo que debe buscar en los resultados:

  • Implicaciones del almacenamiento de datos: Es posible que desee eliminar los registros al utilizar el almacenamiento de archivos para ahorrar espacio, por lo que es útil saberlo. Los números grandes pueden sugerir un espacio significativo utilizado por estos blobs, lo que puede ser importante para la administración del tamaño de la base de datos.

  • Consideraciones de rendimiento del sistema: Si FileStorageCount es inesperadamente alto, es posible que desee tomar medidas adicionales, como eliminar y limpiar en masa.

AsyncOperations no está en el almacenamiento de blobs

Utilice esta consulta para contar el número de registros en la tabla AsyncOperation donde el campo datablobid es NULL.

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((datablobid eq null))/aggregate($count as DBCount)
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0

Aprenda a consultar datos utilizando la API Web

Esto es lo que debe buscar en los resultados:

  • Comprensión de las operaciones asíncronas que no están en Blob Storage: El resultado DBCount indicará el volumen de operaciones asíncronas que no tienen blobs de datos asociados. Esto nos muestra el estado de almacenamiento cuando no se tienen en cuenta los blobs.

  • Identificar ineficiencias A menos que sea intencionado, un recuento alto aquí puede sugerir la necesidad de programar una limpieza y ejecutar una eliminación masiva. El recuento bajo en Blob Storage y el recuento alto aquí lo atribuye como el principal contribuyente al volumen.

Encuentre nombres de trabajos usando el almacenamiento de archivos

Los resultados de esta consulta muestran los tipos de trabajos, el nombre de los trabajos y la cantidad de veces que este trabajo existe en la tabla que consume almacenamiento de archivos. Utilícelo para identificar los nombres de trabajos específicos que tienen el mayor impacto en el consumo de archivos y cree un trabajo de eliminación masiva de registros que tengan ese nombre.

Esto permitirá identificar los nombres de trabajos específicos que tienen el mayor impacto en el consumo de archivos. Como resultado, el cliente puede iniciar un proceso de eliminación masiva para ese trabajo en particular focalizándose en su nombre.

Esta consulta no se ordena por la columna jobs en orden descendiente. Es posible que desee utilizar FetchXml con Web API en su lugar. Consultar datos mediante FetchXml

GET [Organization URI]/api/data/v9.2/asyncoperations?$apply=filter((datablobid ne null))/groupby((operationtype,name,friendlymessage),aggregate($count as jobs))
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Aprenda a consultar datos utilizando la API Web

Tamaño del archivo AsyncOperation y recuento de registros

Utilice esta consulta para obtener el tamaño total del archivo y el recuento de registros de los trabajos del sistema por estado, estado y extensión propietaria.

Este ejemplo utiliza el FetchXml codificado para enviar la consulta mediante la API web. Consultar datos mediante FetchXml

GET [Organization URI]/api/data/v9.2/asyncoperations?fetchXml=%3Cfetch%20aggregate%3D%27true%27%3E%20%3Centity%20name%3D%27asyncoperation%27%3E%20%3Cattribute%20name%3D%27owningextensionid%27%20alias%3D%27owningextension%27%20groupby%3D%27true%27%20%2F%3E%20%3Cattribute%20name%3D%27statecode%27%20alias%3D%27statecode%27%20groupby%3D%27true%27%20%2F%3E%20%3Cattribute%20name%3D%27statuscode%27%20alias%3D%27statuscode%27%20groupby%3D%27true%27%20%2F%3E%20%3Cattribute%20name%3D%27operationtype%27%20alias%3D%27operationtype%27%20groupby%3D%27true%27%20%2F%3E%20%3Clink-entity%20name%3D%27fileattachment%27%20to%3D%27datablobid%27%20from%3D%27fileattachmentid%27%20alias%3D%27fileattachment%27%20link-type%3D%27inner%27%3E%20%3Cattribute%20name%3D%27filesizeinbytes%27%20alias%3D%27TotalSize%27%20aggregate%3D%27sum%27%20%2F%3E%20%3Cattribute%20name%3D%27filesizeinbytes%27%20alias%3D%27RecordCount%27%20aggregate%3D%27count%27%20%2F%3E%20%3Cfilter%3E%20%3Ccondition%20attribute%3D%27objectidtypecode%27%20operator%3D%27eq%27%20value%3D%274700%27%20%2F%3E%20%3C%2Ffilter%3E%20%3Corder%20alias%3D%27TotalSize%27%20descending%3D%27true%27%20%2F%3E%20%3C%2Flink-entity%3E%20%3C%2Fentity%3E%20%3C%2Ffetch%3E
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0
Prefer: odata.include-annotations="OData.Community.Display.V1.FormattedValue"

Aprenda a consultar datos utilizando la API Web

Esto es lo que debe buscar en los resultados:

  • Recuento de registros:RecordCount le indica cuántos registros se devuelven para cada grupo de registros de trabajos del sistema. Esto le dará una idea del volumen de operaciones asincrónicas que se realizan y qué tipos son los más comunes.
  • Tamaño total del archivo:TotalSize le indica la cantidad de datos que manejan estas operaciones. Esto puede ayudarle a identificar si hay archivos inusualmente grandes que podrían estar afectando el rendimiento del sistema.
  • Agrupación por entidades propietarias: La consulta agrupa los resultados por owningextensionid, owningextensionidname, statecode, statuscode y operationtype. Mire estas agrupaciones para identificar qué extensiones generan la mayor actividad y si hay tipos de operaciones específicos que son predominantes.
  • Estados y estados de las operaciones: La inclusión de statecode y statuscode en la agrupación le ayudará a determinar el estado actual y el estado de estas operaciones, como cuáles están pendientes, en curso o finalizados.
  • Ordenar por Tamaño total: Dado que los resultados están ordenados por TotalSize en orden descendente, preste atención a los resultados principales, ya que resaltarán las operaciones que consumen la mayor cantidad de almacenamiento. Esto podría ser importante para identificar áreas potenciales de optimización o limpieza.

Eliminar trabajos del sistema

Puede eliminar trabajos del sistema en la aplicación o en el código, como con cualquier otra tabla si tiene los privilegios necesarios para hacerlo.

Note

Al registrar complementos asincrónicos, hay una opción para eliminar automáticamente operaciones exitosas. Se recomienda su uso. Aprenda a escribir un complemento

La práctica normal es crear un trabajo de eliminación en masa periódico que elimine los trabajos exitosos. Aprenda a eliminar una cantidad grande de datos específicos con la eliminación en masa

Administrar estados de trabajos del sistema

El estado del trabajo del sistema cambia varias veces hasta completar la operación. A continuación se describen las opciones StateCode y StatusCode que representan los valores disponibles de estado y razón de estado:

Valor de StateCode StateCode: Etiqueta Valor de StatusCode Etiqueta de StatusCode
0 Ready 0 Esperando recursos
1 Suspendido 10 Esperando
2 Locked 20 En proceso
2 Locked 21 Pausando
2 Locked 22 Cancelando
3 completado 30 Éxito
3 completado 31 Fallido
3 completado 32 cancelado

Puede cambiar el estado de los trabajos del sistema en la aplicación navegando a Configuración>Sistema>Trabajos del sistema con los comandos disponibles en el menú Más acciones.

Comandos de acción disponibles para los trabajos del sistema en la aplicación.

Note

Las acciones que puede realizar mediante esta interfaz de usuario también se pueden realizar con código. No puede realizar operaciones de cancelación, pausa, o reanudación en trabajos del sistema generados por la plataforma. Más información sobre los tipos de operación

Junto con las opciones de administrar las vistas, las siguientes opciones de administración de trabajos del sistema están disponibles:

Opción Descripción
Eliminar Utilizando el comando comando eliminar..
Elimina una tarea del sistema
Eliminación en masa Uso del menú Más acciones.
Abre un asistente para definir condiciones y crear un nuevo trabajo de eliminación masiva del sistema para eliminar aquellos trabajos del sistema que coincidan.
Cancelar Uso del menú Más acciones.
Cancela el trabajo del sistema.
Reanudar Uso del menú Más acciones.
Reanuda un trabajo del sistema en pausa.
Posponer Uso del menú Más acciones.
Reprograma un trabajo del sistema
Pausa Uso del menú Más acciones.
Pausa un trabajo del sistema.

Si la operación solicitada se produce depende del estado del trabajo del sistema. Por ejemplo, no puede pausar un trabajo que ya se ha completado o no ha comenzado aún. La siguiente tabla describe las condiciones para cada cambio y qué se producirá cuando se seleccionen.

Opción Valores StateCode válidos Cambio
Eliminar cualquiera Se elimina la tarea del sistema
Cancelar 0 (Preparado)
1 (Suspendida)
2 (Bloqueado)
StateCode cambiado a 3 (Completado) y StatusCode cambiado a 32 (Cancelado), o StateCode cambiado a 3 (Completado) y StatusCode cambiado a 31 (Fallido)
Resume 1 (Suspendido) StateCode cambió a 0 (Listo)
Retrasar 0 (Preparado)
2 (Bloqueado)
El cuadro de diálogo Posponer tarea solicita al usuario un valor de fecha y hora para posponer la tarea del sistema. Aprenda a posponer trabajos del sistema
Pausar 2 (Bloqueado) StateCode cambió a 1 (Suspendido)

Posponer tareas del sistema

La columna PostPoneUntil contiene un valor de fecha y hora cuando el trabajo del sistema cambia de estado de 1 (Suspendido) a 0 (Listo). Las columnas PostPoneUntil, StateCode y StatusCode son las únicas columnas de la tabla AsyncOperation admitidas para la actualización.

Consulte también

Escribir un complemento
Escriba complementos para ampliar los procesos de negocio