Structure d’un PaCE script de politique

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 6 minutes de lecture
  • Cette section décrit la structure d’un PaCE script de stratégie.

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

    La table suivante répertorie les paramètres de fonction de politique et la façon dont ils peuvent être utilisés dans votre script de politique.

    Nom de variable Description
    bûcheron Logger est un objet que le codeur de stratégie peut utiliser pour enregistrer des messages. Les messages du journal sont stockés dans la table sn_pace_execution_log . Vous pouvez examiner ces messages du 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 : Info
    • 2 : Déboguer
    • 3 : avertissement
    • 4 : erreur

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

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

    current

    Enregistrement

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

    Le documentRecord est utilisé pour mapper la politique à l’objet approprié (table et documentID) en cours de validation. documentRecord est une combinaison de table_name et de sysID. En fonction des propriétés de l’objet, la logique de stratégie est utilisée pour gérer et interagir avec l’objet en cours de validation 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éployable) et l’ID système de l’élément 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);
    

    Les apiVars sont transmises à l’API PaCE lorsqu’elles sont invoquées. Elle inclut toutes les variables d’API définies dans la version de stratégie. Reportez-vous à 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 suit :
    var snapshotId = apiVars.snapshotId;
    où le snapshotId spécifié est mappé au snapshotId correspondant de l’élément déployable Configuration DevOps en cours de validation en fonction de critères spécifiés.

    Le développeur de stratégie peut définir une logique dans le script de stratégie pour utiliser les valeurs apiVars transmises lorsque l’API est appelé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 déployable transmis dans l’objet documentRecord.

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

    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 stratégie afin d’utiliser les valeurs transmises au mappage pour 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.
    Références d’enregistrement Les références d’enregistrement définissent les requêtes pour extraire des données de n’importe quelle ServiceNow® table et utiliser les données pour configurer la logique de stratégie. Il existe une fonction d’auto-complétion qui permet de sélectionner la référence de l’enregistrement dans l’éditeur Javascript.
    Collecteurs de données La fonction collecteurs de données collecte les données de processus d’entrée ou une source de ServiceNow données externe pour fournir une sortie.
    enfants

    Sorties

    Non pris en charge dans cette version.
    sortie

    Ce paramètre est utilisé pour transmettre la sortie de l’exécution de la stratégie qui inclut la décision au service appelant. 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 de conformité 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é decision peut être définie sur :
    • Conforme : détermine que la politique est conforme aux besoins.
    • Non conforme : détermine que la politique n’est pas conforme aux exigences.
    • Compliant-exception : détermine qu’une exception à la politique a été approuvée et que toutes les politiques non conformes sont définies sur l’état compliant-exception.

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

    Remarque :
    Si une valeur n’est pas spécifiée dans le champ output.decision du script, lorsque la politique est exécutée, par défaut, ce champ est défini sur conforme en l’absence d’échecs.
    sortie.

    résultats

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

    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 la stratégie.

    sortie.

    Échecs

    La propriété failures peut être utilisée pour renvoyer des données au service d’appel sur toutes les erreurs qui se sont produites pendant la phase de validation de la stratégie.

    Remarque :
    Les champs suivants sont automatiquement renseignés lors de l’exécution du script de PaCE politique.
    sortie.

    name

    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 stratégie pour les paramètres logger, callerInput et mappedInput .
    • Pour afficher des informations supplémentaires sur un paramètre, saisissez le nom du paramètre et sélectionnez l’une des options comme suit :
      PaCE détails des paramètres supplémentaires