Inline-Skripts
Ermöglichen Sie Anwendern mit Codierungserfahrung das Schreiben von Inline-Skripts, 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 Berechnungen erfordern.
Sie können Eingabewerte auch ohne Skripterstellung ä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 gleichen Datentyp zurückgeben, wie die Eingabe erwartet. Beispielsweise 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 vergewissern Sie sich, dass die Flow-Ausführungsdetails keine Laufzeitfehler enthalten.
Skriptautoren sollten mit Tabellenstrukturen und FeldtypenNow Platform vertraut sein. Darüber hinaus sollten sie wissen, wie sie mithilfe der API ServiceNow mit Datensatz- und Systemdaten arbeiten.
Vorteile
- Ermöglichen Sie eine einfache Datenkonvertierung oder -transformation, ohne anwenderdefinierte Aktionen oder Flows erstellen zu müssen.
- Geben Sie an, auf welche Eingabedaten sich ein Skript auswirkt.
- Der Zugriff auf Skriptfunktionen wurde auf Anwender oder Gruppen beschränkt, die sich mit den verfügbaren ServiceNow APIs auskennen.
Zugriff auf Inline-Skript
Sie können Benutzern Zugriff auf Online-Skripting gewähren, indem Sie ihnen entweder die Rolle „flow_designer_scripting“ oder die Berechtigung „ Skripting zulassen “ für die delegierte App-Entwicklung gewähren. Sowohl die Rolle als auch die Entwicklerberechtigung zeigen für jede Workflow-Studio -Eingabe ein Feld für die Skript-Schaltfläche an.
Skript-Schaltfläche
Wenn Sie einem Benutzer die Erstellung von Inline-Skripts ermöglichen, zeigt Workflow-Studio neben Flow- und Schritteingaben eine Skriptschaltfläche 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. Geben Sie beispielsweise shortDesc; gibt den Wert der shortDesc- Variablen zurück.
Durch Klicken auf die Schaltfläche Skript reduzieren wird der Skript-Editor ausgeblendet und eine schreibgeschützte Version der Eingabe angezeigt. Durch Klicken auf die Schaltfläche „ Skript erweitern “ wird der Skript-Editor angezeigt, und Sie können das Skript bearbeiten.
Workflow-Studio Datenobjekt
fd_data verwenden, um auf Daten aus vorherigen Aktionen und Schritten zuzugreifen. Verwenden Sie das Objekt „fd_data“, um zu einer bestimmten Ausgabe des Flow zu gelangen. Sie können 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 Typeahead-Vorschlägen aus, um eine Dot-Walking-Referenz zu fd_data._2__for_each.itemzu erstellen. Diese Referenz greift auf Daten aus der zweiten Ausgabe des Flows zu, in diesem Beispiel ein logisches Element für den Flow „Für jeden“.Workflow-Studio aktualisiert das Datenobjekt jedes Mal, wenn Sie Ihre Aktion, Ihren Flow oder Ihren Subflow speichern. Wenn die Typeahead-Vorschläge Ihr Ziel nicht enthalten, speichern Sie die Aktion, den Flow oder den Subflow, und geben Sie dann das Punktzeichen erneut ein, 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-Variablen-Name | var shortDesc = fd_data.flow_var.short_description; |
| Ausgabe der vorherigen Aktion, Flow-Logik oder des vorherigen Schritts | fd_data._Ausgabezielschrittnummer__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.auslösertrigger-data-pill | var incident = fd_data.trigger.current; |
Allgemeine Leitlinien
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 Konvertierungen und Formatierungsvorgänge für Eingabedaten stattdessen eine Transformationsfunktion aus.
- Überprüfen Sie die verfügbaren Transformationsfunktionen
- Workflow-Studio bietet eine Liste der Standardtransformationsfunktionen für Datenkonvertierungen und Formatierungsvorgänge. Anstatt eine anwenderdefinierte Skriptlösung zu schreiben und zu verwalten, wählen Sie eine vorhandene Transformationsfunktion aus, falls verfügbar.
- Rufen Sie Skripteinbindungen aus einem Inline-Skript auf
- Rufen Sie eine Skripteinbindung aus Ihrem Inline-Skript auf, um die Menge des von Ihnen geschriebenen Codes zu reduzieren und allgemeinen Code an einem zentralen Ort zu verwalten. Verwenden Sie den Klassenkonstruktor, um Ihre Skripteinbindung aufzurufen. Weitere Informationen zum Erstellen von Skripteinbindungen finden Sie unter Script includes.
var si = new MyScriptInclude(); si.functionOne(); - Erstellen Sie anwenderdefinierte Aktionen oder Subflows für wiederverwendbaren Code anstelle von Inline-Skripts
- Erstellen Sie anwenderdefinierte Aktionen oder Subflows für wiederverwendbare oder komplexe Datenlogik, z. B. das Ändern des Datentyps von Quelldaten. Unter Umständen möchten Sie auch anwenderdefinierte Aktionen oder Subflows für Flow Designer bereitstellen, die sich mit Code nicht auskennen.
- Vermeiden Sie die Duplizierung von Aktions- und Flow-Funktionen
- Vermeiden Sie es, Inline-Skripts zu schreiben, die Aktions- und Flow-Funktionen duplizieren. Beispielsweise können Sie zum Ausführen von Datensatzvorgängen kein Inline-Skript schreiben, sondern die Baseline-Aktionen zum Erstellen und Aktualisieren von Datensätzen verwenden.
- Vermeiden Sie Datentypänderungen
- Vermeiden Sie Laufzeitfehler, indem Sie überprüfen, ob Ihr Inline-Skript Informationen im gleichen Datentyp bereitstellt, wie die Eingabe 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 im richtigen JavaScript-Bereich bleiben. Wenn Sie eine Variable erstellen, indem Sie ihr einen Wert zuweisen, kann sie von JavaScript an das globale Objekt angehängt werden. Dies kann dazu führen, dass Variablenwerte außerhalb des lokalen Bereichs erhalten bleiben und Fehler verursachen. - Verarbeiten Sie Datensätze mit der Flow-Logik „Für jeden“ und dem Flow-Datenobjekt
- Das Inline-Skript kann nur auf die Datensatzausgabe einer Aktion „Datensätze suchen“ der Flow-Logik „Für jeden“ zugreifen. Fügen Sie dem Flow die Aktion Datensätze suchen hinzu, um die Datensatzausgabe zu generieren. Fügen Sie dem Flow die Flow-Logik „Für jeden“ hinzu, um jeden Datensatz in der Datensatzausgabe zu verarbeiten. Erstellen Sie mithilfe der Objekte „fd_data“ und „item“ einen Inline-Skriptverweis auf die Flow-Logik „Für jeden“. Diese Referenz geht beispielsweise davon aus, dass die Flow-Logik „Für jeden“ das zweite Element in Ihrer Flow-
Modellierung 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. Wenn Sie fd_data eingeben, zeigt der Skript-Editor Vorauseingabe-Vorschläge für vorhandene Flow- und Aktionsdaten an. Wählen Sie einen Vorschlag aus, um Verweise auf Flow- und Aktionsdaten zu erstellen. Hinweis:Beziehen Sie sich auf das Aufzeichnen von Daten in einer For-Each-Flow-Logik mithilfe des Elementobjekts.
- Umfangsschleifenzähler
-
Skriptschleifen haben keine maximale Anzahl von Iterationen, daher werden Schleifen unbegrenzt 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; ill) hinzufügenundfür (var i=0; i< Länge; ill) abrufen
Überlegungen zur Lizenzierung
Inline-Skripts, die Integrations-APIs aufrufen, unterliegen der Lizenzierung 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 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 eine Registerkarte am Anfang einer Codezeile zu entfernen, klicken Sie in die Zeile, und drücken Sie Umschalt+Tab.
- Um Variablen zu deklarieren, verwenden Sie das Schlüsselwort
var, damit sie im richtigen JavaScript-Bereich bleiben.