GlideAjax query

J_31
Kilo Sage

Hi 

I am not sure why the value is not populated when I change the configuration item field value in Incident form . it updates when is save. Its suppose to update when I change the value in CI field.

Script Include

--------------------

var PopulateDemo = Class.create();
PopulateDemo.prototype = Object.extendsObject(AbstractAjaxProcessor, {

popAssignmentGroup : function()
{
var gr = new GlideRecord('cmdb_ci');
gr.addQuery('sys_id',this.getParameter('sysparm_cmdb_ci'));
gr.query();
if(gr.next())
{
return gr.support_group;
}
},

type: 'PopulateDemo'
});

Client Script

-----------------

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var ga = new GlideAjax('PopulateDemo');
ga.addParam('sysparam_name','popAssignmentGroup');
ga.addParam('sysparam_cmdb_ci',g_form.getValue('cmdb_ci'));
ga.getXML(getResponse);

function getResponse(response)
{
var answer = response.responseXML.documentElement.getAttribute("answer");
g_form.setValue('assignment_group',answer);
}

//Type appropriate comment here, and begin script below

}

1 ACCEPTED SOLUTION

Aman Kumar S
Kilo Patron

Hey,

Try Below:

Client script:

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }
    var ga = new GlideAjax('PopulateDemo');
    ga.addParam('sysparm_name', 'popAssignmentGroup');
    ga.addParam('sysparm_cmdb_ci', g_form.getValue("cmdb_ci"));
    ga.getXML(getResponse);

    function getResponse(response) {
        var answer = response.responseXML.documentElement.getAttribute("answer");
	g_form.setValue('assignment_group', answer);
    }


}

 

Script Include

var PopulateDemo = Class.create();
PopulateDemo.prototype = Object.extendsObject(AbstractAjaxProcessor, {

popAssignmentGroup : function(){
   var cmdbCI = this.getParameter('sysparm_cmdb_ci');
   var gr = new GlideRecord('cmdb_ci');
   if(gr.get(cmdbCI){
      return gr.getValue("support_group");
   }
 return;
},

type: 'PopulateDemo'
});

 

Feel free to mark correct, If I answered your query.

Will be helpful for future visitors looking for similar questions šŸ™‚

Best Regards
Aman Kumar

View solution in original post

26 REPLIES 26

I made changes to field name as a_cmdb_ci to not to get confused with querying the table. I am updating the code and trying it out;

so

var cmdbCI = this.getParameter('sysparm_a_cmdb_ci');

ga.addParam('sysparm_a_cmdb_ci', g_form.getValue("a_cmdb_ci"));

 

var cmdbCI = this.getParameter('sysparm_cmdb_ci');
 ga.addParam('sysparm_cmdb_ci', g_form.getValue("cmdb_ci"));

find_real_file.png

If you updated field name, then client script. Your script should be

 

    ga.addParam('sysparm_cmdb_ci', g_form.getValue("a_cmdb_ci"));  // parameter should be starts with sysparm_

 

Thanks!

Sagar Pagar

The world works with ServiceNow

thanks I made the changes as mentioned still no result

After adjusting your field names, are you facing any issue with results?

Best Regards
Aman Kumar

No change!!

Its not populating; should I make any system property setting for glideajax to work? it didn't work for Needit exercise too. I don't know what mistake I am doing here,

I pasted the screen below

find_real_file.pngfind_real_file.pngfind_real_file.png