client script with glide ajax is not working

dvass0107
Tera Contributor

Hi Friends,

I have written a Script include made client callable with glide ajax. I am trying to fetch the caller manager into short description , when caller is changed. But its give the below error.

onChange script error: TypeError: gax.addParm is not a function function () { [native code] }

 

Client Script:

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
   if (isLoading || newValue === '') {
      return;
   }

   //Type appropriate comment here, and begin script below
   var ga = new GlideAjax("GetManager");
   ga.addParam("sysparm_name", "callerMgr");
   ga.addParam("sysparm_caller", g_form.getDisplayValue('caller_id')); // instead I have tried with newValue also but same error
   ga.getXMLAnswer(callFunc);
   function callFunc(response){
    var answer = response;
    if (answer) {
        var shortDesc = g_form.getValue('short_description');
        g_form.setValue('short_description','Manager'+answer+ ' - '+shortDesc);
    }
   }
   
Script Include;
 
var GetManager = Class.create();
GetManager.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    callerMgr: function() {
        var gx = this.getParameter('sysparm_caller');
        var gr = new GlideRecord("sys_user");
        if (gr.get(gx)) {
            return gr.manager.name.toString();
        }

        return '';
    },
    type: 'GetManager'
});
  Can you please help me on this?
}
12 REPLIES 12

Hi Juhi,

Sorry for late reply, I am revisiting this as I had to look into other priority work.

As you said there was another script having gax as a variable, which I have disabled and tried. Now that error is not coming. But short description is not updating with new caller name.

 

Regards,
Srinivas

 

Hello @dvass0107 

Please share your script and what you have done so far.

 

Thank You 

Juhi Poddar 

Hi Juhi,

PFB code:

Client script:

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
   if (isLoading || newValue === '') {
      return;
   }

   var ga = new GlideAjax("GetManager");
   ga.addParam("sysparm_name", "callerMgr");
   ga.addParam("sysparm_caller", newValue); // use sys_id directly here
   ga.getXMLAnswer(function(response){
      if (response) {
         var shortDesc = g_form.getValue('short_description');
         g_form.setValue('short_description', 'Manager ' + response + ' - ' + shortDesc);
      }
   });
 
Script Include:
var GetManager = Class.create();
GetManager.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    callerMgr: function() {
        var gx = this.getParameter('sysparm_caller');
        var gr = new GlideRecord("sys_user");
        if (gr.get(gx)) {
            return gr.manager.name.toString();
        }

        return '';
    },
    type: 'GetManager'
});

Hello @dvass0107 

Please try this onchange client script:JuhiPoddar_0-1748022273757.png

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }

    //Type appropriate comment here, and begin script below
    var ga = new GlideAjax("GetManager");
    ga.addParam("sysparm_name", "callerMgr");
    ga.addParam("sysparm_caller", newValue);
    ga.getXMLAnswer(function(response) {
        if (response) {
			//g_form.addInfoMessage("response received");
            var shortDesc = g_form.getValue('short_description');
            g_form.setValue('short_description', 'Manager ' + response + ' - ' + shortDesc);
            //g_form.addInfoMessage(g_form.getValue('short_description'));
        }
    });
}

Script include:

JuhiPoddar_1-1748022439471.png

var GetManager = Class.create();
GetManager.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    callerMgr: function() {
        var callerId = this.getParameter('sysparm_caller');
        var gr = new GlideRecord("sys_user");
        if (gr.get(callerId) && gr.manager) {
            return gr.manager.getDisplayValue(); // safer than .name
        }
        return '';
    },
    type: 'GetManager'
});

 Result:

JuhiPoddar_2-1748022520942.png

Note: 

  • Make sure the new callers manager field is not empty.
  • Script Include is client callable/ Glide AJAX Enabled. If not then create a fresh new script include with client callable/ Glide AJAX Enabled checked.

This is tested in my PDI, and it worked for me.

Hope this helps!

 

"If you found my answer helpful, please like and mark it as an "accepted solution". It helps future readers to locate the solution easily and supports the community!"

 

Thank You
Juhi Poddar

Hi Juhi,

PFB code:

Client Script:

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
   if (isLoading || newValue === '') {
      return;
   }

   var ga = new GlideAjax("GetManager");
   ga.addParam("sysparm_name", "callerMgr");
   ga.addParam("sysparm_caller", '0a826bf03710200044e0bfc8bcbe5d7a'); // use sys_id directly here
   ga.getXMLAnswer(function(response){
      if (response) {
         var shortDesc = g_form.getValue('short_description');
         g_form.setValue('short_description', 'Manager ' + response + ' - ' + shortDesc);
      }
 
Script include:
var GetManager = Class.create();
GetManager.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    callerMgr: function() {
        var gx = this.getParameter('sysparm_caller');
        var gr = new GlideRecord("sys_user");
        if (gr.get(gx)) {
            return gr.manager.name.toString();
        }

        return '';
    },
    type: 'GetManager'
});