Service asynchrone

Le service asynchrone exécute des opérations longues indépendamment de l’opération principale Microsoft Dataverse. L’exécution d’opérations de longue durée de cette manière entraîne une amélioration des performances globales du système et une meilleure évolutivité. Le service asynchrone inclut une file d’attente gérée de type Premier entré-Premier sorti pour l’exécution des plug-ins inscrits asynchrones, des workflows et des opérations telles que l’envoi de courrier électronique en bloc, l’importation en bloc et la propagation d’activité de campagne. Ces opérations sont inscrites dans le service asynchrone et exécutées périodiquement lorsque le service traite sa file d’attente.

Une fois qu’un événement survient et que toutes les extensions synchrones ont été traitées, Dataverse sérialise le contexte pour toutes les extensions asynchrones et l’enregistre dans la base de données en tant que Tâche système dans la Table Tâche système (AsyncOperation). La tâche système définit et suit l’exécution de l’opération asynchrone. Au fur et à mesure que les ressources deviennent disponibles, Dataverse traite les tâches système et exécute les opérations qu’elles définissent. Dataverse traite toutes les opérations de données définies dans l’extension dans le pipeline d’exécution des événements, mais cette fois en tant qu’opération synchrone.

Commande d’exécution et dépendances

Les tâches système sont évaluées en tant que file d’attente à l’aide de la date CreatedOn. S’il n’y a aucune condition pour différer l’exécution, elles sont exécutées dès que les ressources sont disponibles. L’exécution n’est pas toujours garantie dans l’ordre défini par la date CreatedOn, car différents types d’opérations exigent différentes ressources.

Une tâche système peut être dépendante d’une autre tâche système de telle sorte qu’elle ne commence qu’une fois l’autre tâche système exécutée. La valeur de la colonne DependencyToken établit cette dépendance lorsqu’une tâche système est créée. Si la valeur DependencyToken est nulle, la tâche système n’a pas de dépendance. Les tâches systèmes dépendantes ont la même valeur DependencyToken et sont exécutées dans l’ordre de leur création. Si une tâche système est reportée, toutes les tâches système dépendantes suivantes restent en attente jusqu’à ce que la tâche système reportée soit exécutée.

Notes

Ce système de dépendance ne peut pas être utilisé par les plug-ins enregistrés pour s’exécuter de façon asynchrone, car les tâches système pour eux sont créés par le système.

la gestion des tâches système ;

Vous pouvez effectuer les opérations suivantes pour gérer les tâches système à l’aide de la Table AsyncOperation.

  • Récupérer les tâches système
  • Supprimer les tâches système
  • Gérer les états de la tâche système
  • Reporter les tâches système

Notes

Créer des tâches système avec un code non pris en charge. Bien que la table AsyncOperation prenne en charge plusieurs colonnes inscriptibles et crée des opérations, seules les colonnes suivantes sont prises en charge pour la mise à jour :

Récupérer les tâches système

Vous pouvez consulter des tâches système dans l’application en accédant à Paramètres > Système > Tâches système et vous pouvez également les rechercher à l’aide de la fonction Recherche avancée dans les applications pilotées par modèle.

À l’aide de code, vous pouvez récupérer des tâches système comme n’importe quelle autre table. La table suivante répertorie les colonnes sélectionnées qui sont importantes pour comprendre les tâches système :

