Funktionsfeld
Erstellen Sie Funktionsfelder und Skripts in ServiceNow AI Platform Dient zum Durchführen allgemeiner Datenbanktransformationen und -Berechnungen.
Reguläre Felder speichern einen Wert in der Datenbank. Anstatt Daten zu speichern, zeigt ein Funktionsfeld die Ergebnisse einer Datenbankabfrage an. Funktionsfelder haben keine zugeordnete Datenbankspalte. Stattdessen generieren Funktionsfelder einen Wert auf Basis einfacher Berechnungen unter Rückgriff auf andere Felder und Konstanten. Sie können wie alle anderen Felder im System verwendet werden: In Formularen, Listen, Abfragebedingungen, Berichten, Datenvisualisierungen, und so weiter.
Anwendungsfall
Sie möchten alle Incidents mit einer wahrscheinlich nutzlosen Kurzbeschreibung von weniger als 10 Zeichen identifizieren.Anstatt alle Datensätze abzufragen, um zu bestimmen, welcher Datensatz ein bestimmtes Kriterium erfüllt, erstellen Sie ein Funktionsfeld oder Funktionsskript, das nur die Datensätze abruft, die die Kriterien erfüllen.
Bei einfachen Berechnungen ist die Verwendung eines Funktionsfelds oder Funktionsskripts vorteilhafter als die Speicherung eines berechneten Werts. Der Wert wird immer beim Abrufen berechnet. Ein weiterer Vorteil der Verwendung von Funktionsfeldern besteht darin, dass der Datenbankserver die Transformation anstelle des Anwendungsknotens durchführt.
Unterschiede zwischen Funktionsfeldern und berechneten Feldern
Die Werte der berechneten Felder werden in der Datenbank gespeichert. Die Werte von Funktionsfeldern oder Funktionsskripts werden nicht in der Datenbank gespeichert, sondern zum Zeitpunkt des Abrufs berechnet. Funktionsfeldwerte sind immer aktuell.
Unterschiede zwischen Funktionsfeldern und Business Rules
Verwenden Sie Funktionsfelder oder Skripts, wenn die Geschäftslogik auf einer einfachen Transformation eines oder mehrerer vorhandener Felder basiert. Mit Funktionsfeldern und Skripts können Sie Geschäftslogik implementieren, ohne das Ergebnis einer Transformation zu speichern und zu verwalten.
Unterschiede zwischen Funktionsfeldern und Filtern, Abfragezeichenfolgen sowie Rhino
Statt Rhino zur Durchführung von Zeichenfolgentransformationen aufzurufen, können Sie die Transformationen von einem Funktionsfeld oder einem Funktionsskript durchführen lassen. Funktionsfelder und Funktionsskripts sind effizienter und führen zu aktuellen Werten, die nicht gespeichert oder verwaltet werden müssen.
Einschränkungen von Funktionsfeldern
- Funktionsfelder können nicht direkt geprüft oder indiziert werden.Hinweis:Damit ein Funktionsfeld wie ein reguläres Feld indiziert wird, müssen die einzelnen Felder indiziert sein, die von der Funktion verwendet werden. Oder stellen Sie für eine optimale Leistung sicher, dass ein zusammengesetzter Index vorhanden ist, der alle Felder enthält, die in der Funktion verwendet werden.
- Funktionsfelder können nicht verschlüsselt werden, da Funktionsfeldwerte niemals in der Datenbank gespeichert werden.
- Funktionsfelder können nicht in reguläre Felder konvertiert werden. Ebenso können reguläre Felder nicht in Funktionsfelder konvertiert werden.
- Funktionsfelder, die Sie in der Reporting-UI erstellen, unterstützen kein Dot-Walking. Weitere Informationen finden Sie unter Konfigurieren Sie Funktionsfelder in Reporting .
- Die Sicherheit wird für die Komponenten der Funktion und den berechneten Wert des Felds ausgewertet. Bei Verwendung in Visualisierungen werden Abschnitte, die Informationen enthalten, die der Anwender nicht sehen darf, für den Anwender ausgeblendet.
- Feldfunktionsnamen müssen eindeutig sein.
Plattformfähigkeiten definieren
- Verwenden Sie die folgenden Anwendungsprogrammierschnittstellen (APIs), um Skriptfunktionen zu erstellen und zu verwenden.
Tabelle : 1. Funktions-APIs APIs Beschreibung Scoped GlideDBFunctionBuilder Konstruiert die Funktion zur Durchführung eines SQL-Vorgangs. GlideRecord – addFunction(Object function) Wendet die Funktion auf ein Objekt des Typs „GlideRecord“ an. GlideDBFunctionCaseBuilder - Global Erstellen Sie Fallanweisungen. - Erstellen Sie ein Feld, das die Funktionsdefinition enthält (siehe folgendes Beispiel).
Wählen Sie aus Funktionsfeld Kontrollkästchen im Formular „Wörterbucheintrag“ [sys_dictionary]. Diese Aktion gibt an, dass das Feld eine Funktion ausführt und keinen Wert speichert.
Glidefunktionsvorgänge
Glidefunktion: <operation> Syntax. Wenn Sie ein Feld als Argument angeben, können Sie DOT-Walk zu zugehörigen Feldern durchführen. Beispiel: cmdb_ci.name .| Vorgang | Beschreibung | Beispiel |
|---|---|---|
| add() | Verwendet zwei Zahlenfelder als Eingabe, addiert sie und gibt die Ergebnisse als Feldwert zurück. Diese Funktion verwendet auch numerische Werte für beide Eingaben. Platzieren Sie numerische Werte in einfache oder doppelte Anführungszeichen. |
Glidefunktion:add(Child_Incidents, parent_Incident) Gibt 6 zurück, wenn der Incident fünf untergeordnete Incidents und einen übergeordneten Incident hat. Mögliche Rückgabetypen: Dezimalzahl, Gleitkommazahl, große ganze Zahl, ganze Zahl |
| Zusammenfügen() | Verwendet eine beliebige Anzahl von kommagetrennten Feldern als Eingabe und gibt den ersten nicht leeren Wert zurück. | Glidefunktion:Coalesce(closed_at, Resolved_at, sys_updated_on) Wenn der Wert von closed_at leer ist, gibt die Funktion den Wert von Resolved_at zurück. Wenn der Wert von „Resolved_at“ ebenfalls leer ist, gibt die Funktion den Wert „sys_updated_on“ zurück. Rückgabetyp: Text |
| concat() | Verwendet eine beliebige Anzahl kommagetrennter Felder und Konstanten als Eingabe, verkettet die Eingabe und gibt eine einzige Zeichenfolge als Feldwert zurück. | Glidefunktion:concat(Incident_number, „/“, short_description) Gibt „INC0001/mein Client benötigt einen neuen Laptop“ zurück. Wenn der Wert des Zahlenfelds „INC0001“ ist und die Kurzbeschreibung „mein Kunde benötigt einen neuen Laptop“ lautet. Rückgabetyp: Text |
| datediff() | Verwendet zwei Datum/Uhrzeit-Felder als Eingabe, berechnet die Differenz zwischen den Datumsangaben in Tagen, Minuten und Sekunden und gibt die Ergebnisse als Wert für das Feld „Dauer“ zurück. | Glidefunktion:datediff(closed_at, sys_created_on) Gibt die Dauer eines Incidents vom Erstellungsdatum bis zum Abschlussdatum zurück. Beispielergebnis: 10 Tage, 8 Stunden 23 Minuten 11 Sekunden Rückgabetyp: Dauer |
| dayofweek() | Verwendet zwei Argumente: Ein Datumsfeld und eine Konstante von beiden „1“ (Woche beginnt am Sonntag) oder „2“ (Woche beginnt am Montag). Gibt die Ergebnisse als Ganzzahlwert zurück, der den Wochentag darstellt. Die wochentag() Die Funktion verwendet UTC-Daten, passt aber Vergleichswerte basierend auf der Zeitzone der Instanz an. |
Glidefunktion:dayofweek(Resolved_at, '1') . Wenn „Resolved_at“ an einem Mittwoch auftritt, gibt „4“ zurück, wenn die Ganzzahl 1 ist, und gibt „3“ zurück, wenn die Ganzzahl 2 ist. Rückgabetyp: Ganze Zahl |
| Distance_Sphere() | Nimmt zwei Standorte an und gibt die Entfernung zwischen ihnen in Metern zurück. |
Rückgabetyp: Decimal |
| divide() | Verwendet zwei Zahlenfelder als Eingabe, dividiert das erste durch das zweite und gibt das Ergebnis als Feldwert zurück. Diese Funktion verwendet auch numerische Werte für beide Eingaben. Platzieren Sie numerische Werte in einfache oder doppelte Anführungszeichen. |
Glidefunktion:Divide(u_num2,u_num1) Gibt 5 zurück, wenn Zahl 2 = 10 und Zahl 1 = 2. Mögliche Rückgabetypen: Dezimalzahl, Gleitkommazahl, große ganze Zahl, ganze Zahl |
| Get_Latitude() | Verwendet eine beliebige Geopunktspalte, ein numerisches Feld oder eine numerische Konstante und konvertiert sie in einen gültigen Breitengradwert innerhalb des Bereichs [-90,90]. |
Rückgabetyp: Gleitkommazahl |
| Get_longitude() | Verwendet eine beliebige Geopunktspalte, ein numerisches Feld oder eine numerische Konstante und konvertiert sie in einen gültigen Längengradwert innerhalb des Bereichs [-179,180]. |
Rückgabetyp: Gleitkommazahl |
| Greatest() | Verwendet zwei oder mehr Werte als Eingabe und gibt den größten Wert der Liste der Argumente zurück. | Glidefunktion:Greatest(10,100,1000) Gibt 1000 Zurück Mögliche numerische Rückgabetypen: Dezimalzahl, Gleitkommazahl, große ganze Zahl, ganze Zahl Diese Funktion funktioniert auch mit Datums- und Zeichenfolgenfeldern. |
| Geringste() | Verwendet zwei oder mehr Werte als Eingabe und gibt den niedrigsten Wert der Liste der Argumente zurück. | Glidefunktion:least(10,100,1000) Gibt 10 Zurück Mögliche numerische Rückgabetypen: Dezimalzahl, Gleitkommazahl, große ganze Zahl, ganze Zahl Diese Funktion funktioniert auch mit Datums- und Zeichenfolgenfeldern. |
| length() | Verwendet ein Zeichenfolgenfeld als Eingabe, berechnet die Feldlänge in Zeichen und gibt die Ergebnisse als Feldwert zurück. | Glidefunktion:length(short_description) Gibt 37 zurück, wenn „short_description“ = „diese Anwendung führt einen Test durch“. Rückgabetyp: Ganze Zahl |
| multiply() | Verwendet zwei Zahlenfelder als Eingabe, führt die Multiplikation aus und gibt die Ergebnisse als Feldwert zurück. Diese Funktion verwendet auch numerische Werte für beide Eingaben. Platzieren Sie numerische Werte in einfache oder doppelte Anführungszeichen. |
Glidefunktion:Multiply(u_num1, u_num2) Gibt 48 zurück, wenn Zahl 1 = 8 und num_2 = 6. Mögliche Rückgabetypen: Dezimalzahl, Gleitkommazahl, große ganze Zahl, ganze Zahl |
| Position () | Verwendet zwei Textfelder oder zwei Textfelder und eine ganze Zahl als Eingabe. Eines oder beide der Textfelder können auch Zeichenfolgen sein.
Gibt 0 zurück, wenn das erste Textfeld in der zweiten nicht vorhanden ist (nach der Position der ganzen Zahl, falls angegeben). |
Rückgabetyp: Ganze Zahl |
| Teilzeichenfolge() | Verwendet ein Textfeld und zwei ganze Zahlen als Eingabe. Gibt die erste Instanz einer Zeichenfolge zurück, die an der Position der ersten ganzen Zahl beginnt und die Länge der zweiten ist. | Glidefunktion:substring(short_description, '7', '2') Wenn der Wert des Felds „short_description“ „Wir gehen zum Store“ ist, wird „Go“ zurückgegeben. Rückgabetyp: Text |
| subtract() | Verwendet zwei Zahlenfelder als Eingabe, subtrahiert das zweite vom ersten und gibt das Ergebnis als Feldwert zurück. Diese Funktion verwendet auch numerische Werte für beide Eingaben. Platzieren Sie numerische Werte in einfache oder doppelte Anführungszeichen. |
Glidefunktion:subtrahieren (u_num1, u_num2) Gibt 2 zurück, wenn numerische 1 = 8 und num_2 = 6. Mögliche Rückgabetypen: Dezimalzahl, Gleitkommazahl, große ganze Zahl, ganze Zahl |
| To_geopoint() | Verwendet Spalten für Breiten- und Längengrad oder numerische Werte und konvertiert sie in eine Geopunktspalte. |
Rückgabetyp: Geo-Punkt |
Funktionsfelder zur Ausführung von Datenbankfunktionen erstellen
Sie können ein Feld erstellen, in dem das Ergebnis einer Datenbankfunktion angezeigt wird, beispielsweise einer mathematischen Berechnung, einer Feldlängenberechnung oder einer Wochentagberechnung. Testen Sie in einer Subproduktionsinstanz, bevor Sie in einer Produktionsinstanz bereitstellen.
Vorbereitungen
Prozedur
Ergebnisse
Ist die Funktionsdefinition ungültig, wird anstelle des erwarteten Werts die Nachricht Ungültige Funktion angezeigt, wenn das Funktionsfeld ein Zeichenfolgenfeld ist. Bei anderen Feldtypen wird ein leerer Wert angezeigt.