탐색 핸들러
탐색 핸들러는 스크립팅된 뷰 규칙이며 지정된 테이블의 데이터가 양식 뷰에서 요청될 때마다 실행됩니다.
다음 스크립트는 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');
}
}