Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

Get list of report from a Dashboard

Santhana Rajhan
Mega Sage

Use this to get the list of reports in a dashboard. 

Uncomment lines 21,28,36,45 to view the table hierarchy

 

var dashboardSYSID = 'enter_dashboard_sys_id';
var reports = [];

// Step 1: Get the PA Dashboard
var dashboardGR = new GlideRecord('pa_dashboards');
dashboardGR.addQuery('sys_id', dashboardSYSID);
dashboardGR.query();

if (dashboardGR.next()) {
    gs.print('Found PA Dashboard: ' + dashboardGR.name + ' (' + dashboardGR.sys_id + ')');

    // Step 2: Get all associated Tabs
    var tabM2M = new GlideRecord('pa_m2m_dashboard_tabs');
    tabM2M.addQuery('dashboard', dashboardGR.sys_id);
    tabM2M.orderBy('order');
    tabM2M.query();

    while (tabM2M.next()) {
        var tabGR = new GlideRecord('pa_tabs');
        if (tabGR.get(tabM2M.tab)) {
            // gs.print('\n📁 Tab: ' + tabGR.name);

            // Step 3: Get Portal Page from Tab
            var portalPageGR = new GlideRecord('sys_portal_page');
            portalPageGR.addQuery('view', tabM2M.tab.page.view);
            portalPageGR.query();
            if (portalPageGR.next()) {
                // gs.print('→ Portal page: ' + portalPageGR.title.toString());

                // Step 4: Get Portal from Portal Page
                var pageWidgetGR = new GlideRecord('sys_portal');
                pageWidgetGR.addQuery('page', portalPageGR.sys_id);
                pageWidgetGR.orderBy('name');
                pageWidgetGR.query();
                while (pageWidgetGR.next()) {
                    // gs.print('  → Portal: ' + pageWidgetGR.sys_id);
                   
                    // Step 5: Get the report from Portal Preferences
                    var paWidgetGR = new GlideRecord('sys_portal_preferences');
                    paWidgetGR.addQuery('portal_section', pageWidgetGR.sys_id);
                    paWidgetGR.addQuery('name', 'sys_id');
                    paWidgetGR.orderBy('name');
                    paWidgetGR.query();
                    while (paWidgetGR.next()) {
                        // gs.print('    → Report: ' + paWidgetGR.value);
                        var value = paWidgetGR.value.toString();
                        if (!reports.includes(value)) {
                            reports.push(value);
                        }
                        // reports.push(paWidgetGR.value.toString());
                    }
                }
            }
        }
    }
} else {
    gs.print(' PA Dashboard not found: ' + dashboardName);
}

gs.print(reports);
0 REPLIES 0