GlideAjax getXMLWait() not working

adilbelahbib
Kilo Expert

Hey,

I'm trying to run simple script on a UI action that gets the group of the connected user. I created the script include and I used it in many other places using Ajax Asynchronous calls. However, when I tried to call it using a synchronous call, I got a 'null' result, as if the script doesn't wait for the answer to come.

Here's is a snippet from my UI Action containing the ajax call.

  var ajax = new GlideAjax('GetAssignementGroup');

  ajax.addParam('sysparm_name', 'getGroup');

  ajax.getXMLWait();

  var group = ajax.getAnswer();

  alert(group); //Prints 'null'

As I said, I'm already using the same script include with asynchronous calls and it's working. Do you have any ideas ?

14 REPLIES 14

Maybe the scope is the issue then.   I always make global Script Includes so I don't ever run into issues.   I sincerely wish you luck in getting this figured out as I've exhausted my options and provided ample code that does in fact work.


The other thing you may want to do is throw in some "gs.log()" lines in your script include just to see first, if it's hitting the script include, and if it is, where it's breaking.


Thank you David, I really appreciate your efforts


xiaix
Tera Guru

Script Include (example):



var GetAssignementGroup = Class.create();


GetAssignementGroup.prototype = Object.extendsObject(AbstractAjaxProcessor, {




      getGroup: function()


      {


              var _sysID = 'sysID not found';


              var gr = new GlideRecord('sys_user_group');


              gr.addQuery('name', 'Name of Group I am looking for');


              gr.query();


              if (gr.next())


                      _sysID = gr.sys_id.toString();


                     


              return _sysID;


      }


});




Client Script (example):


function test()


{


  var ajax = new GlideAjax('GetAssignementGroup');


  ajax.addParam('sysparm_name', 'getGroup');


  ajax.getXMLWait();


  var group = ajax.getAnswer();


  //var answerArray = group.evalJSON();



  alert(group);


}


Syaharruddin
Mega Guru

Not sure if you found an answer to this issue. getXMLWait() doesn't work in scoped application and that's probably the culprit.



Scoped Applications and Client Scripts: A Primer