사용자 지정 대화형 필터 예제
관리자는 사용자 지정 대화형 필터 위젯을 만들어 대시보드에 고급 필터링 옵션을 제공할 수 있습니다.
사용 사례
이 예에서는 작업 테이블 또는 해당 하위 테이블의 보고서를 필터링하는 사용자 지정 필터를 만드는 방법을 자세히 설명합니다. 필터는 현재 사용자가 호출자인 기록만 표시합니다. 필터는 사용자에게 두 개의 단추를 노출하는데, 하나는 필터를 추가하는 단추이고 다른 하나는 필터를 제거하는 단추입니다.
사용자 지정 대화형 필터 위젯 만들기
사용자 지정 대화형 필터 위젯을 생성하여 대시보드에서 고급 필터링 옵션을 제공합니다.
시작하기 전에
필요한 역할: admin
프로시저
다음에 수행할 작업
필터링 논리를 정의합니다.
사용자 지정 날짜/시간 필터 옵션 만들기
날짜/시간 필터 옵션의 표준 선택이 요구 사항을 충족하지 않는 경우 사용자 지정 옵션을 만들 수 있습니다.
시작하기 전에
다음 단계에 따라 대시보드에서 사용할 날짜/시간 기반 대화형 필터에 포함할 수 있는 사용자 지정 날짜/시간 필터 옵션을 만듭니다. 이 예에서는 2주, 즉 2주 동안의 기간에 대한 필터 옵션을 생성합니다.
필요한 역할: admin.
프로시저
필터링 논리 정의 - 예시
대화형 필터를 만든 후 필터링 논리를 추가합니다.
시작하기 전에
필요한 역할: 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>