ServiceNow Tips and Tricks from commands to scripts from Covestic‘s  Kenny Wimberly, ServiceNow Sr Solutions Architect. 

Kenny has shared with us a few helpful tips that he uses often.

Canceling a transaction

    • Area – whole platform
    • Type – browser URL command
    • <servicenow instance url>/cancel_my_transaction.do
    • What it does is stop a transaction that you have running on the front end. For example, you open a list of records (sys_audit, Syslog, task) that takes an incredible amount of time. Then, you attempt to cancel with the provided on-screen timer that allows you to cancel supposedly. Unfortunately, it does not work or hangs on “canceling.” This will allow you to override and cancel your long-running transaction.

Navigator commands (these are just the most common ones I use; send more later)

    • Area – Navigator
    • Type – Navigator shortcut command
    • Commands:
      • <table name>.filter – allows you to open a list view for a table and only show the filter. I use this for huge tables like task, sys_audit, Syslog, etc.

      • <table name>.FILTER – does the same as above but opens in a new tab
      • <table name>.do – opens a new record on the table. I use this when I need to circumvent the absence of a New button for a table list.

      • <table name>.list – opens a table list (everyone pretty much knows this one

Decoding a ServiceNow URL in the script

    • Area – Client-side Scripting
    • Type – Script
    • This is used to decode a ServiceNow URL, which is not necessarily possible by simply using a decoder because it’s encoded twice. Therefore you must decode it twice.
      • For example, you have a URL that looks like this: ‘https://instance.service-now.com/nav_to.do?uri=%2Fsc_req_item_list.do%3Fsysparm_query%3Dcat_item%253D7e4c1e001b90f450bdf62173b24bcb6f%255Estate!%253D3%255EORstate%253DNULL%26sysparm_first_row%3D1%26sysparm_view%3D’
      • If you want to get the cat_item sys_id by parsing the URL, you would not be able to decode the URL simply. Instead, you must double-decode to get the actual value. Initial decoding removes the URL encoding, but you must remove the ServiceNow encoding for the query parameter.
      • Sample script to do this:
        • var url = ‘https://instance.service-now.com/nav_to.do?uri=%2Fsc_req_item_list.do%3Fsysparm_query%3Dcat_item%253D7e4c1e001b90f450bdf62173b24bcb6f%255Estate!%253D3%255EORstate%253DNULL%26sysparm_first_row%3D1%26sysparm_view%3D’;
        • var urlx = decodeURIComponent(url);
        • gs.info(decodeURIComponent(urlx));
      • Now you have a clean URL for which you can parse the parameters and get the value you need

 

Keyboard Shortcut for javascript on-screen execution tool

    • Area – Internal SN UI (not portal)
    • Type – Keyboard shortcut
    • I use this to test certain client-side code or to manipulate forms for debugging.
    • Shortcut – ctrl+shift+j
    • This is great for using  in list views and form views

Getting all values of a GlideRecord in a server-side script:

  • Area – Server-side scripting
  • Type – Script
  • Purpose: When you need to pull all values from a GlideRecord into a client script or some other place that doesn’t have access to a dot-walk. This can be used in many scenarios.
  • Script:
    • //get all values of a GlideRecord
    • var gr = new GlideRecord(‘<table>’);
    • gr.get(‘<sys_id>’);
    • for (var i in gr) {
    •   gs.info(i + ‘:’ + gr[i]);
    • }