ServiceNow Scripting Interview Questions 2025

What is the difference between Fix Script and Background Script?

1. We can check progress for Fix Script but not for Background Script.

2. We can kill running fix scripts in between but background script we cannot(Unless we go to Active Transactions via other session and kill it).

3. We can run Fix Script in background but Background script only runs in foreground.Foreground means the current session will be blocked until script execution gets completed, background process means you can keep on working on other stuffs while script runs in background.

4. Background script cannot be run for Scoped Application but Fix Script can be.

What is the purpose of setWorkflow() method?

The purpose of setWorkflow method is to enable/disable the running of further business rules that may be triggered by current update.

What is difference between initialise and newRecord method while inserting new record?

initialize(): Creates record with empty default field values.

newRecord(): creates a GlideRecord, set the default values for the fields and assign a unique id to the record.

Example :

Output :

What is the use of get method in Glide record?

The ‘get’ method is used to return first record in the result set.

The ‘get’ method can also be used when you know the sys_id of that record. It returns Boolean values based on the result.

Example 1:

var grIncident=new GlideRecord('incident');
if(grIncident.get('9e7f9864532023004247ddeeff7b121f')){
gs.print('There exist incident with sys_id 9e7f9864532023004247ddeeff7b121f');
}else{ gs.print('There is no incident with sys_id 9e7f9864532023004247ddeeff7b121f');
}

Example 2:

var grIncident=new GlideRecord('incident');
if(grIncident.get('number','INC0000601')){
gs.print('There exist incident with number INC0000601');
}else{ gs.print('There is no incident with number INC0000601');
}

How can we update records without updating system fields like Updated, Created, etc. for a particular update?

The autoSysFields is used to disable the update of ‘sys’ fields (Updated, Created, etc.).

Example Script:

var gr = new GlideRecord('incident');
gr.addQuery('category', hardware);
gr.query();
while(gr.next()){
gr.autoSysFields(false);
gr.category = 'software';
gr.update();
}

What is the necessity of script action if we already have script include to write server side script?

Script Actions are executed asynchronously while Script Includes are executed synchronously.

If there is scenario where script execution is going to take longer time then it's always better to go with Script Actions as user don't need to wait for script execution completion.

How to stop form submission on Client and Server side?

On client side, we can use 'return false'.

On server side, we use the function 'current.setAbortAction(true)'.

What are the private function in script include and how to define them?

Function names starting with underscore are considered as private functions. These functions can be called only in same script include or extended/inherited script include.

Assignment for you:

1. What is the difference between getXML(), getXMLAnswer() and getXMLWait() in GlideAjax? What are the drawbacks of using getXMLWait() function?

2. What is the best way to find difference between datetime on server side and client side?

3. How to copy attachments from one record to another?


Prepared and confident for your interview?

Practice makes perfect! Test your skills with our virtual interview practice buddy and ensure you're fully ready for your upcoming interview.

🎯 Start Practicing

User Added Interview Question and Answers

SRX 2024-07-07 08:07:42

In ServiceNow, to write a background script that closes a related RITM (Request Item) when the corresponding SC Task is closed

0 Helpfuls


Dinesh Kumar 2024-01-27 07:07:03

GlideQuery() and GlideFilter() usage


Bhargav 2024-07-21 19:56:24
The GlideQuery API is an alternative to GlideRecord to perform CRUD operations on record data from server-side scripts. The GlideFilter API is case-sensitive by default where as GlideRecord and GlideQuery queries are case-insensitive. Use the setCaseSensitive() method to enable or disable case sensitivity when using GlideFilter.
0 Helpfuls
0 Helpfuls


Suneel Kumar 2023-07-07 06:32:39

How to copy attachments from one record to another? You can use glide function. GlideSysAttachment.copy('from table', current.sys_id, 'to table', dmnd.sys_id);


Navaneetha 2024-11-13 22:29:15
GlideSysAttahment.copy('source tablename', 'source table sys_id', 'target tablename', target table sys_id');
0 Helpfuls
Astik Thombare 2024-12-11 10:48:51
var attachment = new GlideSysAttachment(); var incidentSysID = 'ab1b30031b04ec101363ff37dc4bcbfc'; var incGR = new GlideRecord('incident'); incGR.get(incidentSysID); var copiedAttachments = attachment.copy('incident', incidentSysID, 'problem', incGR.getValue('problem_id')); gs.info('Copied attachments: ' copiedAttachments);
0 Helpfuls
2 Helpfuls


Satya 2023-06-15 00:44:42

What is cleanup scripts?


Suneel Kumar 2023-07-07 06:34:00
Cleanup scripts automatically run on the target instance after the cloning process finishes. Use cleanup scripts to modify or remove bad data. Cleanup scripts run after data preservers and the clone are complete.
0 Helpfuls
0 Helpfuls


Satyapriya Biswal 2023-04-05 05:35:29

Why we don't use initialize function in scriptinclude while calling it from a client script using GlideAjax


Prashant 2023-04-06 00:43:08
Hi SatyaPriya, The primary use of initialize function in script include is to set default values to variables which can later be used anywhere in script include. We don't need this in client callable script include as the data which we need is normally sent via client script while using GlideAjax. Note :ServiceNow automatically removes initialize function whenever we check client callable checkbox in script include.
0 Helpfuls
Prasad Dhumal 2023-10-14 22:21:33
When a Client Callable Script Include is created the prototype extends from the "AbstractAjaxProcessor" Class and "initialize: function() {}" will not be added since it is already in the AbstractAjaxProcessor.prototype. If we add "initialize: function() {}" into the Client Callable Script Include manually, the GlideAjax call won't work since it overrides the initialize function in the AbstractAjaxProcessor.prototype and request, responseXML, gc objects used in the Ajax call are not available
1 Helpfuls
0 Helpfuls






🚀 Power Up Your ServiceNow Career

Join a growing community of smart ServiceNow professionals to stay ahead in interviews, sharpen your development skills, and accelerate your career.

Fuel My Passion

Loving the content? Well, of course you are. Here’s your chance to indirectly fuel the chaos that keeps this website running. Your contribution helps keep the wheels turning and allows me to continue pretending to be a responsible adult—while cranking out more content for you. Thanks for supporting my delusional dreams and helping me keep this website alive!


Buy Me a Coffee

Support with UPI

If you prefer making a UPI payment to support the website maintenance cost, scan the QR code below:

UPI QR Code

Comments