정책 스크립트의 PaCE 구조

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 7분
  • 이 섹션에서는 정책 스크립트의 구조에 PaCE 대해 설명합니다.

    정책이 실행되면 매개변수 세트가 전달되고 정책 개발자는 이 정책 스크립트에서 이러한 매개변수를 사용하여 규정 준수, 미준수 또는 규정 준수 예외 여부를 결정하고 이 결정을 호출 서비스로 다시 반환할 수 있습니다. 다음 이미지는 샘플 스크립트를 보여줍니다.
    그림 1. 샘플 정책 스크립트
    샘플 스크립트 정책.

    스크립트를 디버그하려면 디버거 스크립트 아이콘 디 버거 아이콘을 선택합니다. 자세한 내용은 Script Debugger API 문서를 참조하십시오.

    다음 표에는 정책 함수 매개변수와 정책 스크립트에서 사용할 수 있는 방법이 나와 있습니다.

    변수 이름 설명
    로거 로거 는 정책 코더가 메시지를 기록하는 데 사용할 수 있는 객체입니다. 로그 메시지는 sn_pace_execution_log 테이블에 저장됩니다. 디버깅, 추적 또는 모니터링 목적으로 이러한 로그 메시지를 검토할 수 있습니다. 로그 메시지는 다음 수준 중 하나로 로깅할 수 있습니다.
    • 1: 정보
    • 2: 디버그
    • 3: 경고
    • 4: 오류

    API를 통해 정책이 호출되면 원하는 로그 수준을 지정할 수 있습니다. 예를 들어:형식은 다음과 같습니다.

    logger.info("** snapshotId is: "+snapshotId);

    current

    기록

    currentRecord 는 정책이 사용될 때 실행되는 현재 버전의 정책 객체입니다. currentRecord 상세 정보를 보려면 정책 홈페이지에서 버전 탭으로 이동하여 버전 상태가 현재로 설정된 정책을 찾습니다.
    아래 이미지에서 정책의 현재 활성 버전이 강조 표시되어 있는 것을 볼 수 있습니다. 다음과 같은 상세 정보가 표시됩니다.
    • 버전 번호
    • 최근 업데이트 날짜
    • 버전을 업데이트한 사용자의 이름
    • 호출 애플리케이션에서 실행한 횟수
    • 테스트 환경에서 실행된 횟수
    정책 스크립트는 정책에 전달된 currentRecord 객체와 상호 작용하여 정책 실행 시간 동안 이 데이터에 액세스할 수 있습니다.

    PaCE 버전 상세 정보
    이 예는 정책 개발자가 정책 버전 기록의 속성에 액세스하는 방법을 보여줍니다.
    (function(logger, currentRecord, documentRecord, apiVars, configParams, recordRefs, dataCollectors, childrenOutputs, output) {
         //retrieve the input values
         logger.info(currentRecord.getValue('name'));
      }
     )(logger, currentRecord, documentRecord, apiVars, configParams, recordRefs, dataCollectors, childrenOutputs, output);
    
    문서

    기록

    documentRecord 는 확인 중인 관련 객체(테이블 및 documentID)에 정책을 매핑하는 데 사용됩니다. documentRecord는 table_name와 sysID의 조합입니다. 객체의 속성에 따라 정책 논리는 확인 중인 객체를 관리하고 상호 작용하여 올바른 결정을 결정하는 데 사용됩니다.
    예: DevOps 구성 환경에서 정책을 배포 가능 항목에 매핑할 수 있습니다. API가 호출되면 문서(배포 가능) 테이블과 배포 가능 항목의 시스템 ID에서 쿼리가 시작됩니다.
    {
               "table": "sn_cdm_deployable",
               "sysId": "d1be8f5e87d80110eec7dbdd3fbb357d"
    		}
    다음 예시는 정책 스크립트에서 documentRecord를 사용할 수 있는 방법을 보여줍니다.
    (function(logger, currentRecord, documentRecord, apiVars, configParams, recordRefs, dataCollectors, childrenOutputs, output) 
    {
    //assuming that associated document has state field
      var documentState = documentRecord.getValue(“state”);
    if (documentState == “new”)
       …
    else
       …
    }
    )(logger, currentRecord, documentRecord, apiVars, configParams, recordRefs, dataCollectors, childrenOutputs, output);
    

    apiVars

    apiVars는 호출될 때 API에 PaCE 전달됩니다. 여기에는 정책 버전에 정의된 모든 API 변수가 포함됩니다. 자세한 내용은 <호출자 입력 정의> 섹션을 참조하십시오

    정책으로 샘플 정책 스크립트 DevOps 환경에서 구성 데이터를 확인하는 방법을 보여줍니다. 샘플 스크립트에서 apiVars 변수는 다음과 같이 정의됩니다.
    var snapshotId = apiVars.snapshotId;
    여기서 지정된 snapshotId 는 지정된 기준에 따라 확인 중인 DevOps 구성 배포 가능 항목의 해당 snapshotId 에 매핑됩니다.

    정책 개발자는 결정을 결정하기 위해 API가 호출될 때 전달된 apiVars 값을 사용하도록 정책 스크립트에서 논리를 정의할 수 있습니다. 예를 들어 전달된 SnapshotID는 documentRecord 객체에 전달된 배포 가능 항목의 특정 snapshotID와 관련된 키-값을 식별하는 데 사용됩니다.

    configParams

    구성 매개변수 는 정책을 매핑할 때 전달되는 변수이며 정책의 특정 버전에 대해 정의된 모든 구성 매개변수 변수를 포함합니다.

    configParams 변수는 다음샘플 정책 스크립트에 다음과 같이 정의되어 있습니다.
    var dbPort = configParams.dbPort;
    정책 개발자는 매핑 시 전달된 값을 사용하여 결정을 결정하도록 정책 스크립트에서 논리를 정의할 수 있습니다. 예를 들어 dbPort 번호는 30000보다 작아야 하며, 그렇지 않으면 정책이 non_compliant로 간주됩니다.
    recordRefs 기록 참조는 쿼리를 정의하여 테이블에서 ServiceNow® 데이터를 추출하고 데이터를 사용하여 정책 논리를 구성합니다. Javascript 편집기에서 기록 참조를 선택할 수 있는 자동 완성 기능이 있습니다.
    데이터 수집기 데이터 수집기 기능은 출력을 제공하기 위해 외부 데이터 소스에서 ServiceNow 입력 프로세스 데이터를 수집합니다.
    하위

    출력

    이 버전에서는 지원되지 않습니다.
    출력

    이 매개변수는 결정을 포함하는 정책 실행의 출력을 호출 서비스로 다시 전달하는 데 사용됩니다. 오류, 경고 및 결과 상세 정보와 같은 추가 정보와 함께 이 정책과 관련된 결정을 제공합니다.

    이 예는 규정 준수 및 non_compliant 결정이 포함된 샘플 출력을 보여줍니다.
    
    {
        "decision": "compliant",
        "results": [],
        "warnings": [],
        "failures": [],
        "state": "complete"
    }
    
    
    {
        "decision": "non_compliant",
        "results": [],
        "warnings": [],
        "failures": [“Failed to validate key”],
        "state": "complete"
    }
    
    출력.

    결정

    결정 속성은 다음과 같이 설정할 수 있습니다.
    • 준수: 정책이 요구 사항을 준수하는지 확인합니다.
    • 미준수: 정책이 요구 사항을 준수하지 않는 것을 결정합니다.
    • 준수-예외: 정책에 대한 예외가 승인되었고 규정을 준수하지 않는 모든 정책이 규정 준수-예외 상태로 설정되었는지 확인합니다.

    결정은 JSON 형식으로 호출 서비스에 다시 반환됩니다.

    주:
    스크립트의 output.decision 필드에 값이 지정되어 있지 않으면 정책이 실행될 때 기본적으로 이 필드는 실패가 없을 경우 준수 로 설정됩니다.
    출력.

    결과

    결과 속성은 정책 확인 단계 동안 이루어진 결정에 대한 데이터를 호출 서비스로 다시 전달하는 데 사용할 수 있습니다. 결과 목록이 있는 목록 객체는 호출 서비스로 다시 전달될 수 있습니다.

    출력.

    경고

    warnings 속성을 사용하여 정책 확인 단계 중에 발생한 경고에 대한 데이터를 호출 서비스로 다시 전달할 수 있습니다.

    출력.

    실패

    failures 속성을 사용하여 정책 확인 단계 중에 발생한 오류에 대한 데이터를 호출 서비스로 다시 전달할 수 있습니다.

    주:
    정책 스크립트가 실행되면 PaCE 다음 필드가 자동으로 채워집니다.
    출력.

    이름

    실행 중인 정책의 이름(현재 버전)입니다.
    출력.

    상태

    정책 발동 상태를 나타냅니다.
    • 완료: 발동이 성공적으로 완료되었습니다.
    • 보류 중: 정책을 성공적으로 실행할 수 없으며 미완료 상태임을 나타냅니다.
    주:
    • 자동 완성 제안은 로거, callerInputmappedInput 매개변수에 대한 정책 스크립트 편집기에서 사용할 수 있습니다.
    • 매개변수에 대한 추가 정보를 보려면 매개변수 이름을 입력하고 다음과 같이 옵션 중 하나를 선택합니다.
      PaCE 추가 매개변수 상세 정보