- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-24-2018 08:32 AM
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);
}
}
});
Solved! Go to Solution.
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-08-2018 12:15 PM
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');

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-08-2018 12:15 PM
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');
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-08-2018 03:36 PM
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