Variables du catalogue de services pouvant contenir des scripts

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 4 minutes de lecture
  • Vous pouvez utiliser un scripting pour référencer n’importe quelle variable d’élément de demande à partir d’une table dans un environnement inclus dans le champ d’application et hors du champ d’application.

    Voici un exemple de variable de référence.
    current.variables.<variable_name>
    Où actuel fait référence à l’enregistrement actuel et <variable_name> est le nom de votre variable.
    Remarque :
    Pour référencer une variable à partir de JavaScript, elle doit avoir un nom.

    Lorsqu’une variable fait partie d’un jeu de variables, vous pouvez l’appeler current.variables.<variable_name> ou current.variables.<variable_set_name>.<variable_name>.

    Le jeu de variables est également un citoyen de première classe dans Service Catalog. Comme les variables, un jeu de variables possède des rôles de lecture, d’écriture et de création. Si les rôles sont fournis pour un jeu de variables, les rôles sont applicables aux variables du jeu. Les rôles d’une variable individuelle sont remplacés par les rôles du jeu de variables.

    Imprimer une variable

    var original = current.variables.original_number;
    gs.print(original);
    

    Définir une variable

    current.variables.name = "Auto-Generated:" + current.variables.asset_tag;

    Créer un élément d’inventaire avec des champs définis à partir de variables

    doCreation(); 
    
    function doCreation ( ) { 
    var create = current.variables.create_item; 
    if (create == 'true') { // we want to create an asset 
      var computer = new GlideRecord('cmdb_ci_computer');
      computer.initialize();
      computer.asset_tag = current.variables.asset_tag;
      computer.serial_number = current.variables.serial_number;
      computer.name = current.variables.name;
      computer.manufacturer = current.variables.company;
      computer.insert(); } }

    Obtenir GlideElementVariable des variables et des jeux de variables associés à un GlideRecord

    now_GR.variables

    Obtenir la paire nom-valeur de variables associées à un GlideRecord

    now_GR.variables.getVariableValue();

    Obtenir une liste de GlideElementVariable pour les variables dans un enregistrement de tâche

    now_GR.variables.getElements();

    Obtenir une liste de GlideElementVariable pour les variables (y compris le jeu de variables à plusieurs lignes) dans un enregistrement de tâche

    now_GR.variables.getElements(true);
    Remarque :
    La méthode getElements() renvoie toutes les variables présentes sur l’enregistrement de tâche donné, à l’exception des variables du formateur telles que l’étiquette, la pause, la fin du conteneur, la division du conteneur, etc.

    API pour GlideElementVariable

    • now_GR.variables.<var_name>.isMultiRow() : détermine si GlideElementVariable est un jeu de variables à plusieurs lignes ou une variable.
    • now_GR.variables.<var_name>.getQuestion() : recherche l’objet de question pour une variable. Applicable uniquement pour une variable (isMultiRow() est faux) et non pour un jeu de variables de plusieurs lignes.
    • now_GR.variables.<var_name>.getLabel() : récupère l’étiquette de la variable GlideElementVariable. Pour une variable, l’étiquette de la variable est renvoyée. Pour un jeu de variables à plusieurs lignes, le titre du jeu de variables est renvoyé.
    • now_GR.variables.<var_name>.canRead() : indique si l’utilisateur peut afficher un jeu de variables à variables ou à plusieurs lignes.
    • now_GR.variables.<var_name>.canWrite() : indique si l’utilisateur peut modifier une variable ou un jeu de variables à plusieurs lignes.
    • now_GR.variables.<var_name>.getDecryptedValue() : récupère la valeur déchiffrée d’une variable masquée. Applicable uniquement pour une variable masquée.
    • now_GR.variables.<var_name>.getRows() : obtient la liste des objets de ligne pour un jeu de variables à plusieurs lignes. Applicable uniquement pour un jeu de variables de plusieurs lignes (isMultiRow() est vrai).
    • now_GR.variables.<var_name>.getRowCount() : obtenir le nombre de lignes pour un jeu de variables à plusieurs lignes. Applicable uniquement pour un jeu de variables de plusieurs lignes (isMultiRow() est vrai).

    Exemple d’accès aux variables de GlideRecord pour la table de tâches

    var now_GR = new GlideRecord('sc_req_item'); 
    if (now_GR.get('635a1f5387320300e0ef0cf888cb0b73')) { 
        var variables = now_GR.variables.getElements(); 
        for (var i=0;i<variables.length;i++) { 
            var question = variables[i].getQuestion(); 
            gs.log(question.getLabel() + ":" + question.getValue()) 
        } 
    }

    Exemple d’accès à un jeu de variables de plusieurs lignes de GlideRecord pour la table de tâches

    var now_GR = new GlideRecord('sc_req_item');
    now_GR.get('02c38dcd87013300e0ef0cf888cb0bb2');
    
    var vars = now_GR.variables.getElements(true);
    
    for (var i=0; i<vars.length; i++) {
        var now_V = vars[i];
        if (now_V.isMultiRow()) {
            var rows = now_V.getRows();
            for (var j=0; j<now_V.getRowCount(); j++) {
                var row = rows[j];
                var cells = row.getCells();
                for (var k=0; k<cells.length; k++) {
                    var cell = cells[k];
                    gs.info(cell.getLabel() + ":" + cell.getCellDisplayValue())
                }
            }
        }
    }

    Jeu de variables de plusieurs lignes

    Tableau 1. Jeu de variables de plusieurs lignes
    Opération Utilisation
    Opérations de table
    Renvoyer la valeur du tableau JSON sous forme de chaîne
    now_GR.variables.table_var
    Définir la valeur d’un jeu de variables de plusieurs lignes
    now_GR.variables.table_var = <val>
    Remarque :
    Un tableau de paires ordonnées (clé, valeur) est également applicable en tant qu’entrée.
    Obtenir la valeur de la colonne, var1, d’un jeu de variables de plusieurs lignes
    now_GR.variables.table_var.var1
    Définir la valeur d’un jeu de variables, var1
    now_GR.variables.table_var.var1 = <val>
    Remarque :
    Un tableau de paires ordonnées (clé, valeur) est également applicable en tant qu’entrée.
    Opérations de ligne
    Obtenir le nombre de lignes actuel
    now_GR.variables.table_var.getRowCount()
    Renvoie la ligne spécifiée par la variable « i » - getRow(<int> i)
    var row = now_GR.variables.table_var.getRow(<int> i);
    Obtenir la valeur de cellule d’une colonne de question mappée à <var_name>
    row.<var_name>
    Définir la valeur de cellule d’une colonne de question mappée à <var_name>
    row.setCellValue('<var_name>',value)
    Définir la valeur de cellule d’une colonne de question mappée à <var_name>
    row.<var_name> = value
    Ajouter une ligne vide à la fin de la table et renvoyer un objet pouvant contenir des scripts
    var row = now_GR.variables.table_var.addRow()
    Supprimer une ligne
    row.deleteRow()

    Remarques et limitations

    • Colonne unique de table_Var
    • now_GR.variables.var.table_var1
    • now_GR.variables.table_var.var1 = <val>
    1. Vous ne pouvez définir une variable que dans une règle métier avant . Les variables définies dans une règle after ne sont pas écrites dans la base de données.
    2. Rien n’est en place pour empêcher les collisions d’espaces de noms avec des variables. La création de deux variables nommées computer_speed entraînerait l’affichage d’une seule d’entre elles ; le second écraserait le premier.
    3. Les variables date/heure utilisent les mêmes règles de formatage et de stockage du fuseau horaire que toutes les autres dates du système. Ils sont stockés en interne dans GMT, mais traduits dans le fuseau horaire local de l’utilisateur et dans le format d’affichage.