Inline-Skripts
Ermöglichen Sie Benutzern mit Codierungserfahrung, Inline-Skripts zu schreiben, die Eingabewerte während der Konfiguration einer Aktion oder eines Flows festlegen und ändern. Verwenden Sie Inline-Skripts, um Eingabewerte zu ändern, die Kleinformatkonvertierungen, Datentransformationen oder mathematische Operationen erfordern.
Sie können Eingabewerte auch ohne Skripting ändern, indem Sie Transformationsfunktionen verwenden. Eine Liste der verfügbaren Optionen finden Sie unter Transformationsfunktionen.
- Aktionseingaben, wenn Sie die Aktion für einen Flow konfigurieren
- Aktionsausgaben, wenn Sie die Aktion für einen Flow konfigurieren
- Flow-Logikeingaben, wenn Sie die Flow-Logik für einen Flow konfigurieren
- Flow-Logikausgaben, wenn Sie die Flow-Logik für einen Flow konfigurieren
- Schritteingaben, wenn Sie den Schritt für eine Aktion konfigurieren.
- Subflow-Eingaben, wenn Sie den Subflow für einen Flow konfigurieren.
- Subflow-Ausgaben, wenn Sie den Subflow für einen Flow konfigurieren.
Inline-Skripts müssen Werte im selben Datentyp zurückgeben, wie die Eingabe erwartet. Zum Beispiel muss ein Inline-Skript für eine Datensatzeingabe ein GlideRecord-Objekt zurückgeben, und ein Inline-Skript für eine Datumseingabe muss einen Datums-/Uhrzeitwert zurückgeben. Testen Sie Aktionen und Flows, die Inline-Skripts enthalten, immer, und stellen Sie sicher, dass die Flow-Ausführungsdetails keine Laufzeitfehler enthalten.
Skriptautoren sollten mit Now Platform Tabellenstrukturen und Feldtypenvertraut sein. Darüber hinaus sollten sie wissen, wie sie mithilfe der ServiceNow -API mit Datensatz- und Systemdaten arbeiten.
Vorteile
- Ermöglichen Sie die einfache Datenkonvertierung oder -transformation, ohne benutzerdefinierte Aktionen oder Flows erstellen zu müssen.
- Identifizieren Sie, auf welche Eingabedaten sich ein Skript auswirkt.
- Beschränkter Zugriff auf Skriptfunktionen für Benutzer oder Gruppen, die mit den verfügbaren ServiceNow APIs vertraut sind.
Zugriff auf Inline-Skript
Sie können Benutzern Zugriff auf die Online-Skripterstellung gewähren, indem Sie ihnen entweder die Rolle „flow_designer_scripting“ oder die Berechtigung „ Skripting zulassen“ für delegierte Entwicklung gewähren. Sowohl die Rolle als auch die Entwicklerberechtigung zeigen für jede Flow Designer -Eingabe ein Skript-Schaltflächenfeld an.
Schaltfläche „Skript“.
Wenn Sie einem Benutzer ermöglichen, Inline-Skripts zu erstellen, zeigt Flow Designer eine Skriptschaltfläche neben Flow- und Schritteingaben an.
Durch Klicken auf die Schaltfläche Skript wird der Skript-Editor geöffnet, der die Standardeingabeschnittstelle ersetzt. Geben Sie ein Skript ein, um den Eingabewert zu berechnen.
Stellen Sie sicher, dass Ihr Skript eine Rückgabeanweisung mit den Ergebnissen Ihres Skripts enthält. Beispiel: return shortDesc; gibt den Wert der Variablen shortDesc zurück.
Durch Klicken auf die Schaltfläche Skript reduzieren wird der Skript-Editor ausgeblendet und eine schreibgeschützte Version der Eingabe angezeigt. Wenn Sie auf die Schaltfläche Skript erweitern klicken, wird der Skript-Editor angezeigt, und Sie können das Skript bearbeiten.
Flow Designer -Datenobjekt
fd_data verwenden, um auf Daten aus vorherigen Aktionen und Schritten zuzugreifen. Verwenden Sie das Objekt fd_data, um per Dot-Walk zu einer bestimmten Ausgabe des Flows zu gelangen. Sie können die Typeahead-Vorschläge des Skript-Editors verwenden, um einen bestimmten Ausgabewert auszuwählen. Geben Sie beispielsweise fd_data ein, und wählen Sie _2__for_each.item aus den Typeahead-Vorschlägen aus, um eine Dot-Walk-Referenz auf fd_data._2__for_each.itemzu erstellen. Diese Referenz greift auf Daten aus der zweiten Ausgabe des Flows zu, die in diesem Beispiel ein Flow-Logikelement vom Typ Für alle ist.Flow Designer aktualisiert das Datenobjekt jedes Mal, wenn Sie Ihre Aktion, Ihren Flow oder Ihren Subflow speichern. Wenn die Typeahead-Vorschläge Ihr Ziel nicht enthalten, versuchen Sie, die Aktion, den Flow oder den Subflow zu speichern und dann das Punktzeichen erneut einzugeben, um die Liste der Vorschläge zu aktualisieren.
| Datenziel | Referenzsyntax | Beispiel |
|---|---|---|
| Aktionseingabe | fd_data.action_inputsaktionseingabename | var task = fd_data.action_inputs.task; |
| Flow-Variable | fd_data.flow_varFlow-Variablenname | var shortDesc = fd_data.flow_var.short_description; |
| Ausgabe der vorherigen Aktion, Flow-Logik oder des vorherigen Schritts | fd_data._Ausgabeziel-Schrittnummer__Ausgabezielname | var taskRecord = fd_data._2__create_task; |
| Subflow-Eingabe | fd_data.subflow_inputsSubflow-Eingabename | var reqItem = fd_data.subflow_inputs.requested_item; |
| Auslöser | fd_data.triggerAuslöserdatenpille | var incident = fd_data.trigger.current; |
Allgemeine Richtlinien
Befolgen Sie diese allgemeinen Richtlinien, um wiederverwendbare und wartbare Inline-Skripts zu erstellen.
- Schreiben Sie ein Inline-Skript für kleine, nicht wiederverwendbare Logik
- Verwenden Sie das Inline-Skriptformat, oder ändern Sie die Daten für bestimmte Eingaben und Anwendungsfälle. Wählen Sie für standardmäßige und wiederverwendbare Eingabedatenkonvertierungen und Formatierungsvorgänge stattdessen eine Transformationsfunktion aus.
- Überprüfen Sie die verfügbaren Transformationsfunktionen
- Flow Designer stellt eine Liste der standardmäßigen Transformationsfunktionen für Datenkonvertierungen und Formatierungsvorgänge bereit. Anstatt eine benutzerdefinierte Skriptlösung zu schreiben und zu verwalten, wählen Sie eine vorhandene Transformationsfunktion aus, sofern eine verfügbar ist.
- Skripteinbindungen aus Inline-Skript aufrufen
- Rufen Sie eine Skripteinbindung aus Ihrem Inline-Skript auf, um die Menge des zu schreibenden Codes zu reduzieren und allgemeinen Code an einem einzigen Ort zu verwalten. Verwenden Sie den Klassenkonstruktor, um Ihre Skripteinbindung aufzurufen. Weitere Informationen zum Erstellen einer Skripteinbindung finden Sie unter Script includes.
var si = new MyScriptInclude(); si.functionOne(); - Erstellen Sie benutzerdefinierte Aktionen oder Subflows für wiederverwendbaren Code anstelle von Inline-Skripts
- Erstellen Sie benutzerdefinierte Aktionen oder Subflows für wiederverwendbare oder komplexe Datenlogik, z. B. das Ändern des Datentyps von Quelldaten. Möglicherweise möchten Sie auch benutzerdefinierte Aktionen oder Subflows für Flow Designer bereitstellen, die mit Code nicht vertraut sind.
- Doppelte Aktions- und Flow-Funktionalität vermeiden
- Vermeiden Sie es, Inline-Skripts zu schreiben, die Aktionen und Flow-Funktionalität duplizieren. Anstatt beispielsweise ein Inline-Skript zu schreiben, um Datensatzvorgänge auszuführen, verwenden Sie die Baseline-Aktionen zum Erstellen und Aktualisieren von Datensätzen.
- Vermeiden Sie Datentypänderungen
- Vermeiden Sie Laufzeitfehler, indem Sie überprüfen, ob Ihr Inline-Skript Informationen im gleichen Datentyp bereitstellt, wie die Ein- oder Ausgabe erwartet.
- Erstellen Sie Variablen, indem Sie sie mit dem Schlüsselwort var deklarieren
- Verwenden Sie das Schlüsselwort
var, um Variablen so zu deklarieren, dass sie innerhalb des richtigen JavaScript-Bereichs bleiben. Wenn Sie eine Variable erstellen, indem Sie ihr einen Wert zuweisen, kann JavaScript sie an das globale Objekt anhängen, was dazu führen kann, dass Variablenwerte außerhalb des lokalen Bereichs verbleiben und Fehler verursachen. - Verarbeitet Datensätze Ausgaben mit Flow-Logik vom Typ Für alle und dem Flow-Datenobjekt
- Inline-Skripts können nur über die Flow-Logik „Für alle“ auf die Datensatzausgabe einer Aktion „ Datensätze suchen“ zugreifen. Fügen Sie dem Flow eine Aktion Datensätze suchen hinzu, um die Datensatzausgabe zu generieren. Fügen Sie dem Flow eine Flow-Logik vom Typ Für alle hinzu, um jeden Datensatz in der Datensatzausgabe zu verarbeiten. Erstellen Sie mithilfe der Objekte „fd_data“ und „item“ eine Inline-Skriptreferenz für die Flow-Logik „Für alle“. In dieser Referenz wird beispielsweise davon ausgegangen, dass die Flow-Logik „Für alle“ das zweite Element in Ihrer Flow-
Ggliederung fd_data._2__for_each.item ist. - Verwenden Sie Typeahead-Vorschläge, um Verweise auf Flow- und Aktionsdaten zu generieren.
- Erstellen Sie mit dem Objekt fd_data Verweise auf Flow- und Aktionsdaten. Der Skript-Editor zeigt Typeahead-Vorschläge für vorhandene Flow- und Aktionsdaten an, wenn Sie fd_data eingeben. Wählen Sie einen Vorschlag aus, um Verweise auf Flow- und Aktionsdaten zu erstellen. Hinweis:Siehe Daten in einer Flow-Logik vom Typ „Für alle“ mit dem Elementobjekt aufzeichnen.
- Umfangsschleifenzähler
-
Skriptschleifen haben keine maximale Anzahl von Iterationen, daher werden Schleifen unendlich ausgeführt, wenn keine gültige Austrittsbedingung vorhanden ist.
Um sicherzustellen, dass eine gültige Austrittsbedingung vorhanden ist, verwenden Sie Bereichsschleifenzähler in Inline-Skripts oder in Skriptschritten innerhalb einer Aktion.
varzufor (i=0; i< Länge; i++) hinzufügenundfor (var i=0; i< Länge; i++) abrufen
Lizenzierungsüberlegungen
Inline-Skripts, die Integrations-APIs aufrufen, unterliegen der Lizenzierung von IntegrationHub.
Code-Editor
Der Code-Editor bietet Texteditor-Unterstützung für Inline-Skripts.
- Syntaxfarbe, Einrückung, Zeilennummern und automatische Erstellung von schließenden Klammern und Anführungszeichen
- Automatische Vorschläge und automatische Vervollständigungen
Bearbeitungstipps
- Drücken Sie die Tabulatortaste, um ein festes Leerzeichen an beliebiger Stelle in den Code einzufügen.
- Um eine einzelne Codezeile einzuziehen, klicken Sie in den führenden Leerraum der Zeile, und drücken Sie die Tabulatortaste.
- Um eine oder mehrere Codezeilen einzuziehen, markieren Sie den Code, und drücken Sie die Tabulatortaste. Um den Einzug zu verringern, drücken Sie Umschalt+Tab.
- Um ein Tabulatorzeichen am Anfang einer Codezeile zu entfernen, klicken Sie in die Zeile und drücken Sie Umschalt+Tabulator.
- Verwenden Sie zum Deklarieren von Variablen das Schlüsselwort
var, damit sie innerhalb des richtigen JavaScript-Bereichs bleiben.