How I can return this glideajax as JSON?

jussiaho
Kilo Contributor

There I have my solution which works and it returns the name, which is used in Portal side (to show for end-user).
Would like to

Script include:----------------------------------------------

var getApprover = Class.create();
getApprover.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getUser: function() {
var appover = this.getParameter('sysparm_sapPath');
var sapMap = new GlideRecord('u_sap_service_mapping_rules');

if(sapMap.get(appover))
return sapMap.u_sap_path_approver.name; // I would like to get the NAME and sys_id values by one script include. Tried but no working? Can paste not-working solution below. 

return '';
},

type: 'getApprover'

});
Script include:----------------------------------------------

 Catalog client script:---------------------

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

var gr = new GlideAjax('getApprover');
gr.addParam('sysparm_name','getUser');
gr.addParam('sysparm_sapPath',g_form.getValue('sap_po_form_po_folder'));
gr.getXML(updateApprover);

function updateApprover(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");

/*
g_form.setValue('sap_folder_approver', answer);
}

//Type appropriate comment here, and begin script below

 Catalog client script:---------------------

 

 

Here is how I tried to fetch the data like JSON:

 Catalog client script:---------------------

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

var gr = new GlideAjax('getApprover');
gr.addParam('sysparm_name','getUser');
gr.addParam('sysparm_sapPath',g_form.getValue('sap_po_form_po_folder'));
gr.getXML(updateApprover);

function updateApprover(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
alert(answer);
var data = JSON.parse(answer);
g_form.addInfoMessage(data);
alert(data); == This returns just 'object Object'
g_form.setValue('sap_folder_approver', data.name);
}

}

 Catalog client script:---------------------

Script include:----------------------------------------------

var getApprover = Class.create();
getApprover.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getUser: function() {
var appover = this.getParameter('sysparm_sapPath');
var sapMap = new GlideRecord('u_sap_service_mapping_rules');

if(sapMap.get(appover)) {

var json = new JSON();
var results = {
"sys_id": user.getValue("sys_id"),
"name": user.getValue("name")
};
return json.encode(results);
}
}
});

1 ACCEPTED SOLUTION

Yes sorry, there was a mistake in my original answer. this approach would be better because it avoids an unnecessary dot-walk

 

results.sys_id = sapMap.getValue('u_sap_path_approver');

View solution in original post

6 REPLIES 6

Yes sorry, there was a mistake in my original answer. this approach would be better because it avoids an unnecessary dot-walk

 

results.sys_id = sapMap.getValue('u_sap_path_approver');

Yes, that is true! 🙂

I had few days off between and it took while around things to figure that out by d-walking.

But yes, this is better option, thnx!

 

And I also got the approval assignment working so this almost finished. Now just need to build WF and it this can be used.

 

Thanks