---
sourceDocument: Gestion des services IT Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/it-service-management

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Gestion des services IT Xanadu

ft:clusterId :

    - itsm

bundleId :

    - itsm

workflow :

    - Technology


---

# Ajouter un état au modèle d'état

# Ajouter un état au modèle d'état {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 5 minutes de lecture

Vous pouvez ajouter un nouvel état au modèle d'état existant pour différents types de changement en fonction des exigences de votre organisation.

## Avant de commencer

Rôle requis : script_include_admin, ui_policy_admin, ui_action_admin ou admin

## Pourquoi et quand exécuter cette tâche

Le module d'extension [State Model](https://servicenow-prod.fluidtopics.net/~8_9VQczf1P1btXnz_6W9w "Vous pouvez activer le module d’extension Gestion des changements - State Model (com.snc.change_management.state_model) si vous disposez du rôle administrateur. Ce module d’extension inclut des données de démonstration et active les modules d’extension connexes s’ils ne sont pas déjà activés.") est activé par défaut. Pour plus d'informations sur les états du système de base pour les demandes de changement, consultez [Modèle et transitions d'état](https://servicenow-prod.fluidtopics.net/Uptvu6faDOztBVcyqdnRxA "Gestion des changements fournit un modèle d’état pour déplacer et suivre les demandes de changement selon différents états.").

## Procédure

1. Accédez à ToutChangementCréer et procédez comme suit pour ajouter un choix à la liste de choix.
   1. Cliquez avec le bouton droit sur le champ État, puis cliquez sur Configurer le dictionnaire.
   2. Dans la liste connexe Choix, exécutez un filtre pour \[Table\] \[is\] \[change_request\].
   3. Cliquez sur Nouveau et ajoutez le nouvel état avec les informations suivantes.  
      * Table : Demande de changement \[change_request\]
      * Étiquette : nom de votre nouvel état
      * Valeur : valeur numérique non encore affectée à un choix d'état existant
      * Séquence : numéro correspondant à l'emplacement d'affichage dans la liste des états. Si vous lui affectez le même numéro de séquence qu'un autre choix, il s'affichera en dessous de celui-ci.
      {#t_AddANewState__ul_fwz_ncm_5y}
   4. Cliquez sur Envoyer.
   {#t_AddANewState__substeps_sbc_1cm_5y}
2. Accédez à Définition du systèmeIncludes de script.  
   Les enregistrements d'include de script dont le nom contient SNC sont en lecture seule. Lorsque vous effectuez les étapes suivantes, assurez-vous de sélectionner l'include de script correct à modifier. Par exemple, modifiez ChangeRequestStateHandler, non ChangeRequestStateHandlerSNC.  
   Remarque :  
   les includes de script étendus (sans SNC) incluent toutes les fonctionnalités de leurs équivalents SNC. Si vous modifiez un l'include de script de base (ajouté avec SNC), il n'est plus mis à jour lors des mises à niveau du système.
3. Ouvrez le script ChangeRequestStateHandler pour apporter les modifications suivantes.  
   * Mettez à jour la section statehandler constants (constantes du gestionnaire d'état) au début de cet include de script pour inclure des valeurs pour l'état que vous venez d'ajouter. Par exemple :

         ChangeRequestStateHandler.MY_NEW_STATE = "mynewstate";

   * Mettez à jour la carte STATE_NAMES à la fin de la fonction d'initialisation pour inclure la valeur numérique de l'état que vous venez d'ajouter. Par exemple :

         this.STATE_NAMES["-6"] = ChangeRequestStateHandler.MY_NEW_STATE;

     Remarque :  
     la carte STATE_NAMES fournit un mappage entre les valeurs numériques stockées dans le champ État d'une demande de changement sous un nom mémorisable. Ce mappage permet d'utiliser le nom mémorisable dans les includes de script du modèle d'état.
   {#t_AddANewState__ul_t4k_yhq_nv}
4. Modifiez l'include de script approprié pour intégrer au modèle les nouveaux états destinés aux types de demande de changement pertinents.  
   Chaque type de demande de changement dispose d'un include de script correspondant nommé ChangeRequestStateModel_\<type\> où \<type\> est la valeur du type de demande de changement. Par exemple, ChangeRequestStateModel_normal définit le modèle d'état des demandes de changement de type Normal.  
   Chaque include de script de modèle d'état inclut des objets qui spécifient les informations suivantes :
   * Les états disponibles.
   * Le ou les états suivants pour chaque état disponible.
   * Les fonctions de chaque transition d'état pour déterminer si cette transition est disponible `(canMove)` avec une fonction à exécuter dans le cadre du passage vers cet état `(moving)`.
   {#t_AddANewState__ul_lk4_vkq_nv}

   L'exemple suivant est issu de l'include de script ChangeRequestStateModel_normal.
5. Créez une action d'interface utilisateur pour afficher un bouton permettant de faire progresser la demande de changement vers le nouvel état.
   1. Utilisez Insérer et rester pour créer une copie de l'une des actions d'interface utilisateur par défaut, par exemple Implémenter.
   2. Mettez à jour les champs suivants sur le formulaire.  
      {#t_AddANewState__table_rgn_wmq_nv__entry__2}

      | Nom de champ | Mettre à jour |
      |-|-|
      | Nom | Mettez à jour le nom pour correspondre à celui du nouvel état. |
      | Nom de l'action | Remplacez l'état à la fin du nom par le nouvel état. |
      | Conseil | Mettez à jour le texte pour référencer le nouvel état. |
      | Onclick | Renommez la fonction pour correspondre au nouvel état. |
      | Condition | Mettez à jour l'appel de la fonction `isNext` avec le nouvel état. |
      | Script | * Mettez à jour le nom de la fonction pour correspondre à celle spécifiée dans le champ Onclick. * Mettez à jour la ligne commençant par `ga.addParam("sysparm_state_name",...` pour entrer le nom du nouvel état comme deuxième paramètre de la fonction `addParam`. * Mettez à jour la ligne commençant par `gsftSubmit` et modifiez le troisième paramètre de cet appel de fonction pour correspondre à la valeur saisie dans le champ Nom de l'action. {#t_AddANewState__ul_l4y_hnq_nv} |
      [ ]

      {#t_AddANewState__table_rgn_wmq_nv}

      L'exemple suivant utilise l'action d'interface utilisateur Implémenter pour afficher les valeurs à mettre à jour.  
      L'include de script ChangeRequestStateHandler contient deux fonctions utilisées pour déterminer si une action d'interface utilisateur est affichée en fonction de l'état actuel de la demande de changement.
      * `isNext(StateName)` : cette fonction vérifie uniquement si le stateName transmis en tant que paramètre est disponible en tant qu'état suivant de l'état actuel de la demande de changement.
      * `canMoveTo(StateName)` : cette fonction effectue la même vérification que la fonction isNext. Toutefois, elle vérifie également le résultat de l'appel de la fonction appropriée canMoveTo pour la transition de l'état actuel vers l'état stateName transmis en tant que paramètre. Cette fonction est utilisée si des vérifications supplémentaires dans les fonctions canMove (par ex. un champ devant contenir une valeur particulière) doivent être effectuées.
      {#t_AddANewState__ul_bcm_r4q_nv}
   {#t_AddANewState__substeps_afc_lmq_nv}
6. Pour mettre à jour la configuration du flux de processus en vue d'incorporer le nouvel état de changement, procédez comme suit.  
   Le flux de processus est affiché en haut du formulaire Demande de changement et est configuré dans différents enregistrements de flux de processus.  
   1. Accédez au module Interface utilisateur du systèmeFlux de processus et appliquez un filtre pour \[Table\] \[is\] \[change_request\].
   2. Ouvrez un enregistrement et utilisez Insérer et rester pour créer une copie.
   3. Mettez à jour les champs suivants sur le formulaire.  
      {#t_AddANewState__table_t33_tpq_nv__entry__2}

      | Nom de champ | Mettre à jour |
      |-|-|
      | Nom | Mettez à jour le nom pour correspondre à celui du nouvel état. |
      | Étiquette | Mettez à jour le nom pour correspondre à celui du nouvel état. Cette valeur est incluse dans le flux de processus affiché dans la partie supérieure du formulaire Demande de changement. |
      | Ordre | Mettez à jour ce numéro de manière à ce que le nouvel état figure dans la séquence correcte avec les enregistrements de flux de processus existants pour d'autres états. |
      | Condition | Mettez à jour le filtre pour correspondre au nouvel état. |
      [ ]

      {#t_AddANewState__table_t33_tpq_nv}
   4. Cliquez sur Mettre à jour.
   {#t_AddANewState__substeps_bcd_jgw_ht}
{#t_AddANewState__steps_wgg_xbn_5y}

## Que faire ensuite

Pour vous assurer que le nouvel état fonctionne comme prévu, examinez les workflows par défaut. Ajoutez le nouvel état au workflow pertinent.

## Examiner les workflows par défaut {#ariaid-title2}

Toute modification apportée au modèle d'état peut avoir un impact sur les workflows par défaut des demandes de changement.

### Avant de commencer

Rôle requis : admin

### Pourquoi et quand exécuter cette tâche

Chaque type de changement présente un workflow par défaut. Pour vous assurer que les modifications apportées au modèle d'état n'ont eu aucun impact négatif sur les workflows, vous devez examiner chacun des workflows par défaut.

### Procédure

Examinez le workflow pour chaque include de script `ChangeRequestStateModel_<type>` qui a été modifié.  
{#t_ReviewDefaultWorkflows__table_kbw_rbr_nv__entry__3}

| Type de changement | Nom de l'include de script | Workflow |
|-|-|-|
| Normal | ChangeRequestStateModel_normal | Demande de changement - Normal |
| Standard | ChangeRequestStateModel_standard | Demande de changement - Standard |
| Urgence | ChangeRequestStateModel_emergency | Demande de changement - Urgence |
[Tableau 1. Workflows par défaut des demandes de changement]

{#t_ReviewDefaultWorkflows__table_kbw_rbr_nv}

Les modifications apportées au workflow par défaut pour chaque type de changement dépendent de l'emplacement d'ajout du nouvel état dans les séquences d'états.

