---
sourceDocument: Yokohama Créer ou modifier des applications
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/yokohama/application-development

 Release :

    - yokohama

ft:locale :

    - fr-FR

ft:publication_title :

    - Yokohama Créer ou modifier des applications

ft:clusterId :

    - cadev

bundleId :

    - cadev

workflow :

    - Creator


---

Scripts d'exécution d'étapes
============================

Scripts d'exécution d'étapes {#ariaid-title1}
=============================================

* Rversion finale: Yokohama
* 
* Mis à jour 30 janv. 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 minutes de lecture

Dans un enregistrement de configuration d'étape, le champ de script d'exécution d'étape détermine ce qu'effectue une étape avec cette configuration lorsqu'elle s'exécute.

Entrées des étapes
------------------

Les variables d'entrée d'une étape sont déterminées par la liste connexe d'entrées dans l'enregistrement de configuration de l'étape. Le inputs paramètre `executeScript()` donne au script l'accès à ces variables. Par exemple, si la liste connexe des entrées contient deux enregistrements, <var class="keyword varname">var1</var> et <var class="keyword varname">var2</var>, le script peut référencer <var class="keyword varname">var1</var> avec l'expression `inputs.var1` et peut référencer <var class="keyword varname">var2</var> avec `inputs.var2`.

Sorties des étapes
------------------

Les variables de sortie d'une étape sont déterminées par la liste connexe Sorties dans l'enregistrement de configuration de l'étape. Le outputs paramètre `executeScript()` donne au script l'accès à ces variables. Par exemple, si la liste connexe des sorties contient deux enregistrements, <var class="keyword varname">out1</var> et <var class="keyword varname">out2</var>, le script peut référencer <var class="keyword varname">out1</var> avec l'expression `outputs.out1` et <var class="keyword varname">out2</var> avec `outputs.out2`.

Résultat de l'étape
-------------------

Le stepResult paramètre permet d'accéder à une API qui contrôle la réussite ou l'échec de l'étape. Il détermine également le message que l'étape écrit dans le journal.

La méthode `stepResult.setSuccess()` provoque la réussite de l'étape. La méthode `stepResult.setFailed()` entraîne l'échec de l'étape.

La méthode `stepResult.setOutputMessage()` définit le message à écrire dans le journal lorsque l'étape réussit ou échoue. Il faut un paramètre : la chaîne à écrire dans le journal. Si le script appelle `stepResult.setOutputMessage()` plusieurs fois, l'ensemble de valeurs le plus récent remplace toute valeur précédente.  

Script d'exécution de l'étape Requête d'enregistrement
------------------------------------------------------


        (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));
        
       
Configurations d'étapes scriptées personnalisées {#atf-config-script__example_rnc_ldn_qpb}
------------------------------------------------------------------------------------------


        ((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));
        
       
Remarque :  
L'exemple ci-dessus peut également être utilisé pour Exécuter un script côté serveur en remplaçant `stepResult.setSuccess()` et `stepResult.setFailed()` par `return true` et `return false`.

