실행 계획의 스크립트 가능 할당
각 카탈로그 항목에는 해당 유형의 항목이 주문될 때마다 사용되는 실행 계획이 연결되어 있습니다. 계획을 지정하지 않으면 기본 계획이 사용됩니다. 이 기본값은 대부분의 조직에 유효하지만 추가 기준에 따라 실행 계획을 달라야 할 수 있습니다.
예를 들어 기본 시스템 서비스 카탈로그에서 새 PC에 대한 요청은 항상 PC 제공 계획을 사용합니다. 그러나 요청자가 원격 위치에서 재택근무를 하는 경우와 같은 비정상적인 상황에서는 이 계획을 변경해야 할 수 있습니다.
이러한 유연성을 제공하기 위해 스크립트를 사용하여 특정 카탈로그 항목의 기본 실행 계획을 재정의할 수 있습니다.
스크립트 실행 중 제한 사항
실행 계획 스크립트에는 구현 중에 고려해야 하는 제한 사항이 있습니다.
실행 계획 스크립트가 실행되는 동안 다음을 수행합니다.
- 실행 계획을 선택한 후에만 카탈로그 작업이 만들어지기 때문에 카탈로그 작업과 상호작용할 수 없습니다.
- 총 제공 시간 및 기한과 같은 일부 필드는 current.request()를 통해 스크립트 내에서 요청 자체를 사용할 수 있지만 아직 계산되지 않았습니다.
- 승인이 아직 생성되지 않았습니다.
스크립트 작성
실행 계획 스크립트를 작성할 때 다음 지침을 따르십시오.
실행 계획 스크립트는 다른 서버 측 실행 계획에서와 동일한 전역 변수 및 기타 기능에 액세스할 수 있습니다.
- current 는 현재 요청된 카탈로그 항목인
sc_req_item입니다. - current.delivery_plan() 은 이 카탈로그 항목에 대해 할당된 실행 계획입니다.
스크립트에서 평가된 값은 실행 계획의 sys_id 으로 사용됩니다.
간단한 예:
current.delivery_plan.setDisplayValue('PC Delivery Plan')undefined 또는 not found와 같은 잘못된 값이 반환되면 기존에 할당된 값이 사용됩니다.
더 복잡한 예 :
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 제공 계획을 사용합니다.
카탈로그 항목에 스크립트 추가
사용자가 해당 항목을 요청할 때마다 스크립트가 실행되도록 카탈로그 항목에 스크립트를 추가할 수 있습니다.
프로시저
결과
스크립트를 사용하여 실행 계획 승인
승인 규칙 스크립트를 사용하여 실행 계획을 승인할 수 있습니다.
프로시저
- 승인 실행 계획 작업을 검색합니다.
- 승인 스크립트 필드를 봅니다.
- 승인 규칙에 사용하는 것과 동일한 구문과 규칙을 사용하여 승인 스크립트를 작성합니다.
예
예를 들어 아래 스크립트에서는 요청자의 관리자가 승인자입니다.