UI 라우팅 작업 작성
이 솔루션을 사용하면 인시던트인지 요청 항목인지 모른 채 서비스 데스크에서 기록을 만들 수 있습니다. 그런 다음 서비스 데스크는 기록을 적절한 테이블로 라우팅할 수 있습니다.
이 태스크 정보
주:
여기에 설명된 기능을 사용하려면 관리자 역할이 필요합니다.
UI 라우팅 작업 작성 방법:
프로시저
-
작업테이블을 확장하는 새 테이블을 만듭니다(예: 새 호출). - 모듈을 만들어 새 호출 기록을 만듭니다.
-
새 호출 테이블에서 원하는 필드를 만듭니다.
필요한 유일한 필드는 새 호출을 인시던트 또는 요청 항목으로 라우팅할지 여부를 결정하는 데 필요한 필드뿐입니다. 양식에 인시던트 또는 요청 항목에 전달할 필드가 포함되어 있는지 확인합니다. 이 예에서는 양식에 다음이 만들어집니다.
- 요청 대상 (참조)
- 위치 (참고)
- 호출 유형 (인시던트와 요청이라는 두 가지 값이 있는 선택)
- 요청 항목 (
sc_cat_item항목 테이블 참조)
- 호출 유형 선택에 따라 몇 개의 필드를 필수로 설정하고 요청 항목 필드를 숨기는 UI 정책을 추가합니다.
- 양식에서 불필요한 단추와 기능을 제거합니다.
-
새 UI 작업 버튼을 만듭니다.
이 버튼은 사용자를 인시던트 또는 요청으로 리디렉션합니다. 또한 인시던트 기록을 만들고 값을 인시던트 및 요청 항목 양식에 복사합니다.
var reqItem = current.u_item; var requestedFor = current.u_requested_for; var location = current.location; if(current.u_incident_request == 'Incident'){ //Create a new incident record and redirect to the new incident var rec = new GlideRecord('incident'); rec.initialize(); rec.caller_id = requestedFor; rec.location = location; rec.insert(); action.setRedirectURL(rec); } if(current.u_incident_request == 'Request'){ //Build the url and route the user to the request item var url = ''; if(current.u_item.sys_class_name == 'sc_cat_item_guide'){ url = 'com.glideapp.servicecatalog_cat_item_guide_view.do?sysparm_initial=true&sysparm_guide=' + reqItem + '&sysparm_user=' + requestedFor + '&sysparm_location=' + location; } else{ url = 'com.glideapp.servicecatalog_cat_item_view.do?sysparm_id=' + reqItem + '&sysparm_user=' + requestedFor + '&sysparm_location=' + location; } action.setRedirectURL(url); } -
이전 예제의 경로 단추는 URL의 요청 대상 및 위치 값을 요청 항목 양식에 전달합니다.
다음 클라이언트 스크립트를 사용하여 이러한 값을 매핑하는 항목, 기록 생산자 또는 주문 가이드에 requested_for및 위치 라는 변수가 있는지 확인합니다. URL의 길이가 제한되어 있으므로 전달할 수 있는 정보의 양에는 제한이 있습니다. 이 방법을 사용하여 긴 텍스트 필드에서 정보를 보내지 마십시오.
function onLoad() { var url = document.location.toString(); var userKey = 'sysparm_user='; var locKey = 'sysparm_location='; var userPosition = url.indexOf(userKey); var locPosition = url.indexOf(locKey) if (userPosition != -1) { var user = url.substr(userPosition+userKey.length, 32); g_form.setValue('requested_for',user); } if (locPosition != -1) { var loc = url.substr(locPosition+locKey.length, 32); g_form.setValue('location',loc); } }