États des opérations asynchrones

Une fois les opérations asynchrones ajoutées à la file d’attente asynchrone, elles existent dans un état bien défini. Une opération asynchrone peut être en attente d’exécution, en cours d’exécution ou terminée. Il existe également d’autres états possibles avant que l’opération ne soit finalement supprimée de la file d’attente. Les états définissent le cycle de vie de l’opération asynchrone.

États des opérations asynchrones

L’état de l’opération asynchrone peut être modifié de trois façons : par la plateforme dans le cadre du traitement normal de la file d’attente, par l’utilisateur qui interagit avec l’application web Dynamics 365 Customer Engagement (on-premises) ou par un appel de service web qui modifie l’opération asynchrone. En tant que développeur, vous pouvez extraire l’état en cours d’une opération asynchrone à laquelle vous avez accès, ainsi que modifier l’état.

Le tableau suivant répertorie les états d’une AsyncOperation et leurs statuts.

État Statut Valeur de statut numérique
Prête WaitingForResources 0
Suspendu(e) En attente 10
Verrouillée InProgress 20
Verrouillée Suspension en cours 21
Verrouillée Annulation en cours 22
Terminée Terminé(e) 30
Terminée Échec 31
Terminée Annulée 32

Les états pris en charge sont définis dans l’énumération AsyncOperationState. Dans la classe AsyncOperation à liaison anticipée, l’état est disponible dans l’attribut AsyncOperation.StateCode, tandis que le statut l’est dans l’attribut AsyncOperation.StatusCode. Pour plus d’informations, consultez la rubrique Métadonnées de l’entité AsyncOperation. Pour afficher les métadonnées d'entité pour votre organisation, installez la solution Navigateur de métadonnées décrite dans l'article Accès aux métadonnées de votre organisation. Vous pouvez également accéder à la documentation de référence pour les entités dans Référence d'entité.. Les rapports sont affichés dans l’application web Dynamics 365 Customer Engagement (on-premises), dans le champ Raison du statut de la grille Tâches système. En sélectionnant l’un des éléments du menu Autres actions de Tâches système, vous pouvez modifier interactivement l’état d’une opération asynchrone. Les actions autorisées sont les suivantes : Annuler, Reprendre, Reporter et Suspendre.

Le diagramme suivant illustre les transitions d’état d’une opération asynchrone qui sont pris en charge.

Diagramme d’état asyncoperation.

Notez qu’une opération asynchrone ne peut passer d’un état à un autre que le long de chemins spécifiques, comme illustré dans le diagramme. Certains chemins d’accès sont initiés par l’utilisateur interagissant avec l’application web Dynamics 365 Customer Engagement (on-premises), alors que d’autres chemins d’accès le sont par la plateforme Dynamics 365 Customer Engagement (on-premises) dans le cadre du traitement normal de la file d’attente ou en raison d’un appel de service web. Par exemple, une opération asynchrone ne peut pas passer directement de l’état Suspendu à l’état Verrouillé.

Un état verrouillé indique que l’instance AsyncOperation est en cours d’utilisation par le service asynchrone. Lorsqu’elle est verrouillée, elle ne peut pas être utilisée par une autre instance du service. Cela garantit que l’instance n’est pas exécutée plusieurs fois, par exemple par deux services asynchrones différents.

Extraire et mettre à jour les états AsyncOperation

La surveillance et la mise à jour de l’état d’une opération asynchrone sont généralement effectuées interactivement via la grille Tâches système de l’application web Dynamics 365 Customer Engagement (on-premises). Toutefois, vous pouvez aussi utiliser le Kit de développement logiciel (SDK) pour écrire le code qui exécute ces mêmes tâches.

Lire l’état d’une opération asynchrone

  1. Extrayez une AsyncOperation par son nom à l’aide de la méthode RetrieveMultiple ou par son ID à l’aide de la méthode Retrieve.

  2. Lisez l’attribut AsyncOperation.StateCode.

Modifier le code d’état

  1. Modifiez l’attribut du code d’état extrait avec une nouvelle valeur, selon les états de l’opération autorisés. Vous pouvez également modifier l’attribut AsyncOperation.PostponeUntil.

  2. Appelez Update pour modifier la valeur de ces attributs dans la base de données.

    Les opérations précédentes peuvent également être effectuées à l’aide de la méthode IOrganizationService.Execute avec les messages de demande adéquats. Les attributs d’une AsyncOperation autres que AsyncOperation.StateCode et AsyncOperation.PostponeUntil doivent être considérés comme étant en lecture seule.

Tâches système récurrentes

Vous ne pouvez pas annuler, suspendre ou reprendre une tâche système. Consultez la liste suivante, qui identifie certaines tâches système restreintes. La valeur de la première colonne est la valeur de l’attribut OperationType de l’entité AsyncOperation.

Type d’opération asynchrone (valeur d’option) Description de l’opération
22 Calculer la taille de stockage maximum de 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
16 Collecter les statistiques sur l’organisation
9 Collecte de données SQM
25 Index du catalogue de texte intégral de l’organisation
31 Notification de limite de stockage
24 Mise à jour des intervalles statistiques
27 Mettre à jour les états des contrats

Pour obtenir la liste complète des types d’opérations asynchrones pris en charge, consultez la rubrique Métadonnées de l’entité AsyncOperation. Pour afficher les métadonnées d'entité pour votre organisation, installez la solution Navigateur de métadonnées décrite dans l'article Accès aux métadonnées de votre organisation. Vous pouvez également accéder à la documentation de référence pour les entités dans Référence d'entité.

Voir aussi

Service asynchrone
Entité d’opération asynchrone (tâche système)
Ordre de dépendance et d’exécution dans les opérations asynchrones

Hinweis

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é).