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

Please check, Is there associated support group for this "PeopleSoft Financials" there or not?

 

Also, add logs in script include above the return line

       gs.log("*** Support group sys_id: " + gr.getValue("support_group"));

 

Check the script logs once changed the affected CI.

 

Note - For testing, reload the form and change the Affected CI.

 

Thanks!

Sagar Pagar

 

The world works with ServiceNow

ya trying it out 

I just tried on my instance. It is working fine.

 

 

Thanks!

Sagar Pagar

The world works with ServiceNow

The code looks fine, you cinfigs are all in global so shouldn't be an issue.

Try adding alerts in your client script and gs.info in your script include and check what are the values you are getting at each step,

Put alert for the client script line 5 -> alert(newValue); and line 12 -> alert(answer);

Put gs.info in script include line 5-> gs.info("J  cmdbCI = "+cmdbCI );

                      line 8-> gs.info("J supportgroup = "+gr.getValue("support_group"));

 

Also, check if there is a support group in the CI that you are selecting

 

Also, replace line 7

 ga.addParam('sysparm_cmdb_ci', newValue);
Best Regards
Aman Kumar

Surprise to see on change is not working either

no alert msgs šŸ˜ž

I get the same log error as before

find_real_file.png

 

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

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

 

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

popAssignmentGroup: function() {
var cmdbCI = this.getParameter('sysparm_cmdb_ci');
gs.info("J CMDBCI" + cmdbCI);
var gr = new GlideRecord('cmdb_ci');
if (gr.get(cmdbCI)) {
gs.info("support infor" + gr.getValue("support_group"));
return gr.getValue("support_group");
}
return;
},

type: 'PopulateDemo'
});