GlideDBFunctionCaseBuilder : global
L’API GlideDBCaseStatementBuilder vous permet de créer des instructions SQL CASE et de renvoyer des valeurs en fonction d’une série de conditions.
Vous pouvez utiliser cette API 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 : administrateur, function_field_admin.
GlideDBFunctionCaseBuilder : GlideDBFunctionCaseBuilder()
Instancie un objet GlideDBFunctionCaseBuilder.
| Nom | Type | Description |
|---|---|---|
| Aucun |
Cet exemple instancie un objet GlideDBFunctionCaseBuilder.
var caseBuilder = new GlideDBFunctionCaseBuilder();
GlideDBFunctionCaseBuilder : build()
Conclut la liste des conditions et génère l’instruction CASE finale.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| chaîne | Énoncé de ticket rempli. |
L’exemple suivant montre comment définir et construire une instruction de cas simple. En fonction de la valeur numérique du champ d’impact, il générera l’une des quatre chaînes différentes.
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)]);
}
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 : autrement(exp. de chaîne)
Facultatif. Après au moins une paire d’appels à when et 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 à extraire. 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 cas 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_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)]);
}
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 - then(String exp)
À la suite de 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 à extraire. 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 cas simple. Dans ce cas, les expressions then() montrent comment vous pouvez générer 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_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)]);
}
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 : quand(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 |
|---|---|---|
| Fonction | Chaîne | Fonction Glide qui génère un résultat à valeur booléenne lors de l’évaluation. Valeurs possibles :
|
| Type | Description |
|---|---|
| glideDBFunctionCaseBuilder | L’objet pour continuer à construire l’instruction. |
L’exemple suivant montre comment définir et construire une instruction de cas simple. Dans ce cas, la méthode when() est utilisée pour spécifier des expressions de comparaison plus complexes. Si l’expression est évaluée comme vraie, 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_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)]);
}
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. Il peut s’agir d’une constante, d’une référence à un champ ou d’une autre fonction Glide. |
| Op | Chaîne | Opérateur de comparaison, entouré de guillemets. Valeurs valides :
|
| exp2 | Chaîne | Expression de comparaison à droite. 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 Function Builder pour continuer à construire l’instruction. |
L’exemple suivant montre comment définir et construire une instruction de cas 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 s’ils 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_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)]);
}
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 à droite. 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 Function Builder pour continuer à construire l’instruction. |
L’exemple suivant montre comment définir et construire une instruction de cas 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 s’ils 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_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)]);
}
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