---
sourceDocument: Yokohama Erstellen oder ändern Sie Anwendungen
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/de-DE/yokohama/application-development

 Release :

    - yokohama

ft:locale :

    - de-DE

ft:publication_title :

    - Yokohama Erstellen oder ändern Sie Anwendungen

ft:clusterId :

    - cadev

bundleId :

    - cadev

workflow :

    - Creator


---

Schrittausführungsskripte
=========================

Schrittausführungsskripte {#ariaid-title1}
==========================================

* Freigeben Version: Yokohama
* 
* Aktualisiert 30. Januar 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 Minuten Lesedauer

In einem Schritt-Konfigurationsdatensatz bestimmt das Feld für das Schrittausführungsskript, was ein Schritt mit dieser Konfiguration bei seiner Ausführung bewirkt.

Schritteingaben
---------------

Die Eingabevariablen für einen Schritt werden von der zugehörigen Liste der Eingaben im Schritt-Konfigurationsdatensatz bestimmt. Der Parameter inputs für `executeScript()` gewährt dem Skript Zugriff auf diese Variablen. Wenn zum Beispiel die zugehörige Eingabenliste zwei Datensätze, <var class="keyword varname">var1</var> und <var class="keyword varname">var2</var>, enthält, kann das Skript <var class="keyword varname">var1</var> mit dem Ausdruck `inputs.var1` und <var class="keyword varname">var2</var> mit `inputs.var2` referenzieren.

Schrittausgaben
---------------

Die Ausgabevariablen für einen Schritt werden von der zugehörigen Ausgabenliste im Schritt-Konfigurationsdatensatz bestimmt. Der Parameter outputs für `executeScript()` gewährt dem Skript Zugriff auf diese Variablen. Wenn zum Beispiel die zugehörige Ausgabenliste zwei Datensätze, <var class="keyword varname">out1</var> und <var class="keyword varname">out2</var>, enthält, kann das Skript <var class="keyword varname">out1</var> mit dem Ausdruck `outputs.out1` und <var class="keyword varname">out2</var> mit `outputs.out2` referenzieren.

Schrittergebnis
---------------

Der Parameter stepResult bietet Zugriff auf eine API, die steuert, ob der Schritt erfolgreich ist oder fehlschlägt. Er bestimmt auch die Meldung, die der Schritt in das Protokoll schreibt.

Die Methode `stepResult.setSuccess()` bewirkt, dass der Schritt erfolgreich ist. Die Methode `stepResult.setFailed()` bewirkt, dass der Schritt fehlschlägt.

Die Methode `stepResult.setOutputMessage()` legt die Meldung fest, die in das Protokoll geschrieben wird, wenn der Schritt erfolgreich ist oder fehlschlägt. Es ist ein Parameter erforderlich: die Zeichenfolge, die in das Protokoll geschrieben werden soll. Wenn das Skript `stepResult.setOutputMessage()` mehr als einmal aufruft, überschreibt der neueste Wertsatz jeden vorherigen Wert.  

Schrittausführungsskript „Datensatzabfrage"
-------------------------------------------


        (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));
        
       
Anwenderdefinierte geskriptete Schrittkonfigurationen {#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));
        
       
Hinweis:  
Das obige Beispiel kann auch für „Serverseitiges Skript ausführen" verwendet werden, indem `stepResult.setSuccess()`„" und `stepResult.setFailed()` durch `„true"` und `„false" zurückgegeben werden`.