Column Description
AsyncOperationId Identificateur unique de la tâche système.
CompletedOn Date et heure de fin de la tâche système.
CreatedBy Identificateur unique de l’utilisateur qui a créé la tâche système.
CreatedOn Date et heure de la création de la tâche système.
Data Données non structurées associées à la tâche système.
DependencyToken L’exécution de toutes les opérations ayant le même jeton de dépendance est sérialisée. En savoir plus sur la commande d’exécution et les dépendances
Depth Nombre d’appels SDK depuis le premier.
ErrorCode Code d’erreur renvoyé pour une tâche système annulée.
ExecutionTimeSpan Durée d’exécution de la tâche système.
FriendlyMessage Message fourni par la tâche système.
IsWaitingForEvent Indique que la tâche système attend un événement.
Message Message relatif à la tâche système.
MessageName Nom du message ayant démarré cette tâche système.
ModifiedBy Identificateur unique de l’utilisateur ayant modifié la tâche système pour la dernière fois.
ModifiedOn Date et heure de la dernière modification de la tâche système.
Name Nom de la tâche système.
OperationType Type de la tâche système. En savoir plus sur les types d’opération
OwnerId Identificateur unique de l’utilisateur ou de l’équipe propriétaire de la tâche système.
OwningBusinessUnit Identificateur unique de la division propriétaire de la tâche système.
OwningExtensionId Identificateur unique de l’extension propriétaire à laquelle la tâche système est associée.
OwningTeam Identificateur unique de l’équipe propriétaire de l’enregistrement.
OwningUser Identificateur unique de l’utilisateur propriétaire de l’enregistrement.
PostponeUntil Indique si la tâche système ne doit être exécutée qu’après la date et l’heure spécifiées. Apprendre à reporter les tâches système
PrimaryEntityType Type de table à laquelle la tâche système est associée en premier lieu.
RecurrencePattern Critère de périodicité de la tâche système. En savoir plus sur la récurrence des heures de début et critères de périodicité
RecurrenceStartTime Heure de début UTC du critère de récurrence. En savoir plus sur la récurrence des heures de début et critères de périodicité
RegardingObjectId Identificateur unique de l’objet auquel la tâche système est associée.
RetryCount Nombre de tentatives d’exécution de la tâche système.
Sequence Ordre dans lequel les opérations ont été soumises.
StartedOn Date et heure de début de la tâche système.
StateCode Statut de la tâche système. Apprendre à gérer les états de la tâche système
StatusCode Raison du statut de la tâche système. Apprendre à gérer les états de la tâche système
UTCConversionTimeZoneCode Code de fuseau horaire utilisé à la création de l’enregistrement.
WorkflowStageName Nom de la phase de workflow.

Exemples

Vous pouvez utiliser les exemples suivants pour récupérer les données de tâche système.

Utilisez la requête API web suivante pour récupérer les colonnes de la table ci-dessus. En savoir plus sur la manière d’interroger les données à l’aide de API

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)

Notes

Avec l’API web, il existe une propriété de navigation à valeur unique pour chaque table qui prend en charge les tâches système. Le nom de cette propriété de navigation suit le critère regardingobjectid_<table logical name>.

Types d’opération

La colonne OperationType décrit les catégories de tâches système. Dataverse initie plusieurs de ces types pour effectuer les tâches de maintenance.

Notes

Vous ne pouvez pas effectuer d’opérations Annuler, Suspendre ou Reprendre sur les tâches système générées par la plateforme.

Certains des types de ces tâches générées par la plateforme sont incluses dans le tableau suivant :

Valeur OperationType Étiquette OperationType
9 Collecte de données SQM
16 Collecter les statistiques sur l’organisation
18 Calculer la taille de stockage de l’organisation
19 Collecter les statistiques de la base de données de l’organisation
20 Collecter les statistiques sur la taille de l’organisation
22 Calculer la taille de stockage maximum de l’organisation
24 Mise à jour des intervalles statistiques
25 Index du catalogue de texte intégral de l’organisation
27 Mettre à jour les états des contrats
31 Notification de limite de stockage

Pour une liste complète, voir Choix/Options OperationType

Heures de début et critères de périodicité

Les tâches système périodiques exigent des informations concernant leur début et leur fréquence. Ces valeurs sont stockées dans la table AsyncOperation, les colonnes RecurrenceStartTime et RecurrencePattern.

Parce que vous ne pouvez pas créer d’enregistrements AsyncOperation directement avec du code, vous devez interpréter ces valeurs si vous interrogez les données. Ces valeurs de propriété sont définies indirectement en utilisant des messages qui créent de nouvelles tâches système. Les messages BulkDelete et BulkDeleteDuplicates incluent les paramètres ou les propriétés dans les actions correspondantes de l’API Web ou dans les classes de demande de SDK pour .NET. En savoir plus : catégorie BulkDetectDuplicatesRequest, catégorie action BulkDetectDuplicates, BulkDeleteRequest et action BulkDelete

