Schrittausführungsskripte

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 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. Die inputsParameter bis ExecuteScript() Gewährt dem Skript Zugriff auf diese Variablen. Wenn zum Beispiel die zugehörige Eingabenliste zwei Datensätze, var1 und var2, enthält, kann das Skript var1 mit dem Ausdruck inputs.var1 und var2 mit inputs.var2 referenzieren.

    Schrittausgaben

    Die Ausgabevariablen für einen Schritt werden von der zugehörigen Ausgabenliste im Schritt-Konfigurationsdatensatz bestimmt. Die outputsParameter bis ExecuteScript() Gewährt dem Skript Zugriff auf diese Variablen. Wenn zum Beispiel die zugehörige Ausgabenliste zwei Datensätze, out1 und out2, enthält, kann das Skript out1 mit dem Ausdruck outputs.out1 und out2 mit outputs.out2 referenzieren.

    Schrittergebnis

    Die stepResultDer Parameter 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

    
        ((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 das serverseitige Skript ausführen durch Ersetzen verwendet werden stepResult.setSuccess() “ Und stepResult.setFailed() Mit Gibt „wahr“ zurück Und Gibt „falsch“ zurück .