Partager via


Définir les transitions de modèles d’état personnalisés

 

Date de publication : janvier 2017

S’applique à : Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Vous pouvez spécifier les transitions d'état personnalisé de l'entité Incident (Incident) ou des entités personnalisées. La propriété EntityMetadata.IsStateModelAware est true pour les entités prenant en charge les transitions de modèle d’état.

Les transitions d’état personnalisées ont un niveau facultatif de filtrage pour définir les transitions d’état valides pour un enregistrement dans un état donné. Notamment lorsqu’il existe un grand nombre de combinaisons d’états valides et de valeurs de statut, la définition d’une liste limitée d’options peut faciliter le choix du statut correct d’un enregistrement.

Contenu de la rubrique

Qu’est-ce que le modèle d’état ?

Rechercher les transitions de statut valides

Qu’est-ce que le modèle d’état ?

Les entités qui prennent en charge le concept d’état possèdent une paire d’attributs destinées à capturer ces données, comme illustré dans ce tableau.

Nom logique

Nom complet

Description

statecode

Statut 

Représente le statut de l’enregistrement. Pour les entités personnalisées, Actif ou Inactif. L’entité Incident (case) utilise Actif, Résolu et Annulé. Vous ne pouvez pas ajouter d’autres options d’état, mais vous pouvez modifier les étiquettes des options.

statuscode

Raison du statut

Représente un statut lié à un état spécifique. Chaque état doit avoir au moins un statut possible. Vous pouvez ajouter des options de statut supplémentaires et modifier les étiquettes des options existantes.

Les métadonnées des attributs définissent les valeurs de statut valides pour un état donné. Par exemple, pour l’entité Incident (Incident), l’état par défaut et les options de statut sont répertoriés dans le tableau suivant.

État

Statut 

Label: Actif

Value : 0

Label : En cours

Value : 1

State : 0

Label : Suspendu

Value : 2

State : 0

Label : En attente de détails

Value : 3

State : 0

Étiquette : Recherche en cours

Value : 4

State : 0

Label: Résolu

Value : 1

Label: Problème résolu

Value : 5

State : 1

Étiquette : Informations fournies

Value : 1000

State : 1

Étiquette : Annulé

Value : 2

Label : Annulé

Value : 6

State : 2

Label : Fusionné(e)

Value : 2000

State : 2

Ces données sont stockées dans la classe StatusOptionMetadata, qui représente les options de la classe StatusAttributeMetadata.

Pour afficher les métadonnées d'entité pour votre organisation, installez la solution Navigateur de métadonnées décrite dans l'article Parcourir les métadonnées de votre organisation. Vous pouvez également afficher les métadonnées d'une organisation non personnalisée dans un fichier Excel appelé EntityMetadata.xlsx dans le dossier de niveau supérieur du téléchargement du Kit de développement logiciel (SDK).

Rechercher les transitions de statut valides

Vous pouvez modifier l'attribut statuscode pour définir quelles autres options de statut représentent des transitions valides du statut actuel. Pour plus d’instructions, voir la rubrique du Guide de personnalisation : Définir les transitions de raison du statut

Quand les transitions d’état personnalisées sont appliquées à une entité, la propriété EntityMetadata.EnforceStateTransitions est true. En outre, chaque StatusOptionMetadata de la collection StatusAttributeMetadata.Options a une nouvelle propriété TransitionData. Cette propriété contient une valeur de chaîne représentant un document XML. Ce document contient la définition des transitions autorisées. Par exemple, l’option par défaut de l’attribut Incident (Incident) StatusCode peut avoir la valeur TransitionData suivante.

<allowedtransitions xmlns="https://schemas.microsoft.com/crm/2009/WebServices">
<allowedtransition sourcestatusid="1" tostatusid="6" />
<allowedtransition sourcestatusid="1" tostatusid="1000" /> 
<allowedtransition sourcestatusid="1" tostatusid="2000" />
<allowedtransition sourcestatusid="1" tostatusid="5" />
</allowedtransitions>

Notes

Lorsque ces données sont récupérées en code non managé à partir du service web, par exemple lorsque vous utilisez JavaScript, elles sont placées dans une séquence d’échappement et apparaissent comme dans l’exemple ci-après.

&lt;allowedtransitions xmlns="https://schemas.microsoft.com/crm/2009/WebServices"&gt;
&lt;allowedtransition sourcestatusid="1" tostatusid="6" /&gt;
&lt;allowedtransition sourcestatusid="1" tostatusid="1000" /&gt;
&lt;allowedtransition sourcestatusid="1" tostatusid="2000" /&gt;
&lt;allowedtransition sourcestatusid="1" tostatusid="5" /&gt;
&lt;/allowedtransitions&gt;

Lorsque ces données sont présentes et que la propriété EnforceStateTransitions de l’entité est true, une instance d’incident ne peut être modifiée qu’en l’une des valeurs statuscode autorisées. Vous pouvez utiliser IOrganizationService.Update pour définir le statuscodeOptionSetValue sur l'une des valeurs autorisées qui ne représentent pas un changement d'état. Pour modifier l’état, utilisez SetStateRequest définissant les valeurs des propriétés State et Status autorisées ou le CloseIncidentRequest définissant la propriété Status avec l’une des valeurs autorisées pour la valeur statuscode actuelle. La tentative de définir une valeur non valide déclenche une erreur.

Voir aussi

Exemple : Récupérer les transitions d’état valides
État et statut d’enregistrement
Récupérer et détecter les modifications apportées aux métadonnées
Définir les transitions de raison du statut

Microsoft Dynamics 365

© 2017 Microsoft. Tous droits réservés. Copyright