RecurrenceStartTime est simplement une valeur date/heure pour indiquer quand la tâche système doit démarrer. Si aucune valeur n’est définie, la tâche système devait commencer immédiatement.

La colonne RecurrencePattern stocke des informations sur la fréquence à laquelle les tâches système récurrentes se produisent. La plateforme définit parfois cette valeur lorsqu’un enregistrement d’opération asynchrone est créé. Vous pouvez définir cette valeur pour modifier le critère.

Les valeurs de cette colonne utilisent des parties de la norme Internet RFC2445 (spécification d’objet principal de calendrier et de planification Internet).

Le tableau suivant indique quelques exemples :

Modèle de périodicité Fréquence d’exécution d’une tâche
FREQ=MONTHLY; Une fois par mois
FREQ=WEEKLY; Une fois par semaine
FREQ=DAILY; Une fois par jour
FREQ=DAILY;INTERVAL=3; Tous les 3 jours
FREQ=HOURLY; Une fois par heure

Si aucune valeur INTERVAL n’est définie, elle est interprétée comme 1.

Requêtes de diagnostic

Utilisez les requêtes de cette section pour vous aider à diagnostiquer les problèmes.

Tâches par état, statut et type

Utilisez cette requête pour comprendre la répartition et la fréquence des différentes types de tâches. Les résultats pourraient vous indiquer quelles tâches posent problème.

Cette requête ne classe pas par count dans l’ordre décroissant. Vous souhaiterez peut-être plutôt utiliser FetchXml avec l’API Web. Interroger des données à l’aide de 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"

En savoir plus sur la manière d’interroger les données à l’aide de API

Principales tâches système suspendues, par nombre

Utilisez cette requête pour extraire le nombre de toutes les tâches dans la table AsyncOperation qui se trouve dans un état Suspendu. Cette requête vous aide à :

  • Comprendre le volume et la nature des tâches en attente.
  • Identifiez où se produisent les blocages.
  • Prenez des décisions éclairées sur la manière de les résoudre pour améliorer les performances et le débit du système.

Cette requête ne classe pas par count dans l’ordre décroissant. Vous souhaiterez peut-être plutôt utiliser FetchXml avec l’API Web. Interroger des données à l’aide de 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"

En savoir plus sur la manière d’interroger les données à l’aide de l’API web

Voici ce qu’il faut rechercher dans les résultats :

  • Quantifier les tâches suspendues : la requête cible spécifiquement les tâches qui sont Suspendues (statecode = 1). Les résultats vous donnent un décompte de toutes ces tâches, classées par leur statuscode et operationtype.

  • Répartition des types d’opérations : nombre de tâches suspendues regroupées par operationtype, vous montrant les types d’opérations les plus courants avec un état Suspendu.

  • Identification des goulots d’étranglement potentiels : un nombre élevé de tâches suspendues pendant des périodes prolongées peut être dû à des ressources limitées, à des dépendances à d’autres processus ou aux mauvaises configurations du système.

  • Gestion des capacités et des ressources : si certaines tâches sont systématiquement à l’état Suspendu, cela peut indiquer que le système ne dispose pas des ressources nécessaires pour traiter efficacement ces tâches.

  • Vérification de l’état du système : les tâches définies sur un état Suspendu servent d’indicateur d’état de santé. Un système sain devrait idéalement avoir un minimum de tâches définies sur un état Suspendu ou au moins afficher un changement rapide de l’état Suspendu au traitement actif.

  • Efficacité du flux de travail : les résultats peuvent mettre en lumière l’efficacité du flux de travail. Si un operationtype spécifique présente un nombre élevé de tâches suspendues, cela peut indiquer des inefficacités ou la nécessité d’une optimisation au sein de ce flux de travail.

Workflows par nombre

Cette requête fournit une répartition détaillée des tâches liées aux workflows, filtrée par une valeur operationtype pour les workflows. Utilisez les résultats de la requête pour obtenir une vue complète des tâches de flux de travail, gérer les ressources système plus efficacement et garantir que les flux de travail s’exécutent de manière fluide et efficace.

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"

En savoir plus sur la manière d’interroger les données à l’aide de l’API web

