---
sourceDocument: Xanadu Now Platform 기능
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/xanadu/servicenow-platform

 Release :

    - xanadu

ft:locale :

    - ko-KR

ft:publication_title :

    - Xanadu Now Platform 기능

ft:clusterId :

    - platcap

bundleId :

    - platcap

workflow :

    - Platform


---

# 정책 스크립트의 PaCE 구조

# 정책 스크립트의 PaCE 구조 {#ariaid-title1}

* 릴리스 버전: Xanadu
* 
* 업데이트 날짜 2024년 08월 01일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 7분

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

다음 표에는 정책 함수 매개변수와 정책 스크립트에서 사용되는 방법이 나와 있습니다.
{#pace-policy-structure__table_jk5_xlt_jrb__entry__2}

| 변수 이름 | 설명 |
|:-|:-|
| 거 | `Logger` 는 정책 코더가 메시지를 기록하는 데 사용할 수 있는 개체입니다. 로그 메시지는 `sn_pace_execution_log` 테이블에 저장됩니다. 디버깅, 추적 또는 모니터링을 위해 이러한 로그 메시지를 검토할 수 있습니다. 로그 메시지는 다음 수준 중 하나로 기록될 수 있습니다. * 1 : 정보 * 2: 디버그 * 3: 경고 * 4: 오류 {#pace-policy-structure__ul_ifk_v5t_jrb} API를 통해 정책을 호출할 때 원하는 로그 수준을 지정할 수 있습니다. 예:형식은 다음과 같습니다. `logger.info("** snapshotId is: "+snapshotId);` |
| current 기록 | `currentRecord` 는 정책이 사용될 때 실행되는 현재 버전의 정책 객체입니다. `currentRecord` 세부 정보를 보려면 정책 홈 페이지의 버전 탭으로 이동하여 버전 상태가 현재로 설정된 정책을 찾습니다. 아래 이미지에서 정책의 현재 활성 버전이 강조 표시된 것을 볼 수 있습니다. 여기에는 다음과 같은 세부 정보가 표시됩니다. * 버전 번호 * 최근 업데이트 날짜 * 버전을 업데이트한 사용자의 이름 * 호출 응용 프로그램에서 실행한 횟수 * 테스트 환경에서 실행된 횟수 {#pace-policy-structure__ul_ug1_tpg_35b}정책 스크립트는 정책에 전달된 `currentRecord` 객체와 상호작용하여 정책 실행 시간 동안 이 데이터에 액세스할 수 있습니다. <br /> 이 예는 정책 개발자가 정책 버전 기록의 속성에 액세스할 수 있는 방법을 보여줍니다. (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 ` 는 유효성 검사 중인 관련 객체(table 및 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); |
| apiVar | apiVars는 호출될 때 API에 PaCE 전달됩니다. 여기에는 정책 버전에 정의된 모든 API 변수가 포함됩니다. 자세한 내용은 \<호출자 입력 정의\> 섹션을 참조하십시오. [샘플 정책 스크립트](https://servicenow-prod.fluidtopics.net/ii84hNrGSA_cvWX8tuLRmA#pace-policy-structure__fig_qfr_z1z_yrb) DevOps 환경에서 정책을 사용하여 구성 데이터의 유효성을 검사하는 방법을 보여줍니다. 샘플 스크립트에서 apiVars 변수는 다음과 같이 정의됩니다. var snapshotId = apiVars.snapshotId; 여기서 지정된 `snapshotId` 는 지정된 기준에 따라 검증되는 DevOps 구성 배포 가능 항목의 `해당 snapshotId` 에 매핑됩니다. 정책 개발자는 API가 호출될 때 전달된 apiVars 값을 사용하여 결정을 결정하는 정책 스크립트의 논리를 정의할 수 있습니다. 예를 들어, 전달된 SnapshotID는 documentRecord 객체에 전달된 배포 가능 항목의 특정 snapshotID와 관련된 키-값을 식별하는 데 사용됩니다. |
| configParams | 구성 매개변수 는 정책을 매핑할 때 전달되는 변수이며 정책의 특정 버전에 대해 정의된 모든 구성 매개변수 변수를 포함합니다. `configParams` 변수는 [샘플 정책 스크립트](https://servicenow-prod.fluidtopics.net/ii84hNrGSA_cvWX8tuLRmA#pace-policy-structure__fig_qfr_z1z_yrb). 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 상태로 설정되어 있는지 확인합니다. {#pace-policy-structure__ul_t2h_st4_fsb} 결정은 JSON 형식으로 호출 서비스에 다시 반환됩니다. 주: 스크립트의 `output.decision` 필드에 값이 지정되어 있지 않은 경우 정책이 실행될 때 오류가 없으면 기본적으로 이 필드는 complianty 로 설정됩니다. |
| 출력. 결과 | `results` 속성은 정책 유효성 검사 단계에서 결정된 사항에 대한 데이터를 호출 서비스로 다시 전달하는 데 사용할 수 있습니다. 결과 목록이 있는 목록 개체를 호출 서비스로 다시 전달할 수 있습니다. |
| 출력. 경고 | `warnings` 속성은 정책 유효성 검사 단계에서 발생한 경고에 대해 데이터를 호출 서비스로 다시 전달하는 데 사용할 수 있습니다. |
| 출력. 실패 | `failures` 속성은 정책 유효성 검사 단계에서 발생한 오류에 대한 데이터를 호출 서비스로 다시 전달하는 데 사용할 수 있습니다. |
| 주: 다음 필드는 정책 스크립트가 PaCE 실행될 때 자동으로 채워집니다. ||
| 출력. name | 실행 중인 정책의 이름(현재 버전)입니다. |
| 출력. 상태 | 정책 발동 상태를 나타냅니다. * 완료: 발동이 성공적으로 완료되었습니다. * 보류 중: 정책을 성공적으로 실행할 수 없으며 미완료 상태임을 나타냅니다. {#pace-policy-structure__ul_q3s_lts_fsb} |
[ ]

{#pace-policy-structure__table_jk5_xlt_jrb}  
주:  
* 자동 완성 제안은 `로거, callerInput` 및 `mappedInput` 매개변수에 대한 정책 스크립트 편집기에서 사용할 수 있습니다.
* 매개변수에 대한 추가 정보를 보려면 매개변수 이름을 입력하고 다음과 같이 옵션 중 하나를 선택합니다.   

{#pace-policy-structure__ul_d1j_xc1_zrb}

