Client Callable and Server Callable Script Includes (2024)

The problem

Script Includes in ServiceNow, in a very simplistic explanation, is a server side script that can be called from other server scripts, making them great for re-usability.

Client callable script includes in ServiceNow are typically combined with an ServiceNow API method called GlideAjax. It’s a method that handles the actual AJAX part of your script that sends and receives data between the client and the server.

Often, it’s easier to think of these things separately, but for ease of use, there’s often times we’d want to combine them.

Click here to jump straight to the solution

Example of Server Callable Script Includes

Script Include:

var My_Functions = Class.create();My_Functions.prototype = { initialize: function() { },log_info: function(x) {gs.info(x);return 'success';}, type: 'My_Functions'};


Code that calls script include function:

var y = new My_Functions().log_info('Testing');
  • y would be set to ‘success’
  • ‘Testing’ would be logged to the system (via gs.info())

Example of Client Callable Script Includes

Script Include (Set Client callable to true):

var My_Functions = Class.create();My_Functions.prototype = Object.extendsObject(AbstractAjaxProcessor, {log_info: function(){var results = {};var x = this.getParameter('sysparm_x');gs.info(x);results.message = 'success';return JSON.stringify(results);}, type: 'My_Functions'});


Code that calls the script include function:

function onChange(control, oldValue, newValue, isLoading) {if (isLoading || newValue == '') {return;}var ga = new GlideAjax('My_Functions'); ga.addParam('sysparm_name','log_info'); ga.addParam('sysparm_x', 'Testing'); ga.getXML(ResponseFunction); function ResponseFunction(response) { var answer = response.responseXML.documentElement.getAttribute("answer"); var results = JSON.parse(answer);alert(results.message);}}
  • An alert window would appear with the value of results.message which would be ‘success’
  • ‘Testing’ would be logged to the system (via gs.info())

Example of a single combined Script include

Script include (note the small changes in bold from the example client-callable script include):

var My_Functions = Class.create();My_Functions.prototype = Object.extendsObject(AbstractAjaxProcessor, {log_info: function(x0){var results = {};var x = this.getParameter('sysparm_x') || x0;gs.info(x);results.message = 'success';return JSON.stringify(results);}, type: 'My_Functions'});


Because of the small changes:

  • When called from client, it still sets x according to the .getParameter() function
  • When called from server, if passed a parameter, it first passes to the function then gets set to x because of the lack of parameters to retrieve.

Presto, a single function with parameters that can now be called either way.

Client Callable and Server Callable Script Includes (2024)
Top Articles
Latest Posts
Article information

Author: Ouida Strosin DO

Last Updated:

Views: 6529

Rating: 4.6 / 5 (76 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Ouida Strosin DO

Birthday: 1995-04-27

Address: Suite 927 930 Kilback Radial, Candidaville, TN 87795

Phone: +8561498978366

Job: Legacy Manufacturing Specialist

Hobby: Singing, Mountain biking, Water sports, Water sports, Taxidermy, Polo, Pet

Introduction: My name is Ouida Strosin DO, I am a precious, combative, spotless, modern, spotless, beautiful, precious person who loves writing and wants to share my knowledge and understanding with you.