Voici ce qu’il faut rechercher dans les résultats :

  • Tâches spécifiques au workflow : le filtre operationtype = 10 limite les résultats aux tâches de workflow. Vous pouvez voir combien de tâches sont liées aux flux de travail et leurs statuts actuels. Vous pouvez également appliquer cet exemple de requête avec d’autres types d’opérations. En savoir plus sur les types d’opération

  • Distribution de l’état des tâches : statecode vous indique l’état actuel de ces tâches de flux de travail, par exemple si elles sont Prêtes, Suspendues, Verrouillées ou Terminées.

  • Analyse du code d’état : statuscode peut donner des informations spécifiques sur la raison de l’état actuel d’une tâche. Par exemple, il peut indiquer si une tâche est définie sur En attente de ressources, En attente, En cours, En pause, En cours d’annulation, Réussite, Échec ou Annulée.

  • Nombre de chaque catégorie : nombre total de tâches pour chaque combinaison statecode et statuscode. Cela aide à identifier les résultats les plus courants des opérations de flux de travail.

  • Identification des résultats courants : avec les résultats classés par nombre par ordre décroissant, vous pouvez identifier les résultats ou les goulots d’étranglement les plus fréquents dans le traitement du flux de travail.

  • Dépannage et optimisation : un nombre élevé d’états définis sur Échec ou Suspendu peut mettre en évidence des zones où les flux de travail peuvent échouer ou rester bloqués, signalant un besoin de dépannage ou d’optimisation des processus.

  • Mesures de performances : comprendre quels flux de travail sont les plus courants et comment ils sont répartis entre différents états peut aider à évaluer les performances et la fiabilité du système de gestion des flux de travail.

  • Planification des capacités : un nombre constamment élevé de flux de travail définis sur En cours ou En attente pourrait suggérer que plus de ressources sont nécessaires pour gérer la charge, ou qu’il est nécessaire d’optimiser l’environnement d’exécution du flux de travail.

  • Gestion des flux de travail : les résultats de la requête peuvent guider les administrateurs dans la gestion plus efficace des flux de travail, par exemple en décidant des flux de travail à prioriser ou en identifiant les flux de travail qui peuvent être optimisés ou désactivés.

  • Bilan de santé du système : les résultats globaux peuvent servir de bilan de santé pour votre système de flux de travail, indiquant si le système fonctionne de manière optimale ou s’il existe des domaines qui nécessitent une attention particulière.

Tâches en attente de disponibilité des ressources système

Utilisez cette requête pour récupérer une analyse détaillée des tâches de la table AsyncOperation qui sont dans un état de préparation spécifique, mais sont en attente d’exécution en raison de l’indisponibilité des ressources système. Cette requête peut identifier les facteurs contribuant à la lenteur et à la prise de décisions pour plus d’efficacité et une meilleure gestion du retard.

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"

En savoir plus sur la manière d’interroger les données à l’aide de l’API web

Voici ce qu’il faut rechercher dans les résultats :

  • Filtrer les tâches prêtes en attente de ressources : limiter les résultats où statecode = 0 et statuscode = 0 filtre les tâches dont l’état est défini sur Prêtes et En attente de ressources. Cette combinaison indique les tâches qui sont en file d’attente et prêtes à être exécutée, mais qui sont suspendues.

  • Optimiser la planification des tâches : l’identification de modèles de préparation au travail et de temps d’attente peut éclairer l’amélioration de la planification des travaux, conduisant éventuellement à une répartition plus équilibrée de la charge du système.

  • Identifier les problèmes sous-jacents : dans certains cas, les tâches en attente de ressources peuvent ne pas être uniquement un problème de ressources, mais peuvent être le signe de problèmes sous-jacents tels que des blocages ou des mécanismes de verrouillage de ressources inefficaces.

Requêtes pour le stockage de fichiers

Si la Colonne de données de la table AsyncOperation est supérieure à 4 Mo, les données de cette colonne sont enregistrées dans le stockage de fichiers. La colonne DataBlobId a une valeur lorsque la ligne utilise le stockage de fichiers. Pour gagner de l’espace, vous souhaiterez peut-être identifier et supprimer ces enregistrements. Utiliser les requêtes suivantes pour découvrir ces enregistrements

