GlideDBFunctionCaseBuilder – Global
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.
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| ab | Zeichenfolge | Auszugebender Wert. Kann eine Konstante, ein Verweis auf ein Feld oder eine andere Glide-Funktion sein. |
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| ab | Zeichenfolge | Auszugebender Wert. Kann eine Konstante, ein Verweis auf ein Feld oder eine andere Glide-Funktion sein. |
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| Funktion | Zeichenfolge | Eine Glide-Funktion, die bei Auswertung ein Ergebnis mit boolean Wert ergibt. Mögliche Werte:
|
| 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.
| 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. |
| 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).
| 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. |
| 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