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 ou lors de l’interrogation GlideElement : global 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 facultatif otherwise( ). Enfin, appelez la méthode build() pour finaliser le générateur et produire l’instruction de cas 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 fonction 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 construit l’instruction CASE finale.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| chaîne | La déclaration de ticket terminée. |
L’exemple suivant montre comment définir et construire un énoncé de ticket simple. Selon la valeur numérique du champ d’impact, il produira 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érience de chaîne)
Facultatif. Après au moins une paire d’appels à when and then, l’appel otherwise() vous permet de spécifier une valeur à sortir si aucune des expressions when n’est satisfaite.
| Nom | Type | Description |
|---|---|---|
| exp | Chaîne | Valeur à extraire. Peut être une constante, une référence à un champ ou une autre fonction Glide. |
| Type | Description |
|---|---|
| GlideDBFunctionCaseBuilder | L’objet Fluent Builder pour continuer à générer l’instruction. |
L’exemple suivant montre comment définir et construire un énoncé 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_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 : alors (exp. chaîne)
En suivant n’importe quelle méthode when(),then() vous permet de spécifier une valeur à sortir si l’expression when() est satisfaite.
| Nom | Type | Description |
|---|---|---|
| exp | Chaîne | Valeur à extraire. Peut être une constante, une référence à un champ ou une autre fonction Glide. |
| Type | Description |
|---|---|
| GlideDBFunctionCaseBuilder | L’objet Fluent Builder pour continuer à générer l’instruction. |
L’exemple suivant montre comment définir et construire un énoncé de ticket 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 : when(fonction chaîne)
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 permettant de continuer à générer l’instruction. |
L’exemple suivant montre comment définir et construire un énoncé 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 é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. Peut être une constante, une référence à un champ ou une autre fonction Glide. |
| Op | Chaîne | Opérateur de comparaison, entouré de guillemets. Valeurs valides :
|
| exp2 | Chaîne | Expression de comparaison droite. Peut être une constante, une référence à un champ ou une autre fonction Glide. |
| Type | Description |
|---|---|
| GlideDBFunctionCaseBuilder | Objet du générateur de fonctions pour continuer à générer l’instruction. |
L’exemple suivant montre comment définir et construire un énoncé 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 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. Peut être une constante, une référence à un champ ou une autre fonction Glide. |
| exp2 | Chaîne | Expression de comparaison droite. Peut être une constante, une référence à un champ ou une autre fonction Glide. |
| Type | Description |
|---|---|
| GlideDBFunctionCaseBuilder | Objet du générateur de fonctions pour continuer à générer l’instruction. |
L’exemple suivant montre comment définir et construire un énoncé 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 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