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