UI 라우팅 작업 생성

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기3분
  • 이 솔루션을 사용하면 인시던트인지 요청 항목인지 모른 채 서비스 데스크에서 기록을 생성할 수 있습니다. 그러면 서비스 데스크에서 해당 테이블로 기록을 라우팅할 수 있습니다.

    이 태스크 정보

    주:
    여기에 설명된 기능을 사용하려면 관리자 역할이 필요합니다.

    UI 라우팅 작업 작성 방법:

    프로시저

    1. 작업 테이블을 확장하는 새 테이블을 만듭니다(예: 새 호출).
    2. 모듈을 생성하여 새 새 통화 기록을 생성합니다.
    3. 새 호출 테이블에 원하는 필드를 생성합니다.

      필요한 유일한 필드는 새 호출을 인시던트 또는 요청 항목으로 라우팅할지 여부를 결정하는 데 필요한 필드뿐입니다. 양식에 인시던트 또는 요청 항목에 전달할 필드가 포함되어 있는지 확인합니다. 이 예에서는 양식에 다음이 만들어집니다.

      • 요청 대상 (참조)
      • 위치 (참조)
      • 콜 유형 (인시던트와 요청의 두 가지 값이 있는 선택)
      • 요청 항목 ( sc_cat_item 항목 테이블 참조)
    4. 호출 유형 선택에 따라 몇 개의 필드를 필수로 설정하고 요청 항목 필드를 숨기는 UI 정책 몇 개를 추가합니다.
    5. 양식에서 불필요한 단추와 기능을 제거합니다.
    6. 새 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);
      }
    7. 위 예제의 경로 단추는 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);
        }
      }