No task generation

PK14
Kilo Guru

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

1 ACCEPTED SOLUTION

SN_Learn
Kilo Patron
Kilo Patron

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:

SN_Learn_0-1707811401675.png

 

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.

View solution in original post

4 REPLIES 4

Vishal Birajdar
Giga Sage

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;
}

 

 

 

Vishal Birajdar
ServiceNow Developer

I know one thing, and that is that I know nothing.
- Socrates

Priyanka_786
Tera Guru
Tera Guru

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

SN_Learn
Kilo Patron
Kilo Patron

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:

SN_Learn_0-1707811401675.png

 

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.