Script Include is not Working

Rakshanda Kunte
Tera Contributor

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. 

0 REPLIES 0