GlideDBFunctionCaseBuilder : global

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 7 minutes de lecture
  • 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.

    Tableau 1. Paramètres
    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.

    Tableau 2. Paramètres
    Nom Type Description
    Aucun
    Tableau 3. Renvoie
    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.

    Tableau 4. Paramètres
    Nom Type Description
    Exp Chaîne Valeur à la sortie. Peut être une constante, une référence à un champ ou une autre fonction Glide.
    Tableau 5. Renvoie
    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.

    Tableau 6. Paramètres
    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.
    Tableau 7. Renvoie
    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.

    Tableau 8. Paramètres
    Nom Type Description
    Func Chaîne Fonction Glide qui génère un résultat à valeur booléenne lors de l’évaluation. Valeurs possibles :
    • glidefonction :compare
    • glidefunction :et
    • glide :ou
    Tableau 9. Renvoie
    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.

    Tableau 10. Paramètres
    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.
    Tableau 11. Renvoie
    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).

    Tableau 12. Paramètres
    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.
    Tableau 13. Renvoie
    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