탐색 처리기
탐색 처리기는 스크립팅된 뷰 규칙으로, 지정된 테이블의 데이터가 양식 뷰에서 요청될 때마다 실행됩니다.
다음 스크립트는 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 문 외부에 있기 때문에 항상 응답을 반환하기 때문입니다.
앞의 예제의 탐색 처리기 스크립트가 뷰 규칙을 따르도록 하려면 다음 단계를 수행합니다.
이 예제는 이전 스크립트의 수정된 버전입니다. 이 경우 답변 라인은 사용자에게 역할이 없는 경우에만 발생합니다. 사용자에게 역할이 있는 경우 답변 에 도달하지 않으며 동일한 테이블의 뷰 규칙이 적용됩니다(있는 경우).
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');
}
}