Funktionsfeld

  • Freigeben Version: Australia
  • Aktualisiert 12. März 2026
  • 9 Minuten Lesedauer
  • 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.

    Warnung:
    Ein Funktionsfeld, das auf ein anderes Funktionsfeld in der Funktion verweist, führt zu einem Fehler. Funktionsfelder enthalten keine Daten oder werden in der Laufzeit ausgewertet.

    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 ein Funktionsskript, das nur die Datensätze abruft, die die Kriterien erfüllen.

    Für eine einfache Berechnung ist es besser, ein Funktionsfeld oder ein Funktionsskript zu verwenden, anstatt einen berechneten Wert zu speichern. Der Wert wird immer beim Abruf berechnet. Ein weiterer Vorteil der Verwendung von Funktionsfeldern besteht darin, dass der Datenbankserver die Transformation anstelle des Anwendungsknotens durchführt.

    Funktionsfelder vs. Berechnete Felder

    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 auf dem neuesten Stand.

    Funktionsfelder vs. Business-Regeln

    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.

    Funktionsfelder versus Filter, Abfragezeichenfolgen und Rhino

    Anstatt Rhino aufzurufen, um Zeichenfolgen-Transformationen durchzuführen, können Sie ein Funktionsfeld oder ein Funktionsskript verwenden, um die Transformationen für Sie auszuführen. Funktionsfelder und Funktionsskripts sind effizienter und führen zu aktuellen Werten, die nicht gespeichert oder verwaltet werden müssen.

    Funktionsfeldbeschränkungen

    Da Funktionsfeldberechnungen nicht in der Datenbank gespeichert sind, sind einige Vorgänge nicht relevant.
    • Funktionsfelder können nicht direkt auditiert oder indiziert werden.
      Hinweis:
      Um ein Funktionsfeld als reguläres Feld zu indizieren, stellen Sie sicher, dass die einzelnen von der Funktion verwendeten Felder indiziert sind. 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 ein Funktionsfeldwert nie in der Datenbank gespeichert wird.
    • Funktionsfelder können nicht in reguläre Felder konvertiert werden oder umgekehrt.
    • Funktionsfelder, die Sie in der Berichterstellungs-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.

    Definieren von Plattformfunktionen

    Plattformfunktionen können auf zwei Arten definiert werden:
    1. Verwenden Sie die folgenden Anwendungsprogrammierschnittstellen (APIs), um Funktionen in einem Skript zu erstellen und zu verwenden.
      Tabelle : 1. Funktions-APIs
      APIs Beschreibung
      Bereichsbezogener GlideDBFunctionBuilder Erstellen Sie die Funktion zum Ausführen eines SQL-Vorgangs.
      GlideRecord – addFunction(Objektfunktion) Wenden Sie die Funktion auf einen GlideRecord an.
      GlideDBFunctionCaseBuilder - Global Erstellen Sie Fallanweisungen.
    2. Erstellen Sie ein Feld, das die Funktionsdefinition enthält, wie im folgenden Beispiel gezeigt.

      Funktionsfelddefinition

      Wählen Sie aus Funktionsfeld Aktivieren Sie das 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

    Funktionsfelder können die folgenden Vorgänge mit ausführen 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 .
    Hinweis:
    Der Funktionsfeldtyp muss mit dem Rückgabetyp der Glide-Funktion kompatibel sein. Beispiel: Ganzzahl, Longint, Zeichenfolge usw. Wenn der zurückgegebene Typ nicht in den Wörterbuchtyp konvertiert werden kann, erhalten Sie Ausnahmen.
    Tabelle : 2. Funktionsfeldvorgänge
    Vorgang Beschreibung Beispiel
    Hinzufügen () Verwendet zwei Zahlenfelder als Eingabe, fügt sie hinzu 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, solved_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 von kommagetrennten Feldern und Konstanten als Eingabe, verkettet die Eingabe und gibt eine einzelne 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 Nummernfelds „INC0001“ ist und die Kurzbeschreibung „mein Kunde benötigt einen neuen Laptop“ lautet.

    Rückgabetyp: Text

    Datediff() Verwendet zwei Datums-/Uhrzeitfelder als Eingabe, berechnet die Differenz zwischen den Daten in Tagen, Minuten und Sekunden und gibt die Ergebnisse als Dauerfeldwert 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

    wochentag() 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.
    • Glidefunktion:distance_Sphere('-0,189937', '51.473584', '80.206458', '25.767242')

      Gibt den Abstand zwischen den beiden Gruppen von Längen- und Breitengradpaaren zurück.

    • Glidefunktion:distance_Sphere(u_location, '80.206458', '25.767242')

      Gibt den Abstand zwischen dem Geopunktfeld „u_location“ und den Längen- und Breitengradkoordinaten zurück.

    • Glidefunktion:distance_Sphere(location1, location2)

      Gibt die Entfernung zwischen den Geopunktfeldern „location1“ und „location2“ zurück.

    • Glidefunktion:Divide(distance_Sphere(location1, „-0,189937“, „51.473584“), „1000“)

      Gibt die Entfernung zwischen dem Geopunktfeld location1 und London in Kilometern zurück.

    Rückgabetyp: Dezimal

    Dividieren() 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 num2 = 10 und num1 = 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].
    • Glidefunktion:get_Latitude(u_geo_Point_field) Gibt den Breitengradwert im u_geo_Point_field zurück.
    • Glidefunktion:get_Latitude(u_numerical_column) Gibt den Breitengradwert in der u_numerical_column innerhalb des Bereichs [-90,90] zurück.
    • Glidefunktion:get_Latitude('305.767242') Gibt den Breitengradwert von -54,232758 zurück.

    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].
    • Glidefunktion:get_longitude(u_geo_Point_field) Gibt den Längengradwert im u_geo_Point_field zurück.
    • Glidefunktion:get_ longitude(u_numerical_column) Gibt den Längengradwert in der u_numerical_column innerhalb des Bereichs [-179,180] zurück.
    • Glidefunktion:get_longitude('380.206458') Gibt den Längengradwert 20,206458 zurück.

    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.

    Länge() 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

    Multiplizieren() 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 num1 = 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 Textfelder können auch Zeichenfolgen sein.
    1. Gibt die Position des ersten Vorkommens der Zeichenfolge des ersten Textfelds in der zweiten zurück.
    2. Wenn eine ganze Zahl angegeben ist, gibt diese Funktion die Position des zweiten Textfelds nach der Position der ganzen Zahl zurück.

    Gibt 0 zurück, wenn das erste Textfeld in der zweiten nicht vorhanden ist (nach der Position der ganzen Zahl, falls angegeben).

    • Glidefunktion:Position('e',short_description)

      Wenn der Wert des Felds „short_description“ „dieser Computer führt ein Upgrade durch“ ist, wird 12 zurückgegeben.

    • Glidefunktion:Position('e',short_description,'14')

      Wenn der Wert des Felds „short_description“ „dieser Computer führt ein Upgrade durch“ ist, wird 19 zurückgegeben.

    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

    Subtrahieren() 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 num1 = 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ängengrade oder numerische Werte und konvertiert sie in eine Geopunktspalte.
    • Glidefunktion:to_geopoint(u_Long_column, u_lat_column)

      Konvertiert die Spalten für Breiten- und Längengrad in eine einzelne Geo_Point-Spalte.

    • Glidefunktion:to_geopoint('80.206458','25.767242')

      Gibt ein Geo_Point-Feld mit den Koordinaten „(80.206458, 25.767242)“ zurück.

    Rückgabetyp: Geo-Punkt

    Erstellen Sie ein Funktionsfeld, um Datenbankfunktionen auszuführen

    Erstellen Sie ein Feld, das die Ergebnisse einer Datenbankfunktion anzeigt, z. B. einen mathematischen Vorgang, die Berechnung der Feldlänge oder die Berechnung des Wochentags. Testen Sie in einer Subproduktionsinstanz, bevor Sie in einer Produktionsinstanz bereitstellen.

    Vorbereitungen

    Erforderliche Rolle: Personalize_dictionary oder admin.

    Prozedur

    1. Navigieren zu Alle > Systemdefinition > Wörterbuchan.
    2. Klicken Sie auf Neu.
    3. Wählen Sie Aus Funktionsfeld .
    4. Füllen Sie diese Felder im Formular aus.
      Tabelle : 3. Felder für Funktionsfelder
      Feld Beschreibung
      Tabelle Tabelle, der das Funktionsfeld hinzugefügt wird.
      Typ Spezies der Typ des Felds: Zeichenfolge, Zahl, Datum usw.
      Spaltenbezeichnung Definiert die Bezeichnung für die Spalte.
      Spaltenname Definiert den Namen der Spalte. Automatisch erstellt basierend auf Spaltenbezeichnung .
      Max. Länge Definiert die maximale Länge des Rückgabewerts.
      Funktionsfeld Wenn diese Option ausgewählt ist, wird ein Feld erstellt, das die Ergebnisse einer Datenbankfunktion anzeigt, z. B. ein mathematischer Vorgang, die Berechnung der Feldlänge oder die Berechnung des Wochentags.

      Sobald der neue Funktionsdatensatz gespeichert wurde, können Sie das Kontrollkästchen nicht deaktivieren, um das Feld zu einem regulären Feld zu machen.

      Funktionsdefinition Definiert die Funktion, die das Feld ausführt.

      Beginnt mit Glidefunktion: , Gefolgt vom auszuführenden Vorgang (z. B. Verkettung ), gefolgt von Funktionsparametern. Konstanten müssen in einfache Anführungszeichen eingeschlossen werden.

      Mit der folgenden Funktionsdefinition wird beispielsweise ein Feld erstellt, das die Kurzbeschreibung, gefolgt von einem Leerzeichen und dem Anrufernamen anzeigt:

      Glidefunktion:concat(short_description, „ “, caller_id.name)

      Hinweis:
      Funktionsparameter unterstützen Dot-Walking. Weitere Informationen finden Sie unter Dot-walking to data in related tables.
    5. Klicken Sie auf Absenden.
      Sie kehren zur Tabelle „Wörterbucheintrag“ [sys_dictionary] zurück.
    6. Navigieren Sie zu der Tabelle, der Sie das Funktionsfeld hinzugefügt haben.
    7. Fügen Sie der Liste das Funktionsfeld hinzu.
      Weitere Informationen finden Sie unter Configure items on forms or in lists using a list collector.

    Ergebnisse

    Verwenden Sie das Funktionsfeld wie jedes andere Feld. Fügen Sie sie beispielsweise einem Formular hinzu, verwenden Sie sie in einem Filter oder verwenden Sie sie im Bedingungsgenerator.

    Wenn die Funktionsdefinition ungültig ist, erhalten Sie anstelle des erwarteten Werts die Nachricht Ungültige Funktion Ob das Funktionsfeld ein Zeichenfolgentypfeld oder ein leerer Wert für andere Feldtypen ist.