GlideScopedEvaluator - com escopo

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 2 min. de leitura
  • A API GlideScopedEvaluator permite que você avalie scripts em um campo GlideRecord 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 - assessmentScript(GlideRecord grObj, String scriptField, Variáveis de objeto)

    Avalia um script que reside em um campo GlideRecord.

    Tabela 1. 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 do script.
    variáveis Objeto Opcional. Mapa de variáveis com pares de nome-valor. Essas variáveis estão disponíveis para o script durante a execução deste método.
    Tabela 2. Retorna
    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);
    evaluator.evaluateScript(now_GR, 'u_test_script', null);
    gs.info(evaluator.getVariable('result'));

    Saída:

    300

    GlideScopedEvaluator - getVariable(cadeia de caracteres name)

    Retorna uma variável especificada de um objeto GlideScopedEvaluator.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome da variável a retornar.
    Tabela 4. Retorna
    Tipo Descrição
    Objeto Valor da variável especificada.

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

    (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 - GlideScopedEvaluator()

    Instancia um objeto GlideScopedEvaluator.

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

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

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

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

    O exemplo a seguir mostra como chamar o método putVariable() para definir a variável de resposta 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);