기록 액세스 제한

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 4분
  • 데이터베이스 쿼리 전에 실행되는 쿼리 비즈니스 규칙을 사용하여 사용자가 특정 기록에 액세스하지 못하도록 할 수 있습니다.

    경고:
    여기서 설명하는 사용자 지정은 특정 인스턴스에서 사용하도록 개발되었으며, Now Support에서 지원되지 않습니다. 이 메서드는 있는 그대로 제공되며 구현 전에 철저히 테스트되어야 합니다. 이 사용자 지정에 대한 모든 질문과 의견을 커뮤니티 포럼에 게시합니다.

    인시던트 기록에 대한 액세스를 제한하는 기본 비즈니스 규칙의 다음 예를 고려하십시오.

    표 1. 기본 비즈니스 규칙으로 인시던트 기록에 대한 접근 제한
    이름 테이블 시기
    인시던트 쿼리 인시던트 before, query

    기록 액세스 제한

    다음 예에서 사용자는 itil 역할이 없고 호출 자 또는 오픈한 사람 필드에 나열되지 않는 한 인시던트 기록에 액세스할 수 없습니다. 셀프 서비스 사용자가 인시던트 목록을 열면 제출한 인시던트만 볼 수 있습니다.
    if (!gs.hasRole("itil")&& gs.isInteractive()) {
      var u = gs.getUserID();
      var qc = current.addQuery("caller_id", u).addOrCondition("opened_by", u).addOrCondition("watch_list","CONTAINS", u);
      gs.print("query restricted to user: " + u);}
    주:
    액세스 제어를 사용하여 사용자가 볼 수 있는 기록을 제한할 수도 있습니다. 자세한 내용은 Access Control List Rules 문서를 참조하십시오.

    평일 일정 스크립트

    유형: 비즈니스 규칙/클라이언트 스크립트

    이 스크립트는 평일에 대한 스크립트를 예약합니다. "여기에 스크립트"라고 표시된 스크립트를 삽입합니다.
    var go ='false';
    var now =new Date(); 
     
    // Correct time zone, which is by default GMT -7 
    now.setHours(now.getHours()+8);
    var day = now.getDay(); 
     
    // No go on Saturday or Sunday 
    if(day !=0&& day !=6){
     
    // (your script here)
     
    }

    현재 날짜에 따라 날짜 필드 설정

    이 스크립트는 현재 요일에 따라 날짜 필드를 설정합니다. 이 예에서 요일이 월요일부터 수요일까지이면 다음 월요일로 날짜를 설정합니다. 그렇지 않으면 날짜 필드가 다음 월요일로 설정됩니다.
    function setCabDate(){
    var today = new Date();
    var thisDay = today.getDay();
    
    //returns 0 for Sunday, 1 for Monday, through 6 for Saturday.
    var thisMon = new GlideDateTime();
    thisMon.setDisplayValue(gs.beginningOfThisWeek());
    var nextMon = thisMon.getNumericValue();
    nextMon +=(1000*60*60*24*7);
     
    if((thisDay <4)&&(thisDay >0))
      //if today is Mon thru Wed (thisDay = 1, 2, or 3), set cab to this coming Monday.
      current.u_req_cab_rev_date.setDateNumericValue(thisMon.getNumericValue());
    else if((thisDay >=4)||(thisDay ==0))
      //if today is Thurs thru Sun (thisDay = 4, 5, 6, or 0), set cab to next Monday.
      current.u_req_cab_rev_date.setDateNumericValue(nextMon);
    }

    모든 날짜/시간 필드의 입력을 확인하려면 확인 스크립트(시스템 정의 > 확인 스크립트). 날짜/시간 형식은 이 스크립트에 하드 코딩되어 있으므로 인스턴스의 날짜/시간 형식과 일치해야 합니다. 인스턴스의 날짜/시간 형식이 변경되면 확인 스크립트를 업데이트해야 합니다.

    확인 스크립트의 유형을 날짜/시간으로 설정합니다. 그런 다음 이 확인 스크립트를 사용하여 사용자가 날짜/시간 필드에 잘못된 형식을 입력하면 오류 메시지가 표시됩니다.
    function validate(value){
    // empty fields are still valid dates 
    if(!value) 
        return true; 
     
    // We "should" have the global date format defined always defined. But there's always that edge case. 
    if(typeof g_user_date_time_format !=='undefined')
        return isDate(value, g_user_date_time_format); 
     
    // if we don't have that defined, we can always try guessing 
    return parseDate(value)!==null;}
    자세한 내용은 확인 스크립트 사용 사례 - 날짜 및 시간 문서를 참조하십시오.