Script Include is not Working
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-29-2023 05:20 AM
Hi All,
I have a vm named 'vmName' from 'cmdb_ci_vmware_instance' table and I want to populate all the key & values from table 'cmdb_key_value' related to vmName in a field named 'tags' in a catalog item. I want script include to fetch the key & value from cmdb_key_value table for vmName in servicenow.
Issue: Script works in Background Script but does not give result when pasted in Script include. Below are the scripts.
Background Script : (working)
var vmName = '1234567890ab65ajsdh826hsk';
var keyValues = [];
var cmdbKeyGr = new GlideRecord('cmdb_key_value');
cmdbKeyGr.addQuery('configuration_item', vmName); // Update the field name here
cmdbKeyGr.query();
while (cmdbKeyGr.next()) {
var key = cmdbKeyGr.key.toString();
var value = cmdbKeyGr.value.toString();
keyValues.push({ key: key, value: value });
}
// Log each object separately for better readability
for (var i = 0; i < keyValues.length; i++) {
gs.log('Key: ' + keyValues[i].key + ', Value: ' + keyValues[i].value);
}
Script Include (return null value)
Tags: function() {
var cmdbKeyGr = new GlideRecord('cmdb_key_value');
cmdbKeyGr.addQuery('sys_id', this.getParameter('sysparm_vmname'));
cmdbKeyGr.query();
while (cmdbKeyGr.next()) {
var key = cmdbKeyGr.key.toString();
var value = cmdbKeyGr.value.toString();
keyValues.push({key: key,value: value});
}
// Log each object separately for better readability
for (var i = 0; i < keyValues.length; i++) {
gs.log('Key: ' + keyValues[i].key + ', Value: ' + keyValues[i].value);
return ('Key: ' + keyValues[i].key + ', Value: ' + keyValues[i].value);
}
},
Client Script
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var a = g_form.getValue('vm_name');
var ga = new GlideAjax('SRO_Catalog_Items');
ga.addParam('sysparm_name', 'Tags');
ga.addParam('sysparm_vmName', a);
ga.getXML(settags);
function settags(response) {
var b = response.responseXML.documentElement.getAttribute("answer");
alert(b);
g_form.setValue('current_tags', b);
}
}
Desired Output:
*** Script: Key: BusinessServiceName, Value: BSN1023
*** Script: Key: CostAllocation, Value: BSN456
*** Script: Key: Environment, Value: dev
*** Script: Key: Service Now Type, Value: appliance
Kindly, provide inputs if any correction required.