Select the Devices into list collector based on Requested For field.
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-30-2024 12:25 PM
Hi Everyone,
Requiremnt: I have created the catalog item. Once the "Requested For" is selected, the "Assigned Asset" of this "Requested For" will be auto-populated in the "Test" field.
I have written the Below client callable script include and On-change Catalog Client script. However, it is not working as expected. Could you please help me on this?
Script Include:
var GetAssetDetails = Class.create();
GetAssetDetails.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getAssets: function() {
var requestedFor = this.getParameter('sysparm_requestedFor');
var assetList = [];
var gr = new GlideRecord('alm_asset');
gr.addQuery('assigned_to', requestedFor);
gr.query();
while (gr.next()) {
assetList.push(gr.sys_id.toString());
}
return new JSON().encode(assetList);
},
type: 'GetAssetDetails'
});
Catalog Client Script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('GetAssetDetails');
ga.addParam('sysparm_name', 'getAssets');
ga.addParam('sysparm_requestedFor', g_form.getValue('requested_for'));
ga.getXMLAnswer(function(response) {
if (response) {
var assetSysIds = JSON.parse(response);
if (assetSysIds.length > 0) {
g_form.setValue('test', assetSysIds.join(','));
} else {
g_form.setValue('test', '');
}
} else {
alert('No response from server');
}
});
}
Thanks,
Rajesh