- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-12-2024 11:41 PM
Hi SN Expert,
Requirement is if the user belongs to XYZ group then a task should be generated (I am using the below script in the runscript activity of the workflow) but even though the user is present in the XYZ group, logs returns the false and task isn't generated.
Kindly assist me on this.
var userId = current.variables.requested_for.getDisplayValue();
var group = 'xyz';
var isMemberOfGroup = false;
gs.info('User ID: ' + userId);
var grMember = new GlideRecord('sys_user_grmember');
grMember.addQuery('user', userId);
grMember.addQuery('group.name', 'group');
grMember.query();
if (grMember.next()) {
isMemberOfGroup = true;
}
gs.info('Is Member of ' + group + ' Group: ' + isMemberOfGroup);
if (isMemberOfGroup) {
var task = new GlideRecord('sc_task');
task.initialize();
task.short_description = 'XYZ request';
task.description = "XYZ request for : " + current.variables.requested_for.getDisplayValue();
task.business_service = 'bd1be0d01b16f050c0154047bc4bcb40';
task.u_task_cause_code = "XYZrequest";
task.u_category = '5b0605150f6907845ca246ace1050e03';
task.request_item = current.sys_id;
task.insert();
gs.addInfoMessage('Task created successfully.');
} else {
gs.addInfoMessage('User is not a member of ' + group + ' group.');
}
Regards,
Priyanka
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-13-2024 12:04 AM
Hi @PK14 ,
Please try the below code:
var userId = current.variables.requested_for; //This will return the sys_id of the selected user
var group = 'US Presidents Group 1';
var isMemberOfGroup = false;
gs.info('User ID: ' + userId);
var grMember = new GlideRecord('sys_user_grmember');
grMember.addQuery('user', userId);
grMember.addQuery('group.name', group);
grMember.query();
if (grMember.next()) {
isMemberOfGroup = true;
}
gs.info('Is Member of ' + group + ' Group: ' + isMemberOfGroup);
if (isMemberOfGroup) {
var task = new GlideRecord('sc_task');
task.initialize();
task.short_description = 'XYZ request';
task.description = "XYZ request for : " + current.variables.requested_for.getDisplayValue();
task.business_service = 'bd1be0d01b16f050c0154047bc4bcb40';
task.u_task_cause_code = "XYZrequest";
task.u_category = '5b0605150f6907845ca246ace1050e03';
task.request_item = current.sys_id;
task.insert();
gs.addInfoMessage('Task created successfully.');
} else {
gs.addInfoMessage('User is not a member of ' + group + ' group.');
}
It created the task as below:
Please le me know your views and Mark ✅Correct if this solves your query and also mark 👍Helpful if you find my response worthy based on the impact.
Mark this as Helpful / Accept the Solution if this helps.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-12-2024 11:52 PM
Hello @PK14
Can you try like below :
var userId = current.variables.requested_for; //will get the sys_id
var group = 'xyz'; //group name or if possible use the sys_id of group
//var groupSysId = '1234567' ;
var isMemberOfGroup = false;
var grMember = new GlideRecord('sys_user_grmember');
grMember.addEncodedQuery('user.sys_id=' + userId + '^group.name=' + group); //if Group name is used
//grMember.addEncodedQuery('user.sys_id=' + userId + '^group.sys_id=' + groupSysId); //if sys_id is used
grMember.query();
if (grMember.next()) {
isMemberOfGroup = true;
}
ServiceNow Developer
I know one thing, and that is that I know nothing.
- Socrates
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-12-2024 11:58 PM
Hi @PK14 , You need to remove getDisplayValue() for UserId field. Because in your query user is reference field . It requires sys_id to pass. getDisplayValue() returns display value. More details- check this Doc- https://developer.servicenow.com/dev.do#!/reference/api/washingtondc/server_legacy/c_GlideRecordAPI#...
Try with var userId = current.variables.requested_for; and test.
Hope it helps. Please mark helpful/accepted if it helps.
Regards,
Priyanka Salunke
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-13-2024 12:04 AM
Hi @PK14 ,
Please try the below code:
var userId = current.variables.requested_for; //This will return the sys_id of the selected user
var group = 'US Presidents Group 1';
var isMemberOfGroup = false;
gs.info('User ID: ' + userId);
var grMember = new GlideRecord('sys_user_grmember');
grMember.addQuery('user', userId);
grMember.addQuery('group.name', group);
grMember.query();
if (grMember.next()) {
isMemberOfGroup = true;
}
gs.info('Is Member of ' + group + ' Group: ' + isMemberOfGroup);
if (isMemberOfGroup) {
var task = new GlideRecord('sc_task');
task.initialize();
task.short_description = 'XYZ request';
task.description = "XYZ request for : " + current.variables.requested_for.getDisplayValue();
task.business_service = 'bd1be0d01b16f050c0154047bc4bcb40';
task.u_task_cause_code = "XYZrequest";
task.u_category = '5b0605150f6907845ca246ace1050e03';
task.request_item = current.sys_id;
task.insert();
gs.addInfoMessage('Task created successfully.');
} else {
gs.addInfoMessage('User is not a member of ' + group + ' group.');
}
It created the task as below:
Please le me know your views and Mark ✅Correct if this solves your query and also mark 👍Helpful if you find my response worthy based on the impact.
Mark this as Helpful / Accept the Solution if this helps.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-13-2024 01:49 AM
Thank you @SN_Learn @Priyanka_786 @Vishal Birajdar