---
sourceDocument: 호주 애플리케이션 빌드 또는 수정
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/application-development

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 애플리케이션 빌드 또는 수정

ft:clusterId :

    - cadev

bundleId :

    - cadev

workflow :

    - Development, Data, and Analytics


---

# 단계 실행 스크립트

# 단계 실행 스크립트 {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 4분

단계 구성 기록에서 단계 실행 스크립트 필드는 이 구성으로 단계가 실행될 때 수행하는 작업을 결정합니다.

## 단계 입력

단계에 대한 입력 변수는 단계 구성 기록의 입력 관련 목록에 의해 결정됩니다. `executeScript()` 매개변수는 inputs 스크립트에 이러한 변수에 대한 액세스 권한을 부여합니다. 예를 들어 입력 관련 목록에 <var class="keyword varname">var1</var>과 <var class="keyword varname">var2</var>라는 두 개의 기록이 포함되어 있는 경우 스크립트는 `inputs.var1` 표현식으로 <var class="keyword varname">var1</var>을 참조할 수 있으며 `inputs.var2`를 사용하여 <var class="keyword varname">var2</var>를 참조할 수 있습니다.

## 단계 출력

단계에 대한 출력 변수는 단계 구성 기록의 출력 관련 목록에 의해 결정됩니다. `executeScript()` 매개변수는 outputs 스크립트에 이러한 변수에 대한 액세스 권한을 부여합니다. 예를 들어 출력 관련 목록에 <var class="keyword varname">out1</var>과 <var class="keyword varname">out2</var>라는 두 개의 기록이 포함되어 있는 경우 스크립트는 `outputs.out1` 표현식으로 <var class="keyword varname">out1</var>을 참조하고 `outputs.out2`를 사용하여 <var class="keyword varname">out2</var>를 참조할 수 있습니다.

## 단계 결과

stepResult 이 매개변수는 단계의 통과 또는 실패 여부를 제어하는 API에 대한 액세스를 제공합니다. 또한 단계가 로그에 기록하는 메시지를 결정합니다.

`stepResult.setSuccess() 메서드는` 단계가 성공하도록 합니다. `stepResult.setFailed() 메서드는` 단계를 실패시킵니다.

`stepResult.setOutputMessage() 메서드는` 단계가 성공하거나 실패할 때 로그에 쓰도록 메시지를 설정합니다. 하나의 매개변수, 즉 로그에 쓸 문자열이 필요합니다. 스크립트가 `stepResult.setOutputMessage()를` 두 번 이상 호출하면 가장 최근 값 세트가 이전 값을 덮어씁니다.  

## 기록 쿼리 단계 실행 스크립트


        (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));
        
       
## 사용자 지정 스크립트된 단계 구성 {#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));
        
       
주:  
위의 예는 `stepResult.setSuccess()`" 및 `stepResult.setFailed()` 를 `return true` 및 `return false`로 바꾸어 서버 측 스크립트 실행에도 사용할 수 있습니다.

