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