Skip to main content

AJAX call example 1a: return multiple values (Using JSON)

AJAX call example 1a: return multiple values (Using JSON)

 alternative approach to returning multi values on Ajax call


client script

try{ if (newValue == '') { return; } var ga = new GlideAjax('UserClientScriptUtil'); ga.addParam('sysparm_name', 'getUserDetails'); ga.addParam('sysparm_user_sysid', g_form.getValue('Requested_for')); ga.getXML(function processdata(response) { var answer = response.responseXML.documentElement.getAttribute("answer"); if (answer) { answer = JSON.parse(answer); g_form.setValue('Email_Address',answer.displayEmail); g_form.setValue('phone_number', answer.phone); g_form.setValue('department_details', answer.department); g_form.setValue('line_manager', answer.manager); g_form.setValue('location_details', answer.location); g_form.setValue('cost_center', answer.costCenter); } }); } catch(err) { alert('Error in client script: Get User Details\nError name: ' + err.name + '\nError message: ' + err.message); }



AJAX:

var UserClientScriptUtil = Class.create(); UserClientScriptUtil.prototype = Object.extendsObject(AbstractAjaxProcessor, { getUserDetails: function() { var caller = this.getParameter('sysparm_user_sysid'); var returnUserObj = {}; // Declaring an object var userRec = new GlideRecord('sys_user'); userRec.addQuery('sys_id',caller); userRec.query(); //Record found if (userRec.next()){ //name returnUserObj.name = userRec.getValue('name'); returnUserObj.firstName = userRec.getValue('first_name'); returnUserObj.lastName = userRec.getValue('last_name'); //email returnUserObj.email = userRec.getValue('email'); // Adding properties returnUserObj.displayEmail = userRec.getDisplayValue('email'); //phone returnUserObj.phone = userRec.getValue('phone'); // Adding properties returnUserObj.displayPhone = userRec.getDisplayValue('phone'); //Department returnUserObj.department = userRec.getValue('department'); returnUserObj.displayDepartment = userRec.getDisplayValue('department'); //Cost Center returnUserObj.costCenter = userRec.getValue('cost_center'); returnUserObj.displayCostCenter = userRec.getDisplayValue('cost_center'); //Manager returnUserObj.manager = userRec.getValue('manager'); returnUserObj.displayManager= userRec.getDisplayValue('manager'); //Location returnUserObj.location = userRec.getValue('location'); returnUserObj.displayLocation = userRec.getDisplayValue('location'); //VIP Flag returnUserObj.vip = userRec.getValue('vip'); return (JSON.stringify(returnUserObj)); } else return; }, type: 'UserClientScriptUtil' });

Comments

Popular posts from this blog

ServiceNow check for null or nil or empty (or not)

Haven't tested these all recently within global/local scopes, so feel free to have a play! option 1 use an encoded query embedded in the GlideRecord , e.g.  var grProf = new GlideRecord ( 'x_cls_clear_skye_i_profile' ); grProf . addQuery ( 'status=1^ owner=NULL ' ); grProf . query (); even better use the glideRecord  addNotNullQuery or addNullQuery option 2 JSUtil.nil / notNil (this might be the most powerful. See this link ) example: if ( current . operation () == 'insert' && JSUtil . notNil ( current . parent ) && ! current . work_effort . nil ())  option 3 there might be times when you need to get inside the GlideRecord and perform the check there, for example if the code goes down 2 optional routes depending on null / not null can use gs.nil : var grAppr = new GlideRecord ( 'sysapproval_approver' ); var grUser = new GlideRecord ( 'sys_user' ); if ( grUser . get ( 'sys_id' , current . approver )){

Get URL Parameter - server side script (portal or classic UI)

Classic UI : var sURL_editparam = gs . action . getGlideURI (). getMap (). get ( ' sysparm_aparameter ' ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); } Portal : var sURL_editparam = $sp . getParameter ( " sysparm_aparameter " ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); }