Interactive filter search based on multiple fields

eyal abu hamad
Mega Sage

hey everybody,
I have an interactive filter in the dashboard that reference the user table. I want to be able to search in this interactive filter by email and user id for example. is that possible ?

eyalabuhamad_0-1709496325232.png

 

6 REPLIES 6

Sumanth16
Kilo Patron

Hi @eyal abu hamad ,

 

Please refer to below thread:

https://www.servicenow.com/community/platform-analytics-forum/create-interactive-filter-to-search-on...

 

 

If I could help you with your Query then, please hit the Thumb Icon and mark it as Correct !!

 

Thanks & Regards,

Sumanth Meda

dose the dynamic blocks need plugin ? I don't find it in my instance

Hi eyal abu hamad

On the Dashboard under widgets you can find the dynamic blocks there is no need of any plugins.

please hit the Thumb Icon and mark it as Correct !!

 

 

Hey, It worked in my developer instance but my production show me that the result is null.

eyalabuhamad_0-1709544868835.png

I will share my Ui page and widget also
Ui page : 

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<script>
     
     var my_dashboardMessageHandler = new DashboardMessageHandler("FilterShortDescription");
    
    function publishFilter (searchTerm) {
        var filter_message = {};
        filter_message.id = "FilterShortDescription";
        filter_message.table = "sys_user";
     
     if (searchTerm == ""){
     clearFilter();
     } 
     
     else {
     filter_message.filter = "emailLIKE"+ searchTerm;
     }
        SNC.canvas.interactiveFilters.setDefaultValue({
                id: filter_message.id,
                filters: [filter_message]
            }, false);
        my_dashboardMessageHandler.publishFilter(filter_message.table, filter_message.filter);
    }
    
    function clearFilter() {
        var filter_message = {};
        filter_message.id = "FilterShortDescription";
        filter_message.table = "sys_user";
        filter_message.filter = "";
        SNC.canvas.interactiveFilters.setDefaultValue({
                id: filter_message.id,
                filters: [filter_message]
            }, false);
        my_dashboardMessageHandler.removeFilter();
    }
 </script>   
    
            <input id="searchTerm" type="text" class="form-control" value="" onchange="publishFilter(this.value);"></input>

</j:jelly>

and Widget : 

function sections() {
    return {
        'emailRender': { 'uiPageName' : 'interactive_dashboard'},
    };
}

function render() {
    var uiPageName = renderer.getPreferences().get("interactive_dashboard");
    return renderer.getRenderedPage(uiPageName);
}

function getEditLink() {
    var uiPageName = renderer.getPreference('uiPageName');
    return 'sys_ui_page.do?sysparm_query=' + encodeURIComponent('name=' + uiPageName);
}

un my dashboard I add content by this button

eyalabuhamad_1-1709544962384.png