GlideDBFunctionCaseBuilder : global
GlideDBCaseStatementBuilder vous permet de générer des instructions SQL CASE et des valeurs de retour en fonction d’une série de conditions.
Cette API peut être utilisée dans le cadre de la définition de l’API GlideElement : global ou lors de l’interrogation d’une table. Pour créer une instruction CASE, commencez par instancier l’objet GlideDBFunctionCaseBuilder à l’aide de son constructeur, GlideDBFunctionCaseBuilder(). Ensuite, définissez un ou plusieurs cas à l’aide d’une série d’appels when() et then() suivis d’un seul appel optionnel otherwise(). Enfin, appelez la méthode build() pour finaliser le générateur et produire l’instruction de ticket de fonction de base de données terminée. Cette instruction peut ensuite être utilisée directement ou dans le cadre d’autres définitions de fonctions Glide.
Rôles requis : admin, function_field_admin.
GlideDBFunctionCaseBuilder - GlideDBFunctionCaseBuilder()
Instancie un objet GlideDBFunctionCaseBuilder.
| Nom | Type | Description |
|---|---|---|
| Néant |
Cet exemple instancie un objet GlideDBFunctionCaseBuilder.
var caseBuilder = new GlideDBFunctionCaseBuilder();
GlideDBFunctionCaseBuilder : build()
Termine la liste des conditions et crée l’instruction CASE finale.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| chaîne | Déclaration de ticket terminée. |
L’exemple suivant montre comment définir et construire une instruction de ticket simple. En fonction de la valeur numérique du champ d’impact, l’une des quatre chaînes différentes est générée.
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)]);
}
Sortie :
*** 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)
Après n’importe quelle méthode when(),then() vous permet de spécifier une valeur à afficher si l’expression when() est satisfaite.
| Nom | Type | Description |
|---|---|---|
| Exp | Chaîne | Valeur à la sortie. Peut être une constante, une référence à un champ ou une autre fonction Glide. |
| Type | Description |
|---|---|
| Générateur de cas GlideDBFunctionCaseBuilder | L’objet Fluent Builder pour continuer à construire l’instruction. |
L’exemple suivant montre comment définir et construire une instruction de ticket simple. Dans ce cas, les expressions then() montrent comment vous pouvez afficher non seulement des chaînes, mais aussi les résultats d’autres fonctions glide telles que length(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 = 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)]);
}
Sortie :
*** 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 - otherwise(String exp)
Facultatif. Après au moins une paire d’appels à when and then, l’appel otherwise() vous permet de spécifier une valeur à afficher si aucune des expressions when n’est satisfaite.
| Nom | Type | Description |
|---|---|---|
| Exp | Chaîne | Valeur à la sortie. Il peut s’agir d’une constante, d’une référence à un champ ou d’une autre fonction Glide. |
| Type | Description |
|---|---|
| Générateur de cas GlideDBFunctionCaseBuilder | L’objet Fluent Builder pour continuer à construire l’instruction. |
L’exemple suivant montre comment définir et construire une instruction de ticket simple.
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)]);
}
Sortie :
*** 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)
La plus polyvalente des expressions 'when' prises en charge, la méthode when() vous permet de fournir n’importe quelle fonction Glide à valeur booléenne comme condition à satisfaire.
| Nom | Type | Description |
|---|---|---|
| Func | Chaîne | Fonction Glide qui génère un résultat à valeur booléenne lors de l’évaluation. Valeurs possibles :
|
| Type | Description |
|---|---|
| glideDBFunctionCaseBuilder | Objet permettant de poursuivre la création de l’instruction. |
L’exemple suivant montre comment définir et construire une instruction de ticket simple. Dans ce cas, la méthode when() est utilisée pour spécifier des expressions de comparaison plus complexes. Si l’expression est définie sur true, la chaîne correspondante est renvoyée.
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)]);
}
Sortie :
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)
Commence une condition de ticket de comparaison.
| Nom | Type | Description |
|---|---|---|
| exp1 | Chaîne | Expression de comparaison à gauche. Peut être une constante, une référence à un champ ou une autre fonction Glide. |
| Op | Chaîne | Un opérateur de comparaison, entouré de guillemets. Doit être l’un des suivants :
|
| exp2 | Chaîne | Expression de comparaison correcte. Peut être une constante, une référence à un champ ou une autre fonction Glide. |
| Type | Description |
|---|---|
| Générateur de cas GlideDBFunctionCaseBuilder | Objet du générateur de fonctions permettant de poursuivre la création de l’instruction. |
L’exemple suivant montre comment définir et construire une instruction de ticket simple. Dans ce cas, la méthode whenCompare() est utilisée pour comparer la valeur du champ d’impact à un nombre et générer une chaîne spécifiée si elles correspondent.
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)]);
}
Sortie :
*** 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)
Semblable à whenCompare(),whenEqual() est une méthode pratique pour vérifier l’égalité. Il est équivalent à whenCompare(leftExpression, '=', rightExpression).
| Nom | Type | Description |
|---|---|---|
| exp1 | Chaîne | Expression de comparaison à gauche. Il peut s’agir d’une constante, d’une référence à un champ ou d’une autre fonction Glide. |
| exp2 | Chaîne | Expression de comparaison correcte. Il peut s’agir d’une constante, d’une référence à un champ ou d’une autre fonction Glide. |
| Type | Description |
|---|---|
| Générateur de cas GlideDBFunctionCaseBuilder | Objet du générateur de fonctions permettant de poursuivre la création de l’instruction. |
L’exemple suivant montre comment définir et construire une instruction de ticket simple. Dans ce cas, la méthode whenEqual() est utilisée pour comparer la valeur du champ d’impact à un nombre et générer une chaîne spécifiée si elles correspondent.
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)]);
}
Sortie :
*** 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