Définir les transitions de modèles d’état personnalisés
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 a la valeur 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.
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: ActifValue : 0 |
Label : En coursValue : 1State : 0 |
Label: ActifValue : 0 |
Label : SuspenduValue : 2State : 0 |
Label: ActifValue : 0 |
Label : En attente de détailsValue : 3State : 0 |
Label: ActifValue : 0 |
Étiquette : Recherche en coursValue : 4State : 0 |
Label: RésoluValue : 1 |
Label: Problème résoluValue : 5State : 1 |
Label: RésoluValue : 1 |
Étiquette : Informations fourniesValue : 1000State : 1 |
Étiquette : AnnuléValue : 2 |
Label : AnnuléValue : 6State : 2 |
Étiquette : AnnuléValue : 2 |
Label : Fusionné(e)Value : 2000State : 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 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é.
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 aura la valeur true. En outre, chaque StatusOptionMetadata dans la collection StatusAttributeMetadata.Options aura 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>
Hinweis
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.
<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>
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
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é).
Commentaires
Envoyer et afficher des commentaires pour