"Show Contents of g_scratchpad" Tool
Included in the Developer Toolbox Update Set available on Share (link to Share in the post).
We are adding quite a bit of information to the g_scratchpad object on a project I'm involved with at the moment so I decided to create a quick tool to help us see what all ends up there. It's a simple client-side Related Link UI Action that pops up a window with the current contents:
Here's the configuration for the UI Action:
Name: Show Contents of g_scratchpad
Table: Global
Order: 200,000
Action name: u_fpc_show_contents_of_g_scratchpad
Active: checked
Show insert: checked
Show update: checked
Client: checked
Form link: checked
Messages: u_fpc_show_contents_of_g_scratchpad.modal.title
Hint: Displays the contents of the g_scratchpad object in a popup window (FPC)
Onclick: uFpcShowContentsOfGScratchpad()
Condition: gs.hasRole("admin")
Script:
function uFpcShowContentsOfGScratchpad(){
var newLine = "\n";
var scratchPad = [];
var items = Object.keys(g_scratchpad);
items.sort(); //sort the item names alphabetically in case they are not already
var numberOfItems = items.length;
for (var i = 0; i < numberOfItems; i++) {
scratchPad.push(items[i] + " = " + JSON.stringify(g_scratchpad[items[i]]));
}
//encode the string so it can be passed to the UI Page properly and then decoded there
scratchPad = encodeURIComponent(scratchPad.join(newLine));
//open the dialog window
var gdw = new GlideDialogWindow("u_fpc_simple_copy_paste");
gdw.setTitle(getMessage("u_fpc_show_contents_of_g_scratchpad.modal.title"));
gdw.setSize(650, 500);
gdw.setPreference("sysparm_text", scratchPad);
gdw.render();
}
The UI Action requires the "Simple Copy/Paste" UI Page to actually display the information.
I've attached the XML files for both the UI Action and the UI Message if you want to just import them into your instance.
https://www.servicenow.com/community/developer-blog/quot-show-contents-of-g-scratchpad-quot-tool/ba-p/2273662