Structure d’un PaCE script de stratégie

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 6 minutes de lecture
  • Cette section décrit la structure d’un PaCE script de stratégie.

    Lorsqu’une politique est exécutée, un ensemble de paramètres est transmis et le développeur de la politique peut utiliser ces paramètres dans ce script de politique pour décider si elle est conforme, non conforme ou conforme-exception et renvoyer cette décision au service d’appel. L’image suivante montre un exemple de script :
    Figure 1. Exemple de script de politique
    Exemple de politique de script.

    Pour déboguer le script, sélectionnez l’icône de script Débogueur icône de débogueur. Pour plus d'informations, consultez Script Debugger API.

    Le tableau suivant répertorie les paramètres de fonction de stratégie et la manière dont ils peuvent être utilisés dans votre script de stratégie.

    Nom de variable Description
    enregistreur L’enregistreur est un objet que le codeur de stratégie peut utiliser pour journaliser des messages. Les messages du journal sont stockés dans la table sn_pace_execution_log . Vous pouvez examiner ces messages de journal à des fins de débogage, de suivi ou de surveillance. Les messages du journal peuvent être consignés à l’un des niveaux suivants :
    • 1 : informations
    • 2 : Déboguer
    • 3 : Avertissement
    • 4 : erreur

    Lorsqu’une politique est invoquée via l’API, vous pouvez spécifier le niveau de journal souhaité. Par exemple : Le format est le suivant :

    logger.info(« ** snapshotId is : « +snapshotId) ;

    current

    Enregistrement

    currentRecord est un objet de la version actuelle de la politique qui est exécutée lorsque la politique est utilisée. Pour afficher les détails de currentRecord , accédez à l’onglet Versions sur la page d’accueil de la stratégie et localisez la stratégie dont l’état de version est défini sur Actuel.
    Dans l’image ci-dessous, vous pouvez voir la version active actuelle de la stratégie mise en surbrillance. Il montre les détails suivants :
    • Numéro de version
    • Date de dernière mise à jour
    • Le nom de l’utilisateur qui a mis à jour la version
    • Nombre de fois où il a été exécuté par l’application appelante
    • le nombre de fois où il a été exécuté dans l’environnement de tests
    Le script de politique peut accéder à ces données pendant le délai d’exécution de la politique en interagissant avec l’objet currentRecord transmis à la politique.

    Détails de la version PACE
    Cet exemple montre comment un développeur de stratégie peut accéder aux propriétés de l’enregistrement de version de stratégie :
    (function(logger, currentRecord, documentRecord, apiVars, configParams, recordRefs, dataCollectors, childrenOutputs, output) {
         //retrieve the input values
         logger.info(currentRecord.getValue('name'));
      }
     )(logger, currentRecord, documentRecord, apiVars, configParams, recordRefs, dataCollectors, childrenOutputs, output);
    
    document

    Enregistrement

    documentRecord est utilisé pour mapper la politique à l’objet pertinent (table et documentID) en cours de validation. Le documentRecord est une combinaison du table_name et du sysID. En fonction des propriétés de l’objet, la logique de stratégie est utilisée pour gérer l’objet en cours de validation et interagir avec celui-ci afin de déterminer la bonne décision.
    Par exemple : dans l’environnement DevOps Config , une politique peut être mappée à l’élément déployable. Lorsque l’API est invoquée, une requête est lancée sur la table de documents (déployables) et sur l’ID système du déployable.
    {
               "table": "sn_cdm_deployable",
               "sysId": "d1be8f5e87d80110eec7dbdd3fbb357d"
    		}
    Cet exemple montre comment documentRecord peut être utilisé dans un script de stratégie :
    (function(logger, currentRecord, documentRecord, apiVars, configParams, recordRefs, dataCollectors, childrenOutputs, output) 
    {
    //assuming that associated document has state field
      var documentState = documentRecord.getValue(“state”);
    if (documentState == “new”)
       …
    else
       …
    }
    )(logger, currentRecord, documentRecord, apiVars, configParams, recordRefs, dataCollectors, childrenOutputs, output);
    

    apiVars

    apiVars est transmis à l’API PaCE lorsqu’il est invoqué. Elle comprend toutes les variables d’API définies dans la version de stratégie. Voir la section <Définition des entrées de l’appelant> pour plus de détails

    Le Exemple de script de politique montre comment les politiques peuvent être utilisées pour valider les données de configuration dans l’environnement DevOps. Dans l’exemple de script, la variable apiVars est définie comme
    var snapshotId = apiVars.snapshotId;
    l’ID d’instantané spécifié est mappé à l’ID d’instantané correspondant de l’élément déployable de configuration DevOps en cours de validation en fonction des critères spécifiés.

    Le développeur de la stratégie peut définir la logique dans le script de politique pour utiliser les valeurs apiVars transmises lorsque l’API est invoquée pour déterminer la décision. Par exemple, le SnapshotID transmis est utilisé pour identifier les clés-valeurs liées au snapshotID spécifique d’un élément déployable transmis dans l’objet documentRecord.

    configParams

    Les paramètres de configuration sont des variables transmises lors du mappage de la stratégie et incluent toutes les variables définies pour une version spécifique de la stratégie.

    La variable configParams est définie comme suit dans le Exemple de script de politiquefichier .
    var dbPort = configParams.dbPort;
    Le développeur de stratégie peut définir la logique dans le script de politique pour utiliser les valeurs transmises lors du mappage afin de déterminer la décision. Par exemple, le numéro dbPort doit être inférieur à 30 000, sinon la politique est considérée comme non_compliant.
    recordRefs Les références d’enregistrement définissent des requêtes pour extraire des données de n’importe quelle ServiceNow® table et utilisent les données pour configurer la logique de stratégie. Il existe une fonction d’auto-complétion qui peut sélectionner la référence d’enregistrement dans l’éditeur Javascript.
    collecteurs de données La fonction collecteurs de données collecte les données de processus d’entrée à partir d’une source de ServiceNow données externe pour fournir une sortie.
    enfants

    Sorties

    Cette version n’est pas prise en charge.
    sortie

    Ce paramètre est utilisé pour transmettre la sortie de l’exécution de la politique qui inclut la décision au service d’appel. Il fournit une décision liée à cette politique, avec des informations supplémentaires telles que les erreurs, les avertissements et les détails des résultats.

    Cet exemple montre un exemple de sortie avec des décisions conformes et non_compliant :
    
    {
        "decision": "compliant",
        "results": [],
        "warnings": [],
        "failures": [],
        "state": "complete"
    }
    
    
    {
        "decision": "non_compliant",
        "results": [],
        "warnings": [],
        "failures": [“Failed to validate key”],
        "state": "complete"
    }
    
    sortie.

    décision

    La propriété de décision peut être définie sur :
    • Conforme : détermine que la politique est conforme aux exigences.
    • Non conforme : détermine que la politique ne respecte pas les exigences.
    • Exception conforme : détermine qu’une exception à la politique a été approuvée et que toutes les politiques non conformes sont définies sur l’état d’exception conforme.

    La décision est renvoyée au format JSON au service d’appel.

    Remarque :
    Si une valeur n’est pas spécifiée dans le champ output.decision du script, ce champ est défini par défaut sur Conforme lors de l’exécution de la politique s’il n’y a pas d’échec.
    sortie.

    résultats

    La propriété results peut être utilisée pour transmettre au service d’appel des données sur les décisions prises pendant la phase de validation de la politique. Un objet de liste avec une liste de résultats peut être renvoyé au service d’appel.

    sortie.

    avertissements

    La propriété warnings peut être utilisée pour renvoyer des données au service d’appel sur tous les avertissements qui se sont produits pendant la phase de validation de politique.

    sortie.

    Échecs

    La propriété failures peut être utilisée pour renvoyer des données au service d’appel sur toute erreur survenue pendant la phase de validation de la politique.

    Remarque :
    Les champs suivants sont automatiquement renseignés lorsque le script de PaCE politique est exécuté.
    sortie.

    nom

    Nom (version actuelle) de la stratégie en cours d’exécution.
    sortie.

    État

    Il indique l’état de l’invocation de politique.
    • Terminé : l’invocation a été effectuée avec succès.
    • En attente : indique que la politique n’a pas pu être exécutée avec succès et qu’elle est incomplète.
    Remarque :
    • Des suggestions de saisie semi-automatique sont disponibles dans l’éditeur de script de politique pour les paramètres logger, callerInput et mappedInput .
    • Pour afficher des informations supplémentaires sur un paramètre, entrez le nom du paramètre et sélectionnez l’une des options, comme suit :
      Détails supplémentaires des paramètres PACE