Nombre datablobid de stockage de fichiers AsyncOperation

Utilisez cette requête pour compter le nombre d’enregistrements dans la table AsyncOperation où la colonne datablobid n’est pas nulle.

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

En savoir plus sur la manière d’interroger les données à l’aide de l’API web

Voici ce qu’il faut rechercher dans les résultats :

  • Implications sur le stockage des données : vous souhaiterez peut-être supprimer les enregistrements en utilisant le stockage de fichiers pour économiser de l’espace, il est donc utile de le savoir. Des nombres élevés peuvent suggérer un espace important utilisé par ces blobs, ce qui peut être important pour la gestion de la taille de la base de données.

  • Considérations sur les performances du système : si FileStorageCount est étonnamment élevé, vous souhaiterez peut-être prendre d’autres mesures, telles qu’une suppression et un nettoyage groupés.

AsyncOperations pas dans le stockage blob

Utilisez cette requête pour compter le nombre d’enregistrements dans la table AsyncOperation où le champ datablobid est 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

En savoir plus sur la manière d’interroger les données à l’aide de l’API web

Voici ce qu’il faut rechercher dans les résultats :

  • Comprendre les opérations asynchrones qui ne sont pas dans le stockage blob : le résultat DBCount indiquera le volume d’opérations asynchrones qui n’ont pas de blobs de données associés. Cela nous montre l’état du stockage sans tenir compte des blobs.

  • Identifier les inefficacités Sauf intentionnellement, un nombre élevé ici peut suggérer la nécessité de planifier un nettoyage et d’exécuter une suppression groupée. Un nombre faible dans le stockage blob et un nombre élevé ici attribueraient cela au volume principal collaborateur.

Rechercher les noms des tâches à l’aide du stockage de fichiers

Les résultats de cette requête affichent les types de tâches, le nom des tâches et le nombre de fois que cette tâche existe sur la table consommant du stockage de fichiers. Utilisez-le pour identifier les noms de tâches spécifiques qui ont le plus grand impact sur la consommation de fichiers et créer une tâche de suppression groupée pour les enregistrements portant ce nom.

Cela permettra d’identifier les noms de tâches spécifiques qui ont le plus grand impact sur la consommation de fichiers. Par conséquent, le client peut lancer un processus de suppression groupée pour cette tâche particulière en ciblant son nom.

Cette requête ne classe pas par colonne jobs dans l’ordre décroissant. Vous souhaiterez peut-être plutôt utiliser FetchXml avec l’API Web. Interroger des données à l’aide de 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"

En savoir plus sur la manière d’interroger les données à l’aide de l’API web

Taille du fichier AsyncOperation et nombre d’enregistrements

Utilisez cette requête pour obtenir la taille totale des fichiers et le nombre d’enregistrements pour les tâches système par état, statut et extension propriétaire.

Cet exemple utilise le FetchXml codé pour envoyer la requête à l’aide de l’API Web. Interroger des données à l’aide de 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"

En savoir plus sur la manière d’interroger les données à l’aide de l’API web

Voici ce qu’il faut rechercher dans les résultats :

  • Nombre d’enregistrements : RecordCount vous indique combien d’enregistrements sont renvoyés pour chaque groupe d’enregistrements de tâches système. Cela vous donnera une idée du volume d’opérations asynchrones effectuées et des types les plus courants.
  • Taille totale du fichier : TotalSize vous indique la quantité de données traitées par ces opérations. Cela peut vous aider à identifier s’il existe des fichiers inhabituellement volumineux susceptibles d’affecter les performances du système.
  • Regroupement par entités propriétaires : La requête regroupe les résultats par owningextensionid, owningextensionidname, statecode, statuscode et operationtype. Examinez ces regroupements pour identifier les extensions qui génèrent le plus d’activité et s’il existe des types d’opérations spécifiques qui prédominent.
  • États et statuts des opérations : L’inclusion de statecode et statuscode dans le regroupement vous aide à déterminer l’état et le statut actuels de ces opérations, par exemple lesquelles sont en attente, en cours ou terminés.
  • Tri par taille totale : puisque les résultats sont classés par TotalSize par ordre décroissant, faites attention aux meilleurs résultats, car ils mettront en évidence les opérations qui consomment le plus de stockage. Cela pourrait être important pour identifier les domaines potentiels d’optimisation ou de nettoyage.

