Variáveis do Catálogo de serviços com script
Você pode usar script para fazer referência a qualquer variável de item da solicitação de uma tabela em ambiente com escopo e sem escopo.
Segue um exemplo de referência de variável.
current.variables.<variable_name>Onde atual se refere ao registro atual <variable_name> é o nome da sua variável.
Nota:
Para fazer referência a uma variável do JavaScript, ela deve ter um nome.
Quando uma variável faz parte de um conjunto de variáveis, você pode fazer referência a ela como current.variables.<variable_name> ou current.variables.<variable_set_name>.<variable_name>.
O conjunto de variáveis também é um cidadão de primeira classe no Catálogo de serviços. Assim como as variáveis, um conjunto de variáveis tem funções de leitura, gravação e criação. Se funções forem fornecidas para um conjunto de variáveis, as funções serão aplicáveis às variáveis no conjunto. As funções de uma variável individual são substituídas pelas funções do conjunto de variáveis.
Imprimir uma variável
var original = current.variables.original_number;
gs.print(original);
Definir uma variável
current.variables.name = "Auto-Generated:" + current.variables.asset_tag;
Criar um item de inventário com campos definidos a partir de variáveis
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(); } }
Obter GlideElementVariable de variáveis e conjuntos de variáveis associados a um GlideRecord
now_GR.variables
Obter o par de nome e valor de variáveis associadas a um GlideRecord
now_GR.variables.getVariableValue();
Obter uma lista de GlideElementVariable para variáveis em um registro de tarefa
now_GR.variables.getElements();
Obter uma lista de GlideElementVariable para variáveis (inclusive conjunto de variáveis com várias linhas) em um registro de tarefa
now_GR.variables.getElements(true);
Nota:
O método getElements() retorna todas as variáveis presentes no registro de tarefa fornecido, exceto as variáveis do formatador, como rótulo, pausa, término do contêiner, divisão do contêiner e assim por diante.
APIs para GlideElementVariable
- now_GR.variables.<var_name>.isMultiRow(): obtenha se a GlideElementVariable for um conjunto de variáveis com várias linhas ou uma variável.
- now_GR.variables.<var_name>.getQuestion(): obtenha o objeto Question para uma variável. Aplicável somente para uma variável (isMultiRow() é falso) e não para um conjunto de variáveis com várias linhas.
- now_GR.variables.<var_name>.getLabel(): obtenha o rótulo da GlideElementVariable. Para uma variável, o rótulo da variável é retornado. Para o conjunto de variáveis com várias linhas, o título do conjunto de variáveis é retornado.
- now_GR.variables.<var_name>.canRead(): obtenha se o usuário puder exibir uma variável ou um conjunto de variáveis com várias linhas.
- now_GR.variables.<var_name>.canWrite(): obtenha se o usuário puder editar uma variável ou um conjunto de variáveis com várias linhas.
- now_GR.variables.<var_name>.getDecryptedValue(): obtenha o valor descriptografado de uma variável mascarada. Aplicável somente para uma variável mascarada.
- now_GR.variables.<var_name>.getRows(): obtenha a lista de objetos de linha para um conjunto de variáveis com várias linhas. Aplicável somente para um conjunto de variáveis com várias linhas (isMultiRow() é verdadeiro).
- now_GR.variables.<var_name>.getRowCount(): obtenha o número de linhas para conjunto de variáveis com várias linhas. Aplicável somente para um conjunto de variáveis com várias linhas (isMultiRow() é verdadeiro).
Exemplo para acessar variáveis de GlideRecord para a Tabela de tarefas
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())
}
}
Exemplo para acessar um conjunto de variáveis com várias linhas de GlideRecord para a Tabela de tarefas
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())
}
}
}
}
Conjunto de variáveis com várias linhas
| Operação | Uso |
|---|---|
| Operações de tabela | |
| Retornar valor da matriz JSON como cadeia de caracteres | |
| Valor do conjunto de variáveis com várias linhas |
Nota: Uma matriz de pares ordenados (chave, valor) também é aplicável como entrada. |
| Obter valor de coluna, var1, de um conjunto de variáveis com várias linhas | |
| Definir valor de um conjunto de variáveis, var1 |
Nota: Uma matriz de pares ordenados (chave, valor) também é aplicável como entrada. |
| Operações de linha | |
| Obter a contagem de linhas atual | |
| Retorna a linha especificada pela variável "i" - getRow(<int> i) | |
| Obter o valor da célula para uma coluna de pergunta mapeada para <var_name> | |
| Definir o valor da célula para uma coluna de pergunta mapeada para <var_name> | |
| Definir o valor da célula para uma coluna de pergunta mapeada para <var_name> | |
| Adicionar uma linha vazia no final da tabela e retornar um objeto programável | |
| Excluir uma linha | |
Observações e limitações
- //Coluna única de table_Var
- now_GR.variables.table_var.var1
- now_GR.variables.table_var.var1 = <val>
- Você só pode definir uma variável em uma regra de negócio anterior. Variáveis definidas em uma regra posterior não são gravadas no banco de dados.
- Não há nada em vigor para impedir a colisão de namespace com variáveis. Criar duas variáveis chamadas computer_speed resultaria na exibição de apenas uma delas; o segundo substituiria o primeiro.
- As variáveis de data/hora usam a mesma formatação de fuso horário e regras de armazenamento de todas as outras datas no sistema. Elas são armazenadas internamente no GMT, mas traduzidas no fuso horário local do usuário e no formato para exibição.