Scripts de execução da etapa
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));
stepResult.setSuccess() e. stepResult.setFailed() com retorna verdadeiro e. retorna falso .