GlideScopedEvaluator - Com escopo

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 2 min. de leitura
  • . GlideScopedEvaluator A API permite avaliar scripts em um campo GlideRecord a partir de scripts de servidor com escopo e globais.

    Esta API avalia registros com campos de script definidos. O escopo do script é definido pelo escopo do registro.

    GlideScopedEvaluator - GlideScopedEvaluator()

    Instancia um objeto GlideScopedEvaluator.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum

    GlideScopedEvaluator - evaluateScript(GlideRecord grObj, cadeia de caracteres scriptField, variáveis de objeto)

    Avalia um script que reside em um campo GlideRecord.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    Obj GlideRecord GlideRecord que contém uma expressão de script.
    ScriptField Cadeia de caracteres Opcional. Nome do campo que contém a expressão de script.
    variáveis Objeto Opcional. Mapa de variáveis com pares nome-valor. Essas variáveis estão disponíveis para o script durante a execução deste método.
    Tabela 3. Retornos
    Tipo Descrição
    Objeto Resultado da execução do script.
    // Setting up a record that contains the script to be executed.
    var now_GR = new GlideRecord('u_global_table'); 
    now_GR.u_short_description = 'Calculate Addition';  
    now_GR.u_test_script = "result = x + y"; 
    now_GR.insert(); 
     
    var evaluator = new GlideScopedEvaluator();
    evaluator.putVariable('x', 100);
    evaluator.putVariable('y', 200);
    gs.info(evaluator.evaluateScript(now_GR, 'u_test_script'));

    Saída:

    300

    GlideScopedEvaluator - getVariable (nome da cadeia de caracteres)

    Retorna uma variável especificada de um objeto GlideScopedEvaluator.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome da variável a ser retornada.
    Tabela 5. Retornos
    Tipo Descrição
    Objeto Valor da variável especificada.

    O exemplo a seguir mostra como chamar GetVariable() método para verificar o valor de resposta variável.

    (function executeRule(current, previous /*null when async*/) {
      var grAG = current.assignment_group.getRefRecord(); // Get the GlideRecord of the assignment group
      if (grAG.isValidRecord()) {
        var ge = new GlideScopedEvaluator();
        ge.putVariable("current", current); // Pass through the "current" variable as "current"
        ge.putVariable("group", grAG); // Pass through the "grAG" variable as "group"
        ge.putVariable("answer", true); // default "answer" to TRUE
        ge.evaluateScript(grAG, "u_assignment_condition"); // Run the script
    
        // Abort the transaction if the "answer" variable was set to FALSE explicitly (undefined doesn't count)
        if (ge.getVariable("answer") === false) { 
          gs.addErrorMessage("Assignment rule did not pass");
          current.setAbortAction(true);
        }
      }
    })(current, previous);

    GlideScopedEvaluator - putVariable(nome da cadeia de caracteres, valor do objeto)

    Define uma variável no objeto GlideScopedEvaluator. Essas variáveis estão disponíveis para o script executado por este objeto GlideScopedEvaluator.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome da variável.
    valor Objeto Valor da variável.
    Tabela 7. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo a seguir mostra como chamar PutVariable() método para definir resposta variável como verdadeira.

    (function executeRule(current, previous /*null when async*/) {
      var grAG = current.assignment_group.getRefRecord(); // Get the GlideRecord of the assignment group
      if (grAG.isValidRecord()) {
        var ge = new GlideScopedEvaluator();
        ge.putVariable("current", current); // Pass through the "current" variable as "current"
        ge.putVariable("group", grAG); // Pass through the "grAG" variable as "group"
        ge.putVariable("answer", true); // Set default "answer" to TRUE
        ge.evaluateScript(grAG, "u_assignment_condition"); // Run the script
    
        // Abort the transaction if the "answer" variable was set to FALSE explicitly (undefined doesn't count)
        if (ge.getVariable("answer") === false) { 
          gs.addErrorMessage("Assignment rule did not pass");
          current.setAbortAction(true);
        }
      }
    })(current, previous);