Aufbau eines PaCE -Richtlinienskripts

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 5 Minuten Lesedauer
  • In diesem Abschnitt wird die Struktur eines PaCE -Richtlinienskripts beschrieben.

    Wenn eine Richtlinie ausgeführt wird, wird eine Reihe von Parametern übergeben, und der Richtlinienentwickler kann diese Parameter in diesem Richtlinienskript verwenden, um zu entscheiden, ob es sich um eine konforme, nicht konforme oder konforme Ausnahme handelt, und diese Entscheidung an den aufrufenden Service zurückzugeben . Die folgende Abbildung zeigt ein Beispielskript:
    Abbildung : 1. Beispiel für ein Richtlinienskript
    Beispiel für eine Skriptrichtlinie.

    Um das Skript zu debuggen, wählen Sie das Debugger-Skriptsymbol Debugger-Symbol. Weitere Informationen finden Sie unter Script Debugger API.

    In der folgenden Tabelle sind die Richtlinienfunktionsparameter aufgeführt und wie sie in Ihrem Richtlinienskript verwendet werden können.

    Variablenname Beschreibung
    Protokollierung Protokollierung ist ein Objekt, das der Richtliniencodierer zum Protokollieren von Nachrichten verwenden kann. Die Protokollnachrichten werden in der Tabelle sn_pace_execution_log gespeichert. Sie können diese Protokollnachrichten zu Debugging-, Nachverfolgungs- oder Überwachungszwecken überprüfen. Die Protokollnachrichten können mit einer der folgenden Ebenen protokolliert werden:
    • 1: Informationen
    • 2: debuggen
    • 3: Warnung
    • 4: Fehler

    Wenn eine Richtlinie über die API aufgerufen wird, können Sie die gewünschte Protokollebene angeben. Beispiel:Das Format lautet wie folgt:

    logger.info("** SnapshotId ist: "+SnapshotId);

    aktuell

    Datensatz

    currentRecord ist ein Objekt der aktuellen Version der Richtlinie, das bei Verwendung der Richtlinie ausgeführt wird. Um die Details des aktuellen Datensatzes anzuzeigen, navigieren Sie auf der Startseite der Richtlinie zur Registerkarte Versionen, und suchen Sie die Richtlinie, deren Versionsstatus auf Aktuellfestgelegt ist.
    In der Abbildung unten sehen Sie, dass die derzeit aktive Version der Richtlinie hervorgehoben ist. Es werden die folgenden Details angezeigt:
    • Versionsnummer
    • Datum der letzten Aktualisierung
    • dem Namen des Anwenders, der die Version aktualisiert hat
    • die Anzahl der Ausführungen durch die aufrufende Anwendung
    • wie oft er in der Testumgebung ausgeführt wurde
    Das Richtlinienskript kann während der Ausführungszeit der Richtlinie auf diese Daten zugreifen, indem es mit dem Objekt currentRecord interagiert, das an die Richtlinie übergeben wurde.

    PaCE-Versionsdetails
    Das folgende Beispiel zeigt, wie ein Richtlinienentwickler auf die Eigenschaften des Richtlinienversionsdatensatzes zugreifen kann:
    (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);
    
    Dokument

    Datensatz

    documentRecord“ wird verwendet, um die Richtlinie dem relevanten Objekt (Tabelle und „documentID“) zuzuordnen, das validiert wird. Der documentRecord ist eine Kombination aus „table_name“ und „sysID“. Basierend auf den Eigenschaften des Objekts wird die Richtlinienlogik verwendet, um das validierte Objekt zu verwalten und mit ihm zu interagieren, um die richtige Entscheidung zu treffen.
    Beispiel: In der Umgebung DevOps Config kann dem bereitstellbaren Element eine Richtlinie zugeordnet werden. Wenn die API aufgerufen wird, wird eine Abfrage für die Dokumenttabelle (bereitstellbares Element) und die Sys-ID des bereitstellbaren Elements initiiert.
    {
               "table": "sn_cdm_deployable",
               "sysId": "d1be8f5e87d80110eec7dbdd3fbb357d"
    		}
    Dieses Beispiel zeigt, wie „documentRecord“ in einem Richtlinienskript verwendet werden kann:
    (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

    Die apiVars werden an die PaCE -API übergeben, wenn sie aufgerufen wird. Sie enthält alle in der Richtlinienversion definierten -API- Variablen. Siehe<Defining Caller Inputs> Abschnitt für Details

    Beispiel für ein Richtlinienskript zeigt, wie -Richtlinien zum Validieren von Konfigurationsdaten in der DevOps-Umgebung verwendet werden können. Im Beispielskript ist die Variable apiVars als definiert
    var snapshotId = apiVars.snapshotId;
    wobei die angegebene Snapshot-ID der entsprechenden Snapshot-ID des bereitstellbaren DevOps Config-Elements zugeordnet wird, das basierend auf den angegebenen Kriterien validiert wird.

    Der Richtlinienentwickler kann Logik im Richtlinienskript definieren, um die apiVars -Werte zu verwenden, die übergeben werden, wenn die API aufgerufen wird, um die Entscheidung zu bestimmen. Beispielsweise wird die übergebene Snapshot-ID verwendet, um Schlüsselwerte zu identifizieren, die sich auf die spezifische Snapshot-ID für ein bereitstellbares Element beziehen, das im documentRecord-Objekt übergeben wird.

    configParams

    Konfigurationsparameter sind Variablen, die beim Zuordnen der Richtlinie übergeben werden und alle -Konfigurationsparameter enthalten, die für eine bestimmte Version der Richtlinie definiert sind.

    Die Variable configParams ist in Beispiel für ein Richtlinienskriptwie folgt definiert.
    var dbPort = configParams.dbPort;
    Der Richtlinienentwickler kann die Logik im Richtlinienskript so definieren, dass die bei der Zuordnung übergebenen Werte zur Bestimmung der Entscheidung verwendet werden. Beispielsweise muss die dbPort- Nummer kleiner als 30.000 sein, andernfalls gilt die Richtlinie als nicht konform.
    Datensatzreferenzen Datensatzreferenzen definieren Abfragen zum Extrahieren von Daten aus beliebigen ServiceNow® -Tabellen und verwenden die Daten zum Konfigurieren der Richtlinienlogik. Es gibt eine Funktion zur automatischen Vervollständigung, mit der Sie die Datensatzreferenz im Javascript-Editor auswählen können.
    dataCollectors Die Datensammlerfunktion sammelt Eingabeprozessdaten von ServiceNow oder einer externen Datenquelle, um eine Ausgabe bereitzustellen.
    untergeordnete Elemente

    Ausgaben

    In dieser Version nicht unterstützt.
    Ausgabe

    Dieser Parameter wird verwendet, um die Ausgabe der Richtlinienausführung, die die Entscheidung enthält, an den aufrufenden Service zurückzugeben. Stellt eine Entscheidung im Zusammenhang mit dieser Richtlinie bereit, mit zusätzlichen Informationen wie Fehlern, Warnungen und Ergebnisdetails.

    Dieses Beispiel zeigt eine Beispielausgabe mit konformen und nicht konformen Entscheidungen:
    
    {
        "decision": "compliant",
        "results": [],
        "warnings": [],
        "failures": [],
        "state": "complete"
    }
    
    
    {
        "decision": "non_compliant",
        "results": [],
        "warnings": [],
        "failures": [“Failed to validate key”],
        "state": "complete"
    }
    
    Ausgabe.

    Entscheidung

    Die Entscheidungseigenschaft kann auf Folgendes festgelegt werden:
    • Konform: Bestimmt, ob die Richtlinie die Anforderungen erfüllt.
    • Nicht konform: Es wird festgestellt, dass die Richtlinie die Anforderungen nicht erfüllt.
    • Compliance-Ausnahme: Bestimmt, dass eine Ausnahme für die Richtlinie genehmigt wurde und dass alle Richtlinien, die nicht konform sind, auf den Status Compliance-Ausnahme gesetzt werden.

    Die Entscheidung wird in einem JSON-Format an den aufrufenden Service zurückgegeben.

    Hinweis:
    Wenn im Feld „output.decision“ im Skript kein Wert angegeben ist und die Richtlinie ausgeführt wird, wird dieses Feld standardmäßig auf „Konform“ festgelegt, sofern keine Fehler auftreten.
    Ausgabe.

    Ergebnisse

    Die Ergebnisseigenschaft kann verwendet werden, um Daten zu Entscheidungen, die während der Richtlinienvalidierungsphase getroffen werden, an den aufrufenden Service zurückzugeben. Ein Listenobjekt mit einer Liste von Ergebnissen kann an den aufrufenden Service zurückgegeben werden.

    Ausgabe.

    Warnungen

    Die Eigenschaft „Warnungen“ kann verwendet werden, um Daten zu Warnungen, die während der Richtlinienvalidierungsphase aufgetreten sind, an den aufrufenden Service zurückzugeben.

    Ausgabe.

    Fehler

    Die Eigenschaft „fails“ kann verwendet werden, um Daten bei Fehlern, die während der Richtlinienvalidierungsphase aufgetreten sind, an den aufrufenden Service zurückzugeben.

    Hinweis:
    Die folgenden Felder werden automatisch ausgefüllt, wenn das Richtlinienskript PaCE ausgeführt wird.
    Ausgabe.

    name

    Der Name (aktuelle Version) der ausgeführten Richtlinie.
    Ausgabe.

    state

    Gibt den Status des Richtlinienaufrufs an.
    • Abgeschlossen: Der Aufruf wurde erfolgreich abgeschlossen.
    • Ausstehend: Gibt an, dass die Richtlinie nicht erfolgreich ausgeführt werden konnte und sich in einem unvollständigen Status befindet.
    Hinweis:
    • Vorschläge zur automatischen Vervollständigung sind im Richtlinien-Skript-Editor für die Parameter logger, callerInput und mappedInput verfügbar.
    • Um zusätzliche Informationen für einen Parameter anzuzeigen, geben Sie den Parameternamen ein, und wählen Sie eine der folgenden Optionen aus:
      PaCE Zusätzliche Parameterdetails