Scripts de execução da etapa

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 2 min. de leitura
  • Em um registro de configuração de etapa, o campo script de execução de etapa determina o que uma etapa com esta configuração faz quando é executada.

    Entradas de etapa

    As variáveis de entrada para uma etapa são determinadas pela lista relacionada Entradas no registro de configuração da etapa. . inputsparâmetro para ExecuteScript() fornece ao script acesso a essas variáveis. Por exemplo, se a lista relacionada de entradas contiver dois registros, var1 e. var2 , o script pode fazer referência var1 com a expressão entradas.var1 e pode fazer referência var2 com entradas.var2 .

    Saídas de etapa

    As variáveis de saída para uma etapa são determinadas pela lista relacionada de saídas no registro de configuração da etapa. . outputsparâmetro para ExecuteScript() fornece ao script acesso a essas variáveis. Por exemplo, se a lista relacionada de saídas contiver dois registros, saída 1 e. saída 2 , o script pode fazer referência saída 1 com a expressão outputs.out1 e pode fazer referência saída 2 com outputs.out2 .

    Resultado da etapa

    . stepResultO parâmetro fornece acesso a uma API que controla se a etapa é aprovada ou reprovada. Ele também determina a mensagem que a etapa grava no log.

    O método stepResult.setSuccess() faz com que a etapa seja bem-sucedida. O método stepResult.setFailed() faz com que a etapa falhe.

    O método stepResult.setOutputMessage() define a mensagem para gravar no log quando a etapa for bem-sucedida ou falhar. É preciso um parâmetro: A cadeia de caracteres para gravar no log. Se o script chamar stepResult.setOutputMessage() mais de uma vez, o conjunto de valores mais recente substitui qualquer valor anterior.

    Script de execução da etapa de consulta de registro

    
        (function executeStep(inputs, outputs, stepResult) {
             if (gs.nil(inputs.table)) {
                stepResult.setOutputMessage(gs.getMessage("The '{0}' input variable was not specified",
                   'table'));
             stepResult.setFailed();
              return;
        }
        var query = new GlideRecord(inputs.table);
        query.addEncodedQuery(inputs.field_values);
        query.query();
        if (!query.next()) {
             stepResult.setOutputMessage(gs.getMessage("No records matching query:\n{0}",
                 inputs.field_values));
              stepResult.setFailed();
        } else {
             stepResult.setSuccess();
             outputs.table = inputs.table;
             outputs.first_record = query.getUniqueValue();
             stepResult.setOutputMessage(gs.getMessage("Found {0} {1} records matching query:\n{2}",
                                                      [query.getRowCount(),
                                                       inputs.table,
                                                       inputs.field_values]));
        }
        }(inputs, outputs, stepResult));
        
       

    Configurações de etapa com script personalizadas

    
        ((function executeStep(inputs, outputs, stepResult, timeout) {
    	// Waits up to the timeout for some asynchronous logic to finish
    	// This script checks for completion once a second for up to 60 seconds
    	var counter = 1;
    	// Try for up to 60 seconds
    	while (counter <= timeout) {
    		// If the asynchronous logic is finished, return "true" to pass the step
    		// isMyAsyncLogicFinished() can be replaced with any asynchronous event that needs to be tested
    		if (isMyAsyncLogicFinished()) {
    			stepResult.setOutputMessage("Success!");
    			stepResult.setSuccess();
    			return;
    		}
    		// Wait one second, and log the total number of seconds waited
    		gs.info("Waited " + counter + " seconds for asynchronous logic to finish");
    		sn_atf.AutomatedTestingFramework.waitOneSecond();
    		counter++;
    	}
    	// If this point is reached, the retry loop ran out of tries; return false to fail the step
    	stepResult.setOutputMessage("FAILURE: Timed out after waiting for " + timeout + " seconds");
    	stepResult.setFailed();
    }(inputs, outputs, stepResult, timeout));
        
       
    Nota:
    O exemplo acima também pode ser usado para Executar script do lado do servidor substituindo stepResult.setSuccess() e. stepResult.setFailed() com retorna verdadeiro e. retorna falso .