Passing Array to Script Include from client Script
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-03-2019 03:33 PM
Hi,
I am passing sys_id of selected records in list collector to script include. but Script Include is not able process input passed from client script.
#Client Script
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var list = g_form.getValue('list_collector');
var elements = list.split(',');
alert(elements);
var ga = new GlideAjax('SCCatalogHelper'); // Script include : FPSCHelperClient
ga.addParam('sysparm_name', 'getHostServersList'); // Function to be called in Script Include : GetUserInfo
ga.addParam('sysparm_cmdbciSysId', elements); // set UserId parameter
ga.getXML(updateFields);
}
function updateFields(response)
{
var answer = response.responseXML.documentElement.getAttribute("answer");
alert(answer);
}
#Script Include:
getHostServersList: function()
{
var result = [];
var array = this.getParameter('sysparm_cmdbciSysId').toString().split(",");
return array;
},
I have attached output from screen.
Appreciate your help.
Thank You
Kiran Patil

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-19-2019 06:16 PM
Send it as a string and return it as a string.
ServiceNow Nerd
ServiceNow Developer MVP 2020-2022
ServiceNow Community MVP 2019-2022

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-15-2019 04:41 AM
Hi Kiran Patil
Today I am working on the same requirement. The below screenshot matches exactly to your requirements.
Don't Split array on client-side, split it in server-side, it is very easy to manage.
please refer below code.
Catalog Client Script:
function onChange(control, oldValue, newValue, isLoading)
{
if (isLoading || newValue == '')
{
return;
}
var some,i;
//var a = g_form.getDisplayBox('select_ci_list').value;
//alert(a);
var ab = g_form.getValue('select_ci_list');
var ga= new GlideAjax('MultipleCIinclude');
ga.addParam("sysparm_name","abcdefg");
ga.addParam("sysparm_ci_name",newValue);
ga.getXMLWait();
g_form.setValue("env",ga.getAnswer());
// function XYZ(response)
// {
// var answer1 = response.responseXML.documentElement.getAttribute("answer");
// alert("answer1"+answer1);
// // var data= [];
// // data = JSON.parse(answer1);
// // alert("Data"+data);
// }
}
Script include:
var MultipleCIinclude = Class.create();
MultipleCIinclude.prototype = Object.extendsObject(AbstractAjaxProcessor,
{
abcdefg:function()
{
//gs.addInfoMessage("Welcome !");
var ciid,i,j;
var arr={};
var envlist=[];
//var envarr={};
var cilist= this.getParameter('sysparm_ci_name');
arr=cilist.split(',');
for(i=0;i<arr.length;i++)
{
var gr= new GlideRecord('cmdb_ci_server');
gr.addQuery('sys_id',arr[i]);
gr.query();
while(gr.next())
{
ciid=gr.used_for;
//gs.addInfoMessage(gr.getDisplayName(arr[i])+"--"+ciid);
envlist[i]=ciid;
}
}
for(j=0;j<envlist.length;j++)
{
gs.addInfoMessage(envlist[j]);
}
return envlist.toString();
//gs.addInfoMessage(envlist.length);
// var jsonCampi = JSON.stringify(envlist);
// return jsonCampi;
},
type: 'MultipleCIinclude'
});