GlideDBFunctionCaseBuilder – Global

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 6 Minuten Lesedauer
  • Mit GlideDBCaseStatementBuilder können Sie SQL CASE-Anweisungen erstellen und Werte basierend auf einer Reihe von Bedingungen zurückgeben.

    Diese API kann als Teil der Definition der GlideElement – Global -API oder beim Abfragen einer Tabelle verwendet werden. Um eine CASE -Anweisung zu erstellen, instanziieren Sie zunächst das GlideDBFunctionCaseBuilder-Objekt mit seinem Konstruktor GlideDBFunctionCaseBuilder(). Definieren Sie dann einen oder mehrere Fälle mit einer Reihe von Aufrufen vom Typ when() und then(), gefolgt von einem einzelnen, optionalen Aufruf von ansonsten(). Rufen Sie zuletzt die Methode build() auf, um den Generator abzuschließen und die vollständige Fallanweisung für die Datenbankfunktion zu erstellen. Diese Anweisung kann dann direkt oder als Teil anderer Glide-Funktionsdefinitionen verwendet werden.

    Erforderliche Rollen: admin, function_field_admin.

    GlideDBFunctionCaseBuilder – GlideDBFunctionCaseBuilder()

    Instantiiert 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 CASE-Anweisung.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 3. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Die ausgefüllte Fallbeschreibung.

    Das folgende Beispiel zeigt, wie eine einfache Fallanweisung definiert und erstellt wird. Abhängig vom numerischen Wert des Auswirkungsfelds 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 = new GlideRecord("incident");
    gr.addFunction(caseStatement);
    gr.setLimit(10);
    gr.query();
    while(gr.next())  {
        gs.info("impact: {0}  case: {1}",
                [gr.impact, gr.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 – then(String exp)

    Nach einer beliebigen when() -Methode können Sie mit then() einen Wert angeben, der ausgegeben werden soll, wenn der Ausdruck when() erfüllt ist.

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

    Das folgende Beispiel zeigt, wie eine einfache Fallanweisung definiert und erstellt wird. In diesem Fall zeigen die then()- Ausdrücke, wie Sie nicht nur Zeichenfolgen, sondern auch die Ergebnisse anderer Glide-Funktionen wie „length(short_description)“ ausgeben können.

    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 = new GlideRecord("incident");
    gr.addFunction(caseStatement);
    gr.setLimit(10);
    gr.query();
    while(gr.next())  {
          gs.info("impact: {0}  case: {1}",
                  [gr.impact, gr.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 – ansonsten(String exp)

    Optional. Nach mindestens einem Aufrufpaar für when und then können Sie mit dem Aufruf ansonsten () einen Wert angeben, der ausgegeben werden soll, wenn keiner der When-Ausdrücke erfüllt ist.

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

    Das folgende Beispiel zeigt, wie eine einfache Fallanweisung definiert und erstellt wird.

    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 = new GlideRecord("incident");
    gr.addFunction(caseStatement);
    gr.setLimit(10);
    gr.query();
    while(gr.next())  {
          gs.info("impact: {0}  case: {1}",
                  [gr.impact, gr.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)

    Als vielseitigster der unterstützten „when“-Ausdrücke ermöglicht die Methode when() die Angabe einer beliebigen Glide-Funktion mit boolean Wert als zu erfüllende Bedingung.

    Tabelle : 8. Parameter
    Name Typ Beschreibung
    Funktion Zeichenfolge Eine Glide-Funktion, die bei Auswertung ein Ergebnis mit boolean Wert ergibt. Mögliche Werte:
    • glidefunction:compare
    • glideFunktion: und
    • glidefunction: oder
    Tabelle : 9. Ergebnisse
    Typ Beschreibung
    glideDBFunctionCaseBuilder Das Objekt, um mit dem Erstellen der Anweisung fortzufahren.

    Das folgende Beispiel zeigt, wie eine einfache Fallanweisung definiert und erstellt wird. In diesem Fall wird die Methode when() verwendet, um komplexere Vergleichsausdrücke anzugeben. Wenn der Ausdruck als „true“ 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 = new GlideRecord("incident"); 
    gr.addFunction(caseStatement); 
    gr.setLimit(20); 
    gr.query(); 
    while(gr.next())  { 
          gs.info("impact: {0}  category: {1}  case: {2}", 
                [gr.impact, gr.category, gr.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 – whenCompare(String exp1, String op, String exp2)

    Beginnt 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 Ein Vergleichsoperator, eingeschlossen in Anführungszeichen. Muss einer der folgenden sein:
    • "'='"
    • "'<'"
    • "'>'"
    • "'<='"
    • "'>='"
    exp2 Zeichenfolge Rechter Vergleichsausdruck. Kann eine Konstante, ein Verweis auf ein Feld oder eine andere Glide-Funktion sein.
    Tabelle : 11. Ergebnisse
    Typ Beschreibung
    GlideDBFunctionCaseBuilder Das Funktionsgeneratorobjekt, um mit dem Erstellen der Anweisung fortzufahren.

    Das folgende Beispiel zeigt, wie eine einfache Fallanweisung definiert und erstellt wird. In diesem Fall wird die Methode whenCompare() verwendet, um den Wert des Auswirkungsfelds mit einer Zahl zu vergleichen und bei Übereinstimmung eine angegebene Zeichenfolge auszugeben.

    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 = new GlideRecord("incident");
    gr.addFunction(caseStatement);
    gr.setLimit(10);
    gr.query();
    while(gr.next()) {
        gs.info("impact: {0} case: {1}",
                [gr.impact, gr.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 – whenEqual(String exp1, String exp2)

    Ähnlich wie whenCompare()ist whenEqual() eine praktische Methode zur Überprüfung der Gleichheit. Es ist äquivalent zu whenCompare(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. Ergebnisse
    Typ Beschreibung
    GlideDBFunctionCaseBuilder Das Funktionsgeneratorobjekt, um mit dem Erstellen der Anweisung fortzufahren.

    Das folgende Beispiel zeigt, wie eine einfache Fallanweisung definiert und erstellt wird. In diesem Fall wird die Methode whenEqual() verwendet, um den Wert des Auswirkungsfelds mit einer Zahl zu vergleichen und bei Übereinstimmung eine angegebene Zeichenfolge auszugeben.

    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 = new GlideRecord("incident");
    gr.addFunction(caseStatement);
    gr.setLimit(10);
    gr.query();
    while(gr.next())  {
        gs.info("impact: {0}  case: {1}",
                [gr.impact, gr.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