실행 계획의 스크립트 가능 할당
각 카탈로그 항목에는 해당 유형의 항목을 주문할 때마다 사용되는 실행 계획이 연결되어 있습니다. 계획을 지정하지 않으면 기본 계획이 사용됩니다. 이 기본값은 대부분의 조직에 효과적이지만 실행 계획은 추가 기준에 따라 달라질 수 있습니다.
예를 들어 기본 시스템 서비스 카탈로그에서 새 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 에 있는 사용자에 대한 요청이 있을 때마다 원격 PC 배달 계획을 사용합니다. 그렇지 않으면 실행 계획이 재정의되지 ServiceNow 않고 카탈로그 항목의 일반 실행 계획인 PC 제공 계획을 사용합니다.
카탈로그 항목에 스크립트 추가
사용자가 해당 항목을 요청할 때마다 스크립트가 실행되도록 카탈로그 항목에 스크립트를 추가할 수 있습니다.
프로시저
결과
스크립트를 사용하여 실행 계획 승인
승인 규칙 스크립트를 사용하여 실행 계획을 승인할 수 있습니다.
프로시저
- 승인 실행 계획 작업을 검색합니다.
- 승인 스크립트 필드를 봅니다.
- 승인 규칙에 사용하는 것과 동일한 구문과 규칙을 사용하여 승인 스크립트를 작성합니다.
예
예를 들어 아래 스크립트에서 요청자의 관리자는 승인자입니다.