Variables du catalogue de services pouvant contenir des scripts
Vous pouvez utiliser un scripting pour référencer n’importe quelle variable d’élément de demande d’une table dans un environnement inclus dans le champ d’application et hors du champ d’application.
current.variables.<variable_name>Lorsqu’une variable fait partie d’un jeu de variables, vous pouvez la référencer en tant que 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 dispose de rôles de lecture, d’écriture et de création. Si des rôles sont fournis pour un jeu de variables, ils s’appliquent 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 de variables nom-valeur associée à 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 de plusieurs lignes) dans un enregistrement de tâche
now_GR.variables.getElements(true);
API pour GlideElementVariable
- now_GR.variables.<var_name>.isMultiRow() : détermine si GlideElementVariable est un jeu de variables de plusieurs lignes ou une variable.
- now_GR.variables.<var_name>.getQuestion() : récupère l’objet 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 de plusieurs lignes, le titre du jeu de variables est renvoyé.
- now_GR.variables.<var_name>.canRead() : détermine si l’utilisateur peut afficher une variable ou un jeu de variables de plusieurs lignes.
- now_GR.variables.<var_name>.canWrite() : détermine si l’utilisateur peut modifier une variable ou un jeu de variables de plusieurs lignes.
- now_GR.variables.<var_name>.getDecryptedValue() : obtenez la valeur déchiffrée d’une variable masquée. Applicable uniquement pour une variable Masqué.
- now_GR.variables.<var_name>.getRows() : récupère la liste des objets de ligne pour un jeu de variables de plusieurs lignes. Applicable uniquement pour un jeu de variables de plusieurs lignes (isMultiRow() est vrai).
- now_GR.variables.<var_name>.getRowCount() : obtenez le nombre de lignes pour un jeu de variables de plusieurs lignes. Applicable uniquement pour un jeu de variables de plusieurs lignes (isMultiRow() est vrai).
Exemple pour accéder aux variables de GlideRecord pour la table Tâche
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 Tâche
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
| Opération | Utilisation |
|---|---|
| Opérations de table | |
| Renvoyer la valeur du tableau JSON sous la forme d’une chaîne | |
| Définir la valeur d’un jeu de variables de plusieurs lignes |
Remarque : Un tableau de paires ordonnées (clé, valeur) est également applicable comme entrée. |
| Obtenir la valeur de la colonne, var1, d’un jeu de variables de plusieurs lignes | |
| Définir la valeur d’un jeu de variables, var1 |
Remarque : Un tableau de paires ordonnées (clé, valeur) est également applicable comme entrée. |
| Opérations de ligne | |
| Obtenir le nombre de lignes actuel | |
| Renvoie la ligne spécifiée par la variable « i » - getRow(<int> i) | |
| Obtenir la valeur de cellule d’une colonne de question mappée à <var_name> | |
| Définir la valeur de cellule pour une colonne de question mappée à <var_name> | |
| Définir la valeur de cellule pour une colonne de question mappée à <var_name> | |
| Ajouter une ligne vide à la fin de la table et renvoyer un objet pouvant contenir des scripts | |
| Supprimer une ligne | |
Remarques et limites
- Colonne unique de table_Var
- now_GR.variables.table_var.var1
- now_GR.variables.table_var.var1 = <val>
- Vous ne pouvez définir une variable que dans une règle métier Before . Les variables définies dans une règle After ne sont pas écrites dans la base de données.
- Rien n’est en place pour empêcher la collision d’un espace 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.
- Les variables de 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 au format GMT, mais traduits dans le fuseau horaire local de l’utilisateur et dans le format d’affichage.