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 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)
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"
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"
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 sustatuscode
yoperationtype
.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"
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 operacionesDistribució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
ystatuscode
. 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"
Esto es lo que debe buscar en los resultados:
Filtrar trabajos listos en espera de recursos: limitar los resultados donde
statecode
=0
ystatuscode
=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
Dependiendo del tamaño de la columna de datos de la tabla AsyncOperation
, los datos de esa columna pueden guardarse 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
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
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"
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"
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
yoperationtype
. 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
ystatuscode
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.
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. 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).