GlideDBFunctionCaseBuilder : Global

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 6 Minuten Lesedauer
  • Mit der GlideDBBaseStatementBuilder -API können Sie SQL-CASE-Anweisungen erstellen und Werte basierend auf einer Reihe von Bedingungen zurückgeben.

    Sie können diese API als Teil der Definition der GlideElement : Global -API oder beim Abfragen einer Tabelle verwenden. Um eine CASE -Anweisung zu erstellen, instanziieren Sie zunächst das Objekt GlideDBFunctionCaseBuilder mit seinem Konstruktor GlideDBFunctionCaseBuilder(). Definieren Sie dann einen oder mehrere Fälle mit einer Reihe von Aufrufen vom Typ „when()“ und „thenn()“ gefolgt von einem einzelnen, optionalen Aufruf von sonst(). Rufen Sie zuletzt die build()- Methode auf, um den Builder abzuschließen und die vollständige Datenbankfunktions-Case-Anweisung zu erstellen. Diese Anweisung kann dann direkt oder als Teil anderer Glide-Funktionsdefinitionen verwendet werden.

    Erforderliche Rolle: Administrator, Funktion_Feld_Administrator.

    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()

    Beendet die Liste der Bedingungen und erstellt die endgültige CASE-Anweisung.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 3. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Die abgeschlossene 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_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 – sonst (Zeichenfolgenexp)

    Optional. Nach mindestens einem Aufrufpaar von wenn und dann können Sie mit dem sonst()-Aufruf einen Wert angeben, der ausgegeben wird, wenn keiner der Wenn-Ausdrücke erfüllt ist.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    abgel 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 Flow-Generator-Objekt zum Fortsetzen der Erstellung der Anweisung.

    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_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 - dann (Zeichenfolgenexp)

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

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    abgel 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 Flow-Generator-Objekt zum Fortsetzen der Erstellung der Anweisung.

    Das folgende Beispiel zeigt, wie eine einfache Fallanweisung definiert und erstellt wird. In diesem Fall zeigen die Ausdrücke dann (), wie Sie nicht nur Zeichenfolgen, sondern auch die Ergebnisse anderer Glide-Funktionen (z. B. der Länge (kurze Beschreibung) )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_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 - wenn (Zeichenfolgenfunktion)

    Die wenn()- Methode ist der vielseitigste der unterstützten Ausdrücke und ermöglicht es Ihnen, eine beliebige Glide-Funktion mit einem booleschen Wert als zu erfüllende Bedingung anzugeben.

    Tabelle : 8. Parameter
    Name Typ Beschreibung
    Funktion Zeichenfolge Eine Glide-Funktion, die bei der Auswertung ein Ergebnis mit einem booleschen Wert ergibt. Mögliche Werte:
    • GlideFunktion:vergleichen
    • GlideFunktion:und
    • GlideFunktion:oder
    Tabelle : 9. Rückgaben
    Typ Beschreibung
    glideDBFunctionCaseBuilder Das Objekt zum Fortsetzen der Erstellung der Anweisung.

    Das folgende Beispiel zeigt, wie eine einfache Fallanweisung definiert und erstellt wird. In diesem Fall wird die Methode wenn() 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_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 - wennCompare(String exp1, String op, String exp2)

    Startet eine Vergleichsfallbedingung.

    Tabelle : 10. Parameter
    Name Typ Beschreibung
    exp1 Zeichenfolge Vergleichsausdruck links. Kann eine Konstante, ein Verweis auf ein Feld oder eine andere Glide-Funktion sein.
    Op Zeichenfolge Vergleichsoperator, in Anführungszeichen eingeschlossen.

    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 zum Fortsetzen der Erstellung der Anweisung.

    Das folgende Beispiel zeigt, wie eine einfache Fallanweisung definiert und erstellt wird. In diesem Fall wird die MethodewhenCompare () 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_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 - wenn Equal(String exp1, String exp2)

    Ähnlich wie wenn Sie Vergleich () sind, ist wenn Equal () eine praktische Methode, um die Gleichheit zu überprüfen. Entspricht wennVergleich(linkerAusdruck, '=', rechterAusdruck).

    Tabelle : 12. Parameter
    Name Typ Beschreibung
    exp1 Zeichenfolge Vergleichsausdruck links. 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 zum Fortsetzen der Erstellung der Anweisung.

    Das folgende Beispiel zeigt, wie eine einfache Fallanweisung definiert und erstellt wird. In diesem Fall wird die wennEqual()- Methode 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_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