Pass variable from function to function in script include
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-14-2023 11:16 AM
I have a Script Include with a couple of expression functions. I need to pass a variable from on expression to another and am not sure how to.
I define userDetails.DirectReport in the getUserName function but need to access its value in getStaffAccess. Any insight on how I can do that would be very much appreciated! Snippet of my code below (I took out some of it that I don't think is relevant to solving this)
var GetUserInfo2 = Class.create();
GetUserInfo2.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getUserName: function(){
var userName = this.getParameter('sysparm_user');
var userDetails = {};
var gr = new GlideRecord("sys_user");
gr.addQuery('sys_id',userName);
gr.query();
if(gr.next()) {
//gs.log('User found:' + userName);
userDetails.firstname = gr.getValue('first_name');
userDetails.lastname = gr.getValue('last_name');
userDetails.location = gr.getValue('location');
userDetails.title = gr.getValue('title');
userDetails.email = gr.getValue('email');
userDetails.department = gr.getValue('department');
userDetails.division = gr.getValue('u_division');
userDetails.manager = gr.getValue('manager');
userDetails.DirectReport = gr.getValue('u_direct_reports'); //Need to push this to 'getStaffAccess'
}
var json = new JSON();
var data = json.encode(userDetails);
gs.log('data: ' + data);
return data.toString();
},
getStaffAccess: function() {
var usrId = this.getParameter('sysparm_staff');
var accessAction = this.getParameter('sysparm_access_action');
var usrRec = new GlideRecord('u_user_application_access');
usrRec.addQuery('u_sn_userid', usrId);
usrRec.addQuery('u_access_removed_yn', 'false');
usrRec.addQuery('u_current','true');
if ((accessAction == 'Disable') || (accessAction == 'Change')) {
usrRec.addQuery('u_app_action', 'Add');
}
else {
var orCond = usrRec.addQuery('u_app_action', 'Add');
orCond.addOrCondition('u_app_action', 'Disable');
}
//gs.log('User Details: ' + userDetails);
usrRec.query();
var DataWarehouse = false;
var CellPhone = false;
var AdminAccount = false;
var hasDirectReport = false;
var appAccess = [];
while (usrRec.next()) {
appAccess.push(usrRec.u_app_access.getDisplayValue());
if (usrRec.u_app_access.getDisplayValue() == 'Cell Phone'){
CellPhone = true;
}
if (usrRec.u_app_access.getDisplayValue() == 'Data Warehouse'){
DataWarehouse = true;
}
if (usrRec.u_app_access.getDisplayValue() == '011A Admin Account'){
AdminAccount = true;
}
// if (userDetails.DirectReport == '1'){ //This is where I need to look at the userDetails.DirectReport to see if it is true or false
// hasDirectReport = true;
// }
1 REPLY 1

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-14-2023 11:32 AM
I think I understand what you are trying to say. So you can do this
userDetails.DirectReport = this.getStaffAccess(staff, accessAction);
getStaffAccess: function(staff, action) {
var usrId = "";
if(staff) {
usrId = staff;
} else {
usrId = this.getParameter('sysparm_staff');
}
var accessAction = "";
if(staff) {
accessAction = action;
} else {
accessAction = this.getParameter('sysparm_access_action');
}