Configurer l’intégration des stories d’utilisateurs de l’instance

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 3 minutes de lecture
  • Suivez formellement les résultats d’un environnement de non-production à l’aide de stories dans une instance de production. Pour configurer l’intégration des stories d’utilisateurs de l’instance ServiceNow, exécutez la procédure.

    Avant de commencer

    Rôle requis : administrateur du moteur d’analyse (sn_se.scan_engine_admin)

    Procédure

    1. Enregistrez vos instances.
    2. Définissez la table User Story.
      La table sélectionnée devient la table cible dans laquelle vous souhaitez insérer un enregistrement. Les tables basées sur des tâches telles que rm_story sont un choix courant. Cette table doit exister à la fois sur l’instance source et sur l’instance cible.
    3. Personnalisez le script associé pour gérer les mises à jour de champ de façon dynamique en fonction de la table de stories d’utilisateurs sélectionnée et définissez le mappage de champs des stories d’utilisateurs et les champs disponibles.

      Cela permet d’utiliser des scripts pour définir un mappage entre un résultat dans l’environnement inférieur et une story dans l’environnement supérieur. Par exemple, vous pouvez spécifier les valeurs qui renseignent la description brève, la description ou tout autre champ disponible dans la table sélectionnée.

      Par défaut, des informations utiles sont fournies dans les commentaires, ainsi qu’un exemple qui peut être utilisé comme guide. Configurez le script en fonction de vos besoins.

      Les variables suivantes sont disponibles lors de la configuration des scripts de traitement des instances source et destination.

      isSource
      Défini sur vrai lors de l’exécution sur l’instance source (dev).
      isDestination
      Défini sur vrai lors de l’exécution sur l’instance de destination (prod).
      charge utile
      Variable définie par l’utilisateur utilisée pour transmettre des informations entre les instances.
      grFinding
      GlideRecord du résultat à l’origine de la demande. Défini sur l’instance source uniquement. Les champs disponibles sont ceux de la table sn_se_finding .
      grTask
      GlideRecord en cours de création sur l’instance de destination. Défini sur l’instance de destination uniquement. Les champs disponibles sont ceux de la table sélectionnée dans la colonne Table des stories d’utilisateurs .

      Lorsque isSource a la valeur vrai, le script s’exécute uniquement sur l’instance source. Utilisez ce bloc pour charger l’objet de charge utile avec les variables de l’enregistrement de résultat. Les champs disponibles sont ceux de la table sn_se_finding .

      if (isSource) {
            // This logic is ONLY executed on the SOURCE instance.
            // Load the 'payload' object with variables from the finding record.
            // The fields which can be used are fields within the sn_se_finding table.
      
            payload.short_description = "Story generated from finding - " + grFinding.getDisplayValue();
            payload.description = "Definition: " + grFinding.definition.short_description;
            payload.description += "\nFinding details: " + grFinding.getValue('finding_details');
            payload.description += "\nFinding URL: " + gs.getProperty("glide.servlet.uri") + grFinding.getLink(false);
      }

      Lorsque isDestination a la valeur vrai, le script s’exécute uniquement sur l’instance cible. Utilisez ce bloc pour appliquer les valeurs d’objet de charge utile aux champs de la table Story ou Tâche. Assurez-vous que grTask.insert() est appelé afin que l’enregistrement soit créé. Si vous avez sélectionné rm_story, les champs disponibles sont ceux de la table rm_story .

      if (isDestination) {
            // This logic is ONLY executed on the TARGET instance.
            // Set the field values in the Story/Task table using the payload object.
            // The fields which can be used are fields within the Story table.
            // If you selected rm_story, the fields you can set are those of the rm_story table.
      
            grTask.short_description = payload.short_description;
            grTask.description = payload.description;
            grTask.insert();
      }

      Voici un exemple complet montrant à la fois le traitement source et le traitement de destination.

      // Available variables
      // isSource      - True when on source instance (dev)
      // isDestination - True when on destination instance (prod)
      // payload       - The user-defined variable used to pass information between instances
      // grFinding     - The GlideRecord of the finding sending the request (source only)
      // grTask        - The GlideRecord being created on the destination instance (destination only)
      
      // Source processing and payload preparation
      if (isSource) {
            payload.short_description = "Story generated from finding - " + grFinding.getDisplayValue();
            payload.description = "Definition: " + grFinding.definition.short_description;
            payload.description += "\nFinding details: " + grFinding.getValue('finding_details');
            payload.description += "\nFinding URL: " + gs.getProperty("glide.servlet.uri") + grFinding.getLink(false);
      }
      
      // Destination processing and payload use
      // Make sure to include grTask.insert() so that the record is created
      if (isDestination) {
            grTask.short_description = payload.short_description;
            grTask.description = payload.description;
            grTask.insert();
      }
    4. Une fois les instances validées et le mappage terminé, les clients peuvent sélectionner les résultats à transmettre à l’instance cible.