Comment
Friedrich Gehri
Tera Expert
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
10-27-2022
07:05 AM
Thanks for this code. It helped very much.
However, on our instance it has been the case that the field 'page' has been empty at the dashboard tabs, but instead I had to use the field 'canvas_page' to find the related reportIDs. Then the rest of the script worked fine.
As this might help someone else as well, I will just paste the code here. You need to replace the part before the line
var shareUsers = [];with it:
var dashboardTabM2M = new GlideRecord('pa_m2m_dashboard_tabs');
dashboardTabM2M.addQuery("dashboard", current.sys_id);
dashboardTabM2M.query();
var canvas_pages = [];
while (dashboardTabM2M.next()) {
canvas_pages.push(dashboardTabM2M.tab.canvas_page.sys_id + "");
}
var portal_widgets = [];
canvas_pages.forEach(function(canvas_pageID) {
var grid_canvas_pane = new GlideRecord("sys_grid_canvas_pane");
grid_canvas_pane.addQuery("grid_canvas", canvas_pageID);
grid_canvas_pane.query();
while (portals.next()) {
portal_widgets.push(grid_canvas_pane.portal_widget + '');
}
});
var reportIds = [];
portal_widgets.forEach(function(portal_widgetIDs) {
var portals = new GlideRecord("sys_portal");
portals.addQuery("sys_id", portal_widgetIDs);
portals.query();
while (portals.next()) {
var pageProp = new GlideRecord("sys_portal_preferences");
pageProp.addQuery("portal_section", portals.getUniqueValue());
pageProp.addQuery("name", "sys_id");
pageProp.query();
if (pageProp.next()) {
reportIds.push(pageProp.getValue("value"));
}
}
});