정책 스크립트의 PaCE 구조

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

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

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

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

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

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

    logger.info("** snapshotId: "+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"
    }
    
    출력.

    결정

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

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

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

    결과

    results 속성은 정책 유효성 검사 단계에서 수행된 결정에 대한 데이터를 호출 서비스로 다시 전달하는 데 사용할 수 있습니다. 결과 목록이 있는 목록 개체를 호출 서비스에 다시 전달할 수 있습니다.

    출력.

    경고

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

    출력.

    실패

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

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

    이름

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

    상태

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