GlideDBFunctionCaseBuilder – Global
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.
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| exp | 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 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.
| Name | Typ | Beschreibung |
|---|---|---|
| exp | 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 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.
| Name | Typ | Beschreibung |
|---|---|---|
| funktion | Zeichenfolge | Eine Glide-Funktion, die bei der Auswertung zu einem Ergebnis mit booleschen Werten führt. Mögliche Werte:
|
| 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.
| 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. |
| 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) .
| 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 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