- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-19-2022 04:50 AM
Hi All,
I am filtering out the values from list collector (list_of_devices) which is referencing alm_asset table and another reference is location. So, i want to show only those assets which are from that location.
I have created a client script and a script include. I am able to return the sys_id from script include to client script but not able to set them in list collector. Below is my code:
Script include:
getSiteAssets: function() {
var arr_name = [];
var OtoO = this.getParameter('sysparm_type');
var ast = new GlideRecord('alm_asset');
ast.addQuery('location', OtoO);
ast.query();
while (ast.next()) {
arr_name.push(ast.getUniqueValue());
}
return arr_name.toString();
},
Client script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('SiteDependentAssets');
ga.addParam('sysparm_name', 'getSiteAssets');
ga.addParam('sysparm_type', newValue);
ga.getXML(parseData);
function parseData(response) {
var answer = response.responseXML.documentElement.getAttribute('answer');
alert(answer);
g_form.setValue('list_of_devices', answer);
}
}
Please help.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-20-2022 02:17 AM
inform business that this is not feasible.
Either tell them
1) you will filter the list collector based on location and let user select the location to right bucket
OR
2) you will set the right bucket with the available assets for location selected and let user remove if they wish to
If my response helped you please mark it correct to close the question so that it benefits future readers as well.
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-19-2022 05:00 AM
Hi Tanwir,
Please try below,
script include
getSiteAssets: function() {
var sysIDs="";
var OtoO = this.getParameter('sysparm_type');
var ast = new GlideRecord('alm_asset');
ast.addQuery('location', OtoO);
ast.query();
while (ast.next()) {
if(sysIDs=="")
sysIDs=ast.sys_id.toString();
else
sysIDs=sysIDs+","+ast.sys_id.toString();
}
return sysIDs;
},
Client script
var ga = new GlideAjax('SiteDependentAssets');
ga.addParam('sysparm_name', 'getSiteAssets');
ga.addParam('sysparm_type', newValue);
ga.getXML(parseData);
function parseData(response) {
var answer = response.responseXML.documentElement.getAttribute('answer');
g_form.setValue('list_of_devices', answer);
}
Let me know if you have any further queries.
Please mark this as Correct or helpful if it helps.
Thanks and Regards,
Abhijit
Regards,
Abhijit
ServiceNow MVP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-19-2022 05:08 AM
Hey Abhijit,
I tried your code and still not working.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-19-2022 05:21 AM
Hey
Could you please let us know what value are you getting in alert if you put in client script as below?
alert(answer);
One more question, are you writing this in on change client script?
Thanks and Regards
Abhijit
Regards,
Abhijit
ServiceNow MVP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-19-2022 05:40 AM