- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-16-2023 03:29 AM
Hi All,
I ma facing problem with pushing object into array its replacing all the Objects with the last object.
I am using onChange Client script and calling Script include and returning the Object to Client side
below are code snippets, please suggest
Script Inlcude
getItemDetails: function() {
//var reqNum = this.getParameter('req_ritmValue');
var req = this.getParameter('req_ritmValue');
gs.log('Request item sysid == ' + req);
var ItemObj = {};
var Itemdetails = [];
var getReqItem = new GlideRecord('sc_req_item');
getReqItem.addQuery('cat_item', req);
getReqItem.query();
while (getReqItem.next()) {
ItemObj.reqnumber = getReqItem.getValue('number');
ItemObj.reqrequest = getReqItem.getDisplayValue('request');
ItemObj.reqitem = getReqItem.getDisplayValue('cat_item');
Itemdetails.push(ItemObj);
}
gs.log('Oject == ' + JSON.stringify(Itemdetails));
return JSON.stringify(Itemdetails);
},
onchage Client Script:
var getRITMDetails = new GlideAjax('global.TestScript');
getRITMDetails.addParam('sysparm_name', 'getItemDetails');
getRITMDetails.addParam('req_ritmValue', newValue);
getRITMDetails.getXML(PopulateMRVS)
function PopulateMRVS(response) {
var result = response.responseXML.documentElement.getAttribute("answer");
//alert('Value == ' +JSON.stringify(result));
alert('Object == '+result)
}
Any help is much appreciated.
Thanks in Advance
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-16-2023 03:32 AM
@ursnani Please update your script as follows.
getItemDetails: function() {
//var reqNum = this.getParameter('req_ritmValue');
var req = this.getParameter('req_ritmValue');
gs.log('Request item sysid == ' + req);
var Itemdetails = [];
var getReqItem = new GlideRecord('sc_req_item');
getReqItem.addQuery('cat_item', req);
getReqItem.query();
while (getReqItem.next()) {
var ItemObj = {}; //Initalise the object here
ItemObj.reqnumber = getReqItem.getValue('number');
ItemObj.reqrequest = getReqItem.getDisplayValue('request');
ItemObj.reqitem = getReqItem.getDisplayValue('cat_item');
Itemdetails.push(ItemObj);
}
gs.log('Oject == ' + JSON.stringify(Itemdetails));
return JSON.stringify(Itemdetails);
},
This will solve the issue of object replication in array.
Please mark this answer helpful and correct if it manages to address your issue.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-16-2023 03:32 AM
@ursnani Please update your script as follows.
getItemDetails: function() {
//var reqNum = this.getParameter('req_ritmValue');
var req = this.getParameter('req_ritmValue');
gs.log('Request item sysid == ' + req);
var Itemdetails = [];
var getReqItem = new GlideRecord('sc_req_item');
getReqItem.addQuery('cat_item', req);
getReqItem.query();
while (getReqItem.next()) {
var ItemObj = {}; //Initalise the object here
ItemObj.reqnumber = getReqItem.getValue('number');
ItemObj.reqrequest = getReqItem.getDisplayValue('request');
ItemObj.reqitem = getReqItem.getDisplayValue('cat_item');
Itemdetails.push(ItemObj);
}
gs.log('Oject == ' + JSON.stringify(Itemdetails));
return JSON.stringify(Itemdetails);
},
This will solve the issue of object replication in array.
Please mark this answer helpful and correct if it manages to address your issue.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-16-2023 03:40 AM
Thanks for the quick reply and it did the trick.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-16-2023 03:35 AM - edited 10-16-2023 03:43 AM
Hi @ursnani
Try the below approach
getItemDetails: function() {
//var reqNum = this.getParameter('req_ritmValue');
var req = this.getParameter('req_ritmValue');
gs.log('Request item sysid == ' + req);
var Itemdetails = [];
var getReqItem = new GlideRecord('sc_req_item');
getReqItem.addQuery('cat_item', req);
getReqItem.query();
while (getReqItem.next()) {
var ItemObj = {};
ItemObj.reqnumber = getReqItem.getValue('number');
ItemObj.reqrequest = getReqItem.getDisplayValue('request');
ItemObj.reqitem = getReqItem.getDisplayValue('cat_item');
Itemdetails.push(JSON.stringify(ItemObj));
}
gs.log('Oject == ' + JSON.stringify(Itemdetails));
return JSON.stringify(Itemdetails);
},
var getRITMDetails = new GlideAjax('global.TestScript');
getRITMDetails.addParam('sysparm_name', 'getItemDetails');
getRITMDetails.addParam('req_ritmValue', newValue);
getRITMDetails.getXML(PopulateMRVS)
function PopulateMRVS(response) {
var result = response.responseXML.documentElement.getAttribute("answer");
var arrItem = JSON.parse(result);
for (var i in arrItem){
var item = JSON.parse(arrItem[i]);
alert(item);
}
}
Let me know if it works for you!
Cheers,
Tai Vu