탐색 핸들러

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기2분
  • 탐색 핸들러는 스크립팅된 뷰 규칙이며 지정된 테이블의 데이터가 양식 뷰에서 요청될 때마다 실행됩니다.

    탐색 처리기 만들기

    탐색 핸들러 [sys_navigator] 테이블에는 인스턴스의 탐색 핸들러가 포함되어 있습니다. 필터 탐색기에 sys_navigator.list 를 입력하여 이 테이블에 액세스합니다. 탐색 핸들러 기록에는 탐색 핸들러가 적용되는 테이블을 지정하는 테이블 필드와 스크립팅된 뷰 규칙이 포함된 스크립트 필드가 포함되어 있습니다.

    다음 스크립트는 HR 플러그인에 포함된 탐색 핸들러에서 가져옵니다. 스크립트는 테이블 필드의 테이블에 있는 기록이 역할이 없는 사용자에 대해서는 ESS 뷰를 사용하고 다른 모든 사용자에게는 기본 뷰를 사용하도록 강제합니다.

    var now_GR = new GlideRecord(hr.TABLE_CASE);  
    if (gr.get(g_uri.get('sys_id'))) {  
         if (!gs.getUser().hasRoles())   
              g_uri.set('sysparm_view', 'ess');  
         else  
              g_uri.set('sysparm_view', '');  
    }  
      
      
    answer =  g_uri.toString('hr_case.do'); 

    뷰 규칙 이전 또는 이후 탐색 처리기 실행

    glide.ui.view_rule.check_after_nav_handler 시스템 속성을 사용하여 뷰 규칙과 탐색 핸들러가 적용되는 순서를 제어합니다. 탐색 핸들러 후 뷰 규칙을 처리하려면 속성 값을 True 로 설정합니다. 시스템 속성이 인스턴스에 없으면 탐색 핸들러가 항상 우선합니다.

    시스템 속성은 탐색 핸들러 스크립트 함수가 응답을 반환하지 않는 경우에만 탐색 핸들러를 재정의합니다. 위의 예시 스크립트에서 속성은 아무런 영향을 주지 않습니다. 이는 이 탐색 처리기가 응답 줄이 if 문 외부에 있기 때문에 항상 답변을 반환하기 때문입니다.

    이전 예제의 탐색 처리기 스크립트가 뷰 규칙을 따르도록 강제하려면 다음 단계를 수행합니다.
    1. 시스템 속성을 생성합니다 glide.ui.view_rule.check_after_nav_handler .
    2. 속성 값을 true로 설정합니다.
    3. 뷰를 변경하거나 강제 적용해야 하는 경우에만 답변을 반환하도록 탐색 핸들러 스크립트를 업데이트합니다.

    이 예제는 이전 스크립트의 수정된 버전입니다. 이 경우 응답 라인은 사용자에게 역할이 없는 경우에만 발생합니다. 사용자에게 역할이 있으면 답변 에 도달할 수 없으며 동일한 테이블에 대한 뷰 규칙(있는 경우)이 적용됩니다.

    var now_GR = new GlideRecord(hr.TABLE_CASE);  
    if (gr.get(g_url.get('sys_id'))) {  
         if (!gs.getUser().hasRoles()) {  
              g_url.set('sysparm_view'),'ess');  
              answer = g_url.toString('hr_case.do');  
         }  
    }