- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-05-2024 09:32 AM
I have a field in record producer. it is read only. If logged in user's company contains CASA or LI & FUNG then then the field value will be 2.5 else ). below code not working
Script include:
var loggedUserData = Class.create();
loggedUserData.prototype = Object.extendsObject(AbstractAjaxProcessor, {
name: function() {
var x = gs.getUser().company.name;
if(x.toString().indexOf("CASA") >= 0 || x.toString().indexOf("CASA") >= 0 || x.toString().indexOf("casa") >= 0 || x.toString().indexOf("LI & FUNG") >= 0)
return 2.5;
else
return 0;
},
type: 'loggedUserData'
});
Catalog client script:
function onLoad() {
var ga = new GlideAjax('loggedUserData');
ga.addParam('sysparm_name', 'name');
ga.getXML(callback);
}
function callback(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
g_form.addInfoMessage(answer);
g_form.setValue("u_commission_rate",answer);
//put this answer in your variable
}
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-06-2024 11:01 AM
Hi @Rosy14 ,
Please try the below code, working in PDI
Script Include:
var loggedUserData = Class.create();
loggedUserData.prototype = Object.extendsObject(AbstractAjaxProcessor, {
detailsSpec: function() {
var getID = this.getParameter('sysparm_req_for');
var getCompID = new GlideRecord('sys_user');
if (getCompID.get(getID)) {
var deptID = getCompID.department.name;
if (deptID.toString().indexOf("CASA") >= 0 || deptID.toString().indexOf("CASA") >= 0 || deptID.toString().indexOf("casa") >= 0 || deptID.toString().indexOf("LI & FUNG") >= 0)
return 2.5;
else
return 0;
}
},
type: 'loggedUserData'
});
OnLoad Client script:
function onLoad() {
var getRequestedForID = g_form.getValue('requested_for');
var ga = new GlideAjax('loggedUserData');
ga.addParam('sysparm_name', 'detailsSpec');
ga.addParam('sysparm_req_for', getRequestedForID);
ga.getXMLAnswer(responseFun);
function responseFun(response) {
var answer = response;
if (answer == 2.5) {
g_form.setValue('u_commission_rate', answer);
} else {
g_form.setValue('u_commission_rate', answer);
}
}
}
Output:
Mark this as Helpful / Accept the Solution if this helps
Mark this as Helpful / Accept the Solution if this helps.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-05-2024 10:03 AM - edited 07-05-2024 10:04 AM
@Rosy14 Please update your Script include as follows.
name: function() {
var company = gs.getUser().getCompanyID();
var glideCompany = new GlideRecord('core_company');
if(glideCompany.get(company)){
var x = glideCompany.name;
if(x.toString().indexOf("CASA") >= 0 || x.toString().indexOf("CASA") >= 0 || x.toString().indexOf("casa") >= 0 || x.toString().indexOf("LI & FUNG") >= 0){
return '2.5';
}
else{
return '0';
}
}
},
Hope this helps.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-05-2024 10:34 AM
Hi @Rosy14
Script:
Client Script:
function onLoad() {
//Type appropriate comment here, and begin script below
var loggedinuser = g_user.userID;
alert(loggedinuser);
var gr = new GlideAjax('GetManagerDetailsScript');
gr.addParam('sysparm_name', 'getdetails');
gr.addParam('sysparm_user', loggedinuser);
gr.getXMLAnswer(callback);
function callback(response) {
var answer = response;
alert(answer);
}
}
Script Include:
var GetManagerDetailsScript = Class.create();
GetManagerDetailsScript.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getdetails : function(){
var userde=this.getParameter('sysparm_user');
var luser=new GlideRecord('sys_user');
luser.addQuery('sys_id',userde);
luser.query();
if(luser.next()){
var companyname= luser.company.name;
if(companyname.indexOf('CASA')!=-1 || companyname.indexOf('LI & FUNG')!=-1){
return 2.5;
}
else{
return 0;
}
}
},
});
Thanks and Regards
Sai Venkatesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-06-2024 11:01 AM
Hi @Rosy14 ,
Please try the below code, working in PDI
Script Include:
var loggedUserData = Class.create();
loggedUserData.prototype = Object.extendsObject(AbstractAjaxProcessor, {
detailsSpec: function() {
var getID = this.getParameter('sysparm_req_for');
var getCompID = new GlideRecord('sys_user');
if (getCompID.get(getID)) {
var deptID = getCompID.department.name;
if (deptID.toString().indexOf("CASA") >= 0 || deptID.toString().indexOf("CASA") >= 0 || deptID.toString().indexOf("casa") >= 0 || deptID.toString().indexOf("LI & FUNG") >= 0)
return 2.5;
else
return 0;
}
},
type: 'loggedUserData'
});
OnLoad Client script:
function onLoad() {
var getRequestedForID = g_form.getValue('requested_for');
var ga = new GlideAjax('loggedUserData');
ga.addParam('sysparm_name', 'detailsSpec');
ga.addParam('sysparm_req_for', getRequestedForID);
ga.getXMLAnswer(responseFun);
function responseFun(response) {
var answer = response;
if (answer == 2.5) {
g_form.setValue('u_commission_rate', answer);
} else {
g_form.setValue('u_commission_rate', answer);
}
}
}
Output:
Mark this as Helpful / Accept the Solution if this helps
Mark this as Helpful / Accept the Solution if this helps.