getXMLAnswer() Use case

Manal Aquil
Tera Contributor

Hi Team,

 

Is getXMLAnswer() synchronous or asynchronous and please help me with a use case for getXMLAnswer() for better understanding . 

 

Thanks,

Manal 

6 REPLIES 6

raj149
Giga Guru

Hello @Manal Aquil 

 

The getXMLAnswer() method in ServiceNow is synchronous. This means that it waits for the server to respond before it continues with the execution of the rest of the script. Here is a use case for getXMLAnswer(): Let's say you want to retrieve the sys_id of a user record based on the user's email address. You can use the GlideAjax and getXMLAnswer() methods to achieve this.

1. Create a new script include that will be used by the GlideAjax call. This script include will contain a function that queries the user table and returns the sys_id of the user with the specified email address.

var GetUserSysId = Class.create();

GetUserSysId.prototype = Object.extendsObject(AbstractAjaxProcessor, {

getUserSysId: function() {

var userEmail = this.getParameter('sysparm_user_email');

var userGr = new GlideRecord('sys_user');

userGr.addQuery('email', userEmail);

userGr.query();

if (userGr.next()) {

return userGr.sys_id.toString();

}

return '';

},

type: 'GetUserSysId'

});

2. In your client-side script, you can now use GlideAjax to call the function in the script include and getXMLAnswer() to retrieve the result. 

var ga = new GlideAjax('GetUserSysId');

ga.addParam('sysparm_name', 'getUserSysId');

ga.addParam('sysparm_user_email', 'user@example.com');

ga.getXMLAnswer(function(answer) {

alert('The sys_id of the user is: ' + answer);

});

In this example, the getXMLAnswer() method is used to retrieve the sys_id of the user record returned by the server-side script include. The result is then displayed in an alert box.

Manal  AQUIL
Tera Contributor

Thanks, Community Members