실행 계획의 스크립트 가능한 할당
각 카탈로그 항목에는 해당 유형의 항목이 정렬될 때마다 사용되는 실행 계획이 연결되어 있습니다. 계획을 지정하지 않으면 기본 계획이 사용됩니다. 이 기본값은 대부분의 조직에 적용되지만 실행 계획은 추가 기준에 따라 달라져야 할 수 있습니다.
예를 들어 기본 시스템 서비스 카탈로그에서 새 PC에 대한 요청은 항상 PC 배달 계획을 사용합니다. 그러나 요청자가 원격 위치에서 재택근무를 하는 경우와 같은 비정상적인 상황에서는 이 계획이 달라져야 할 수 있습니다.
이러한 유연성을 제공하기 위해 스크립트를 사용하여 특정 카탈로그 항목의 기본 실행 계획을 재정의할 수 있습니다.
스크립트 실행 중 제한 사항
실행 계획 스크립트에는 구현 중에 고려해야 하는 제한 사항이 있습니다.
실행 계획 스크립트가 실행되는 동안 다음을 수행합니다.
- 카탈로그 작업은 실행 계획이 선택된 후에만 생성되므로 카탈로그 작업과 상호 작용할 수 없습니다.
- 총 제공 시간 및 기한과 같은 일부 필드는 아직 계산되지 않았지만 요청 자체는 current.request()를 통해 스크립트 내에서 사용할 수 있습니다.
- 승인이 아직 생성되지 않았습니다.
스크립트 작성
실행 계획 스크립트를 작성할 때 다음 지침을 따르십시오.
실행 계획 스크립트는 다른 서버 측 실행 계획에서와 동일한 전역 변수 및 기타 함수에 액세스할 수 있습니다.
- current 는 현재 요청된 카탈로그 항목인
sc_req_item입니다. - current.delivery_plan() 은 이 카탈로그 항목에 대해 할당된 실행 계획입니다.
스크립트에서 평가된 값은 실행 계획의 sys_id 로 사용됩니다.
간단한 예:
current.delivery_plan.setDisplayValue('PC Delivery Plan')정의되지 않았거나 찾을 수 없음과 같이 잘못된 값이 반환되면 기존에 할당된 값이 사용됩니다.
더 복잡한 예 :
getexecutionplan();
function getexecutionplan() {
var location = current.request.requested_for.location.getDisplayValue();
// if we're in Atlanta
if (location == 'Atlanta') {
// use the remote pc delivery plan instead of the normal one
var remote_plan = new GlideRecord('sc_cat_item_delivery_plan');
remote_plan.addQuery('name', 'Remote PC Delivery Plan');
remote_plan.query();
remote_plan.next();
current.delivery_plan = remote_plan.sys_id;
return remote_plan_sys_id;
}
return current_delivery_plan;
}이 예제에서는 애틀랜타 ServiceNow 에 있는 사용자에 대한 요청일 때마다 Remote PC Delivery Plan을 사용합니다. 그렇지 않으면 실행 계획이 재정의되지 않고 ServiceNow 카탈로그 항목의 일반 실행 계획인 PC 제공 계획을 사용합니다.
카탈로그 항목에 스크립트 추가
사용자가 해당 항목을 요청할 때마다 스크립트가 실행되도록 카탈로그 항목에 스크립트를 추가할 수 있습니다.
프로시저
결과
스크립트를 사용하여 실행 계획 승인
승인 규칙 스크립트를 사용하여 실행 계획을 승인할 수 있습니다.
프로시저
- 승인 실행 계획 작업을 검색합니다.
- 승인 스크립트 필드를 봅니다.
- 승인 규칙에 사용하는 것과 동일한 구문과 규칙을 사용하여 승인 스크립트를 작성합니다.
예
예를 들어 아래 스크립트에서는 요청자의 관리자가 승인자입니다.