GlideDBFunctionCaseBuilder – Global

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 6 Minuten Lesedauer
  • Die GlideDBCaseStatementBuilder Mit der API können Sie SQL-FALLANWEISUNGEN erstellen und Werte basierend auf einer Reihe von Bedingungen zurückgeben.

    Sie können diese API als Teil der Definition von verwenden GlideElement – Global API oder beim Abfragen einer Tabelle. Zum Erstellen von FALL Anweisung, beginnen Sie mit der Instanziierung des GlideDBFunctionCaseBuilder-Objekts mit seinem Konstruktor, GlideDBFunctionCaseBuilder() . Definieren Sie dann einen oder mehrere Fälle mithilfe einer Reihe von Wenn() Und Then() Anrufe gefolgt von einem einzelnen, optional Andernfalls() Rufen Sie an. Rufen Sie zuletzt an Build() Methode zum Finalisieren des Generators und zum Erstellen der abgeschlossenen Fallanweisung für die Datenbankfunktion. Diese Anweisung kann dann direkt oder als Teil anderer Glide-Funktionsdefinitionen verwendet werden.

    Erforderliche Rollen: Admin, function_field_admin.

    GlideDBFunctionCaseBuilder: GlideDBFunctionCaseBuilder()

    Instanziiert ein GlideDBFunctionCaseBuilder-Objekt.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Keine

    In diesem Beispiel wird ein GlideDBFunctionCaseBuilder-Objekt instanziiert.

    var caseBuilder = new GlideDBFunctionCaseBuilder();
    

    GlideDBFunctionCaseBuilder – Build()

    Schließt die Liste der Bedingungen ab und erstellt die endgültige FALLBESCHREIBUNG.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 3. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Die abgeschlossene Fallanweisung.

    Das folgende Beispiel zeigt, wie Sie eine einfache Fallbeschreibung definieren und erstellen. Abhängig vom numerischen Wert des Felds Auswirkung wird eine von vier verschiedenen Zeichenfolgen ausgegeben.

    const caseStatement = new GlideDBFunctionCaseBuilder()
        .whenCompare("impact", "'='", "'1'").then("'CRITICAL'")
        .whenCompare("impact", "'='", "'2'").then("'URGENT'")
        .whenCompare("impact", "'='", "'3'").then("'IMPORTANT'")
        .otherwise("'NOT IMPORTANT'")
        .build();
    
    const gr_incident = new GlideRecord("incident");
    gr_incident.addFunction(caseStatement);
    gr_incident.setLimit(10);
    gr_incident.query();
    while(gr_incident.next())  {
        gs.info("impact: {0}  case: {1}",
                [gr_incident.impact, gr_incident.getValue(caseStatement)]);
    }

    Ausgabe:

    *** Script: impact: 2  case: URGENT
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 3  case: IMPORTANT
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 3  case: IMPORTANT
    *** Script: impact: 3  case: IMPORTANT

    GlideDBFunctionCaseBuilder – otherwise(String Exp)

    Optional. Nach mindestens einem Paar von Aufrufen an „When“ und „dann“ können Sie mit dem Aufruf „otherwise()“ einen Wert angeben, der ausgegeben werden soll, wenn keiner der when-Ausdrücke erfüllt ist.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    exp Zeichenfolge Auszugebender Wert. Kann eine Konstante, ein Verweis auf ein Feld oder eine andere Glide-Funktion sein.
    Tabelle : 5. Rückgaben
    Typ Beschreibung
    GlideDBFunctionCaseBuilder Das Fluent Builder-Objekt, um mit der Erstellung der Anweisung fortzufahren.

    Das folgende Beispiel zeigt, wie Sie eine einfache Fallbeschreibung definieren und erstellen.

    const caseStatement = new GlideDBCaseFunctionBuilder()
        .whenEqual("impact", "'1'").then("'CRITICAL'") 
        .whenEqual("impact", "'2'").then("category")
        .whenEqual("impact", "'3'").then("length(short_description)")
        .otherwise("'NOT IMPORTANT'")
        .build();
    
    const gr_incident = new GlideRecord("incident");
    gr_incident.addFunction(caseStatement);
    gr_incident.setLimit(10);
    gr_incident.query();
    while(gr_incident.next())  {
          gs.info("impact: {0}  case: {1}",
                  [gr_incident.impact, gr_incident.getValue(caseStatement)]);
    }

    Ausgabe:

    *** Script: impact: 2  case: inquiry
    *** Script: impact: 2  case: Hardware
    *** Script: impact: 1  case:  CRITICAL
    *** Script: impact: 2  case: database
    *** Script: impact: 2  case: inquiry
    *** Script: impact: 3  case: 28
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 3  case: 17
    *** Script: impact: 3  case: 29

    GlideDBFunctionCaseBuilder – then(String Exp)

    Folgt einem Wenn() Methode, Then() Ermöglicht Ihnen die Angabe eines auszugebenden Werts, wenn Wenn() Ausdruck ist zufrieden.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    exp Zeichenfolge Auszugebender Wert. Kann eine Konstante, ein Verweis auf ein Feld oder eine andere Glide-Funktion sein.
    Tabelle : 7. Rückgaben
    Typ Beschreibung
    GlideDBFunctionCaseBuilder Das Fluent Builder-Objekt, um mit der Erstellung der Anweisung fortzufahren.

    Das folgende Beispiel zeigt, wie Sie eine einfache Fallbeschreibung definieren und erstellen. In diesem Fall wird Then() Ausdrücke zeigen, wie Sie nicht nur Zeichenfolgen, sondern auch die Ergebnisse anderer Glide-Funktionen wie ausgeben können Länge (short_description) .

    const caseStatement = new GlideDBCaseFunctionBuilder()
        .whenEqual("impact", "'1'").then("'CRITICAL'") 
        .whenEqual("impact", "'2'").then("category")
        .whenEqual("impact", "'3'").then("length(short_description)")
        .otherwise("'NOT IMPORTANT'")
        .build();
    
    const gr_incident = new GlideRecord("incident");
    gr_incident.addFunction(caseStatement);
    gr_incident.setLimit(10);
    gr_incident.query();
    while(gr_incident.next())  {
          gs.info("impact: {0}  case: {1}",
                  [gr_incident.impact, gr_incident.getValue(caseStatement)]);
    }

    Ausgabe:

    *** Script: impact: 2  case: inquiry
    *** Script: impact: 2  case: Hardware
    *** Script: impact: 1  case:  CRITICAL
    *** Script: impact: 2  case: database
    *** Script: impact: 2  case: inquiry
    *** Script: impact: 3  case: 28
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 3  case: 17
    *** Script: impact: 3  case: 29

    GlideDBFunctionCaseBuilder – when(String Func)

    Der vielseitigste der unterstützten „wenn“-Ausdrücke, der Wenn() Mit der Methode können Sie jede Glide-Funktion mit booleschen Werten als zu erfüllende Bedingung angeben.

    Tabelle : 8. Parameter
    Name Typ Beschreibung
    funktion Zeichenfolge Eine Glide-Funktion, die bei der Auswertung zu einem Ergebnis mit booleschen Werten führt. Mögliche Werte:
    • Glidefunktion:Vergleichen
    • Glidefunktion:und
    • Glidefunktion:oder
    Tabelle : 9. Rückgaben
    Typ Beschreibung
    GlideDBFunctionCaseBuilder Das Objekt, um mit der Erstellung der Anweisung fortzufahren.

    Das folgende Beispiel zeigt, wie Sie eine einfache Fallbeschreibung definieren und erstellen. In diesem Fall wird Wenn() Die Methode wird verwendet, um komplexere Vergleichsausdrücke anzugeben. Wenn der Ausdruck als „wahr“ ausgewertet wird, wird die entsprechende Zeichenfolge zurückgegeben.

    const caseStatement = new GlideDBFunctionCaseBuilder() 
        // if impact == 1 AND category == 'Software' then output "CRITICAL SOFTWARE" 
        .when("and(compare(impact, '=', '1'), compare(category, '=',  
    'Software')") 
            .then("'CRITICAL SOFTWARE'") 
        // if impact == 1 then output "CRITICAL OTHER" 
        .when("compare(impact, '=', '1')") 
            .then("'CRITICAL OTHER'") 
        // if impact == 2 OR category == 'Software' then output "URGENT" 
        .when("or(compare(impact, '=', '2'), compare(category, '=', 'Software')") 
            .then("'URGENT'") 
        // If none of the above expressions are true, output "NOT IMPORTANT" 
        .otherwise("'NOT IMPORTANT'") 
        .build(); 
     
    const gr_incident = new GlideRecord("incident");
    gr_incident.addFunction(caseStatement); 
    gr_incident.setLimit(20); 
    gr_incident.query(); 
    while(gr_incident.next())  { 
          gs.info("impact: {0}  category: {1}  case: {2}", 
                [gr_incident.impact, gr_incident.category, gr_incident.getValue(caseStatement)]); 
    }

    Ausgabe:

    impact: 2  category: inquiry  case: URGENT
    impact: 2  category: Hardware  case: URGENT
    impact: 1  category: inquiry  case:  CRITICAL OTHER
    impact: 2  category: database  case: URGENT
    impact: 2  category: inquiry  case: URGENT
    impact: 3  category: software  case: URGENT
    impact: 1  category: inquiry  case: CRITICAL OTHER
    impact: 1  category: inquiry  case: CRITICAL OTHER
    impact: 3  category: inquiry  case: NOT IMPORTANT
    impact: 3  category: inquiry  case: NOT IMPORTANT
    impact: 3  category: hardware  case: NOT IMPORTANT
    impact: 3  category: inquiry  case: NOT IMPORTANT
    impact: 3  category: hardware  case: NOT IMPORTANT
    impact: 3  category: inquiry  case: NOT IMPORTANT
    impact: 1  category: inquiry  case: CRITICAL OTHER
    impact: 1  category: software  case: CRITICAL SOFTWARE
    impact: 3  category: inquiry  case: NOT IMPORTANT
    impact: 3  category: inquiry  case: NOT IMPORTANT
    impact: 2  category: software  case: URGENT
    impact: 1  category: software  case: CRITICAL SOFTWARE

    GlideDBFunctionCaseBuilder – when Compare(Zeichenfolge exp1, Zeichenfolge op, Zeichenfolge exp2)

    Startet eine Vergleichsfallbedingung.

    Tabelle : 10. Parameter
    Name Typ Beschreibung
    exp1 Zeichenfolge Linker Vergleichsausdruck. Kann eine Konstante, ein Verweis auf ein Feld oder eine andere Glide-Funktion sein.
    op Zeichenfolge Vergleichsoperator, umgeben von Anführungszeichen.

    Gültige Werte:

    • "'='"
    • "'<'"
    • "'>'"
    • "'<='"
    • "'>='"
    exp2 Zeichenfolge Rechter Vergleichsausdruck. Kann eine Konstante, ein Verweis auf ein Feld oder eine andere Glide-Funktion sein.
    Tabelle : 11. Rückgaben
    Typ Beschreibung
    GlideDBFunctionCaseBuilder Das Funktionsgeneratorobjekt, um mit der Erstellung der Anweisung fortzufahren.

    Das folgende Beispiel zeigt, wie Sie eine einfache Fallbeschreibung definieren und erstellen. In diesem Fall wird When Compare() Die Methode wird verwendet, um den Wert des Auswirkungsfelds mit einer Zahl zu vergleichen und eine angegebene Zeichenfolge auszugeben, wenn sie übereinstimmen.

    const caseStatement = new GlideDBFunctionCaseBuilder()
        .whenCompare("impact", "'='", "'1'").then("'CRITICAL'")
        .whenCompare("impact", "'='", "'2'").then("URGENT")
        .whenCompare("impact", "'='", "'3'").then("IMPORTANT")
        .otherwise("'NOT IMPORTANT'")
        .build();
    
    const gr_incident = new GlideRecord("incident");
    gr_incident.addFunction(caseStatement);
    gr_incident.setLimit(10);
    gr_incident.query();
    while(gr_incident.next()) {
        gs.info("impact: {0} case: {1}",
                [gr_incident.impact, gr_incident.getValue(caseStatement)]);
    }

    Ausgabe:

    *** Script: impact: 2  case: URGENT
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 3  case: IMPORTANT
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 3  case: IMPORTANT
    *** Script: impact: 3  case: IMPORTANT
    

    GlideDBFunctionCaseBuilder – when Equal(Zeichenfolge exp1, Zeichenfolge exp2)

    Ähnlich wie When Compare() , When Equal() Ist eine praktische Methode zum Überprüfen der Gleichheit. Entspricht When Compare(leftExpression, „=“, rightExpression) .

    Tabelle : 12. Parameter
    Name Typ Beschreibung
    exp1 Zeichenfolge Linker Vergleichsausdruck. Kann eine Konstante, ein Verweis auf ein Feld oder eine andere Glide-Funktion sein.
    exp2 Zeichenfolge Rechter Vergleichsausdruck. Kann eine Konstante, ein Verweis auf ein Feld oder eine andere Glide-Funktion sein.
    Tabelle : 13. Rückgaben
    Typ Beschreibung
    GlideDBFunctionCaseBuilder Das Funktionsgeneratorobjekt, um mit der Erstellung der Anweisung fortzufahren.

    Das folgende Beispiel zeigt, wie Sie eine einfache Fallbeschreibung definieren und erstellen. In diesem Fall wird When Equal() Die Methode wird verwendet, um den Wert des Auswirkungsfelds mit einer Zahl zu vergleichen und eine angegebene Zeichenfolge auszugeben, wenn sie übereinstimmen.

    const caseStatement = new GlideDBFunctionCaseBuilder()
        .whenEqual("impact", "'1'").then("'CRITICAL'")
        .whenEqual("impact", "'2'").then("'URGENT'")
        .whenEqual("impact", "'3'").then("'IMPORTANT'")
        .otherwise("'NOT IMPORTANT'")
        .build();
    
    const gr_incident = new GlideRecord("incident");
    gr_incident.addFunction(caseStatement);
    gr_incident.setLimit(10);
    gr_incident.query();
    while(gr_incident.next())  {
        gs.info("impact: {0}  case: {1}",
                [gr_incident.impact, gr_incident.getValue(caseStatement)]);
    }

    Ausgabe:

    *** Script: impact: 2  case: URGENT
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 2  case: URGENT
    *** Script: impact: 3  case: IMPORTANT
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 1  case: CRITICAL
    *** Script: impact: 3  case: IMPORTANT
    *** Script: impact: 3  case: IMPORTANT