Supprimer les tâches système

Vous pouvez supprimer des tâches système dans l’application ou dans le code comme n’importe quelle autre table si vous disposez des privilèges nécessaires pour le faire.

Notes

Lors de l’enregistrement de plug-ins asynchrones, vous pouvez supprimer automatiquement les opérations réussies. Cette utilisation est recommandée. Apprendre à écrire un plug-in

La pratique courante consiste à créer une tâche de suppression en bloc périodique qui supprime ces tâches réussies. Apprendre à supprimer une grande quantité de données ciblées spécifiques avec la suppression en bloc

Gérer les états de la tâche système

Le statut de la tâche système change à plusieurs reprises jusqu’à ce que l’opération soit terminée. Ci-après, vous trouverez les options StateCode et StatusCode qui représentent les valeurs d’état et de raison du statut disponibles :

Valeur StateCode Étiquette StateCode Valeur StatusCode Étiquette StatusCode
0 Prête 0 En attente de ressources
1 Interrompu 10 En attente
2 Verrouillé 20 En cours
2 Verrouillé 21 Suspension en cours
2 Verrouillé 22 Annulation en cours
3 Terminé 30 Réussi
3 Terminé 31 Échec
3 Terminé 32 Annulée

Vous pouvez modifier le statut des tâches système dans l’application en accédant à Paramètres > Système > Tâches système et en utilisant les commandes disponibles dans le menu Autres actions.

Commandes d’action disponibles pour les tâches système dans l’application.

Notes

Toute action que vous pouvez effectuer via cette interface utilisateur peut être également exécutée avec du code. Vous ne pouvez pas effectuer d’opérations Annuler, Suspendre ou Reprendre sur les tâches système générées par la plateforme. En savoir plus sur les types d’opération

En parallèle avec les options pour gérer les vues, les options suivantes pour gérer les tâches système sont les suivantes :

Option Description
Suppr Utilisation du commande de suppression. commande.
Supprime une tâche système
Suppression en bloc Utilisation du menu Autres actions.
Ouvre un assistant pour définir les conditions et créer une tâche système Suppression en bloc pour supprimer les tâches système correspondantes.
Annuler Utilisation du menu Autres actions.
Annule la tâche système.
Reprendre Utilisation du menu Autres actions.
Reprend une tâche système suspendue.
Reporter Utilisation du menu Autres actions.
Reprogramme une tâche système
Pause Utilisation du menu Autres actions.
Suspend une tâche système.

Indique que l’exécution de l’opération demandée dépend de l’état de la tâche système. Par exemple, vous ne pouvez pas suspendre une tâche déjà exécutée ou pas encore démarrée. Le tableau suivant décrit les conditions pour chaque modification et ce qui se passe lorsqu’elles sont sélectionnées.

Option Valeurs StateCode valides Modifier
Delete tous La tâche système est supprimée
Annuler 0 (Prête)
1 (Suspendue)
2 (Verrouillée)
StateCode est passé sur 3 (Terminée) et StatusCode est passé sur 32 (Annulée)
Reprendre 1 (Suspendue) StateCode est passé sur 0 (Prête)
Reporter 0 (Prête)
2 (Verrouillée)
La boîte de dialogue Reporter la tâche invite l’utilisateur à saisir une valeur date/heure à laquelle reporter la tâche système. Apprendre à reporter les tâches système
Pause 2 (Verrouillée) StateCode est passé sur 1 (Suspendue)

Reporter les tâches système

La colonne PostPoneUntil contient une valeur datetime lorsque la tâche système change d’état pour passer de 1 (Suspendue) à 0 (Prêt). Les colonnes PostPoneUntil, StateCode et StatusCode sont les seules colonnes du tableau AsyncOperation prises en charge pour la mise à jour.

Voir aussi

Écrire un plug-in
Écrire des plug-ins pour étendre les processus d’entreprise

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).