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 primero en entrar, primero en salir (FIFO) administrada, para la ejecución de complementos registrados asincrónicos, de flujos de trabajo y operaciones como correo masivo, importación masiva y propagación de actividad 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 base de datos como un Trabajo del sistema en la tabla de trabajos del sistema (AsyncOperation). El trabajo del sistema define y sigue la ejecución de operaciones asincrónicas. 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 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 columna DependencyToken establece esta dependencia cuando se crea un trabajo del sisteam. 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 posteriores continúan esperando hasta que el trabajo pospuesto del sistema se ejecute.

Nota

Este sistema de dependencia no se puede usar por complementos registrados para ejecutarse de forma asincrónica porque los trabajos del sistema para ellos son creados por el sistema.

Administración de trabajos del sistema

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

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

Nota

Crear trabajos del sistema con código no se admite. 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:

Recuperar trabajos 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.

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

Columnas Descripción
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 el trabajo del sistema.
IsWaitingForEvent Indica que el trabajo del sistema está esperando un evento.
Message Mensaje relacionado con el trabajo 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 del 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 a la que está asociado el trabajo del sistema en primer lugar.
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 en UTC del patrón de la periodicidad. 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 para reintentar el trabajo 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 para el 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 trabajo del sistema.

Utilice la siguiente consulta de API web para recuperar las columnas de la tabla anterior. Aprenda a consultar datos utilizando API Web

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)

Nota

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.

Nota

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 la periodicidad

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 los mensajes que crean nuevos trabajos del sistema. Los mensajes BulkDelete y BulkDeleteDuplicates incluyen ambos los parámetros o las propiedades de las Acciones API web o las clases de solicitud de 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 frecuencia con la que ocurren los trabajos del sistema. A veces la plataforma establece este valor cuando se crea 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 trabajos del sistema que están en estado suspendido por 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 sistemas. configuraciones erróneas.

  • 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 estado. Idealmente, un sistema saludable debería tener un mínimo de empleos 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, Correcto, Error 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

Cuando la columna de datos de la tabla AsyncOperation tiene más de 4 MB, los datos de esa columna se guardan 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 datablobid 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 atribuirían como el volumen principal colaborador.

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 apuntando a 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.

Nota

Al registrar complementos asincrónicos, hay una opción de eliminar automáticamente operaciones de éxito. Se recomienda que la use. Aprenda a escribir un complemento

La práctica normal es crear un trabajo de eliminación en masa periódico que elimine los trabajos con éxito. 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 para el estado:

Valor de StateCode Etiqueta de StateCode Valor de StatusCode Etiqueta de StatusCode
0 Preparada 0 Esperando recursos
1 Suspendida 10 En espera
2 Bloqueado 20 En curso
2 Bloqueado 21 Pausando
2 Bloqueado 22 Cancelando
3 Finalizado 30 Correcto
3 Finalizado 31 Error
3 Finalizado 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.

Nota

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
Delete Uso del comando eliminar. comando.
Elimina un trabajo del sistema
Eliminación en masa Uso del menú Más acciones.
Abre el asistente para definir condiciones y crear un nuevo trabajo del sistema de eliminación en masa para eliminar los trabajos del sistema coincidentes.
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 Cambiar
Delete cualquiera Se elimina el trabajo del sistema
Cancelar 0 (Listo)
1 (Suspendido)
2 (Bloqueado)
StateCode ha cambiado a 3 (Completado) y StatusCode ha cambiado a 32 (Cancelado)
Reanudar 1 (Suspendido) StateCode cambió a 0 0 (Listo)
Posponer 0 (Listo)
2 (Bloqueado)
El diálogo Posponer trabajo solicita al usuario un valor datetime para posponer el trabajo del sistema. Aprenda a posponer trabajos del sistema
Pausa 2 (Bloqueado) StateCode cambió a 1 (Suspendido)

Posponer trabajos 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

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).