사용자 지정 대화형 필터 예시
관리자는 대시보드에 고급 필터링 옵션을 제공하는 사용자 지정 대화형 필터 위젯을 만들 수 있습니다.
사용 케이스
이 예에서는 사용자 지정 필터를 만들어 작업 테이블 또는 해당 하위 테이블의 보고서를 필터링하는 방법을 자세히 설명합니다. 필터는 현재 사용자가 호출자인 기록만 표시합니다. 필터는 사용자에게 두 개의 버튼, 즉 필터를 추가하는 버튼과 필터를 제거하는 버튼 하나를 노출합니다.
사용자 지정 대화형 필터 위젯 만들기
대시보드에서 고급 필터링 옵션을 제공하는 사용자 지정 대화형 필터 위젯을 만듭니다.
시작하기 전에
필요한 역할: 관리자
프로시저
다음에 수행할 작업
필터링 논리를 정의합니다.
필터링 논리 정의 - 예시
대화형 필터를 만든 후 필터링 논리를 추가합니다.
시작하기 전에
필요한 역할: 관리자
프로시저
결과
동적 콘텐츠 블록을 추가한 대시보드에 사용자 지정 대화형 필터가 나타납니다. 또한 위젯 추가 패널의 콘텐츠 블록 목록에도 있습니다.
사용자 지정 날짜/시간 필터 옵션 생성
날짜/시간 필터 옵션의 표준 선택이 필요에 맞지 않는 경우 사용자 지정 옵션을 만들 수 있습니다.
시작하기 전에
다음 단계에 따라 대시보드에서 사용하기 위해 날짜/시간 기반 대화형 필터에 포함할 수 있는 사용자 지정 날짜/시간 필터 옵션을 만듭니다. 이 예에서는 2주, 2주 기간에 대한 필터 옵션을 만듭니다.
필요한 역할: admin.
프로시저
사용자 지정 대화형 필터 예시 - 다중 보고서
사용자 지정 대화형 필터를 사용하여 서로 다른 테이블을 사용하여 여러 보고서를 필터링할 수 있습니다. 단일 테이블 또는 여러 테이블에 대한 대화형 필터를 게시하는 두 가지 API가 있습니다. 이 예에서는 사용자 지정 대화형 필터를 사용하여 할당 그룹별로 인시던트 및 문제 테이블에 대한 보고서를 필터링합니다.
여러 테이블의 사용자 지정 대화형 필터 정보
- 하나의 테이블에만 적용되는 사용자 지정 대화형 필터는 DashboardMessageHandler.publishFilter() 함수를 사용합니다.
- 여러 테이블에 적용되는 사용자 지정 대화형 필터는 DashboardMessageHandler.publishMessage() 함수를 사용합니다.
- 게시하기 전에 SNC.canvas.interactiveFilters.setDefaultValue() 함수에 대한 대화형 필터 호출이 필요합니다.
- 필터를 재설정하기 전에 SNC.canvas.interactiveFilters.removeDefaultValue() 또는 DashboardMessageHandler.removeFilter() 함수를 호출해야 합니다.
publishFilter() 메서드를 여러 번 호출하는 사용자 지정 대화형 필터는 연결된 보고서를 같은 횟수만큼 새로 고칩니다. 이 메서드를 반복적으로 호출하면 성능 문제가 발생할 수 있습니다.
여러 테이블에 사용자 지정 대화형 필터를 적용하는 방법
다음 예에서는 인시던트 [incident] 및 문제 [problem] 테이블의 할당 그룹별로 보고서를 필터링합니다.
DashboardMessageHandler.publishMessage()는 여러 필터를 배열로 허용합니다. 필터 배열을 만든 다음 DashboardMessageHandler.publishMessage([filters])를 호출하는 DashboardMessageHandler의 단일 인스턴스를 만듭니다. 이 메서드는 위젯을 한 번만 새로 고침합니다.
<?xml version="1.0" encoding="UTF-8"?>
<j:jelly xmlns:j="jelly:core" xmlns:g="glide" xmlns:g2="null" xmlns:j2="null" trim="false">
<script>
var my_dashboardMessageHandler = new DashboardMessageHandler("my_unique_id");
function publishMultipleFilter() {
<!-- Mutliple filters can be passed as an array -->
var finalFilter = [{"table":"incident","filter":"assignment_group=6fcd3b573b331300ad3cc9bb34efc447"}, {"table":"problem","filter":"assignment_group=6fcd3b573b331300ad3cc9bb34efc447"}];
<!-- call setDefaultValue first -->
SNC.canvas.interactiveFilters.setDefaultValue({
id: my_dashboardMessageHandler._unique_id,
filters: finalFilter,
}, false);
<!-- then call Publishmessage to publish filters-->
my_dashboardMessageHandler.publishMessage(finalFilter);
}
function clearFilter() {
SNC.canvas.interactiveFilters.removeDefaultValue(my_dashboardMessageHandler._unique_id, false);
my_dashboardMessageHandler.removeFilter();
}
</script>
Example of a filter that filters incident and problem table where the assignment group is Problem solving
<input id="allTasks" type="button" value="All" onclick="clearFilter();" />
<input id="onlyMine" type="button" value="Assignment group is [Problem solving]" onclick="publishMultipleFilter();" />
</j:jelly>