- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-14-2019 03:07 PM
Hello everyone, i am trying to come up with a workflow query that will allow me to:
- To check if the requester is in the Support Group or this new "Authorized Users" slush bucket of the Batch Job.
- If not, then an approval would need to go to the Managed By for the Batch Job
-The requested for field is a reference field on the catalog item, "support_group" and "batch job" are on the "u_cmdb_ci_batch_job" table.
I basically want to look at the requested for field, the batch job field, and support_group field to see if the users belongs to the group based off of the selection in the batch job field.
This is the code i tried, but it didn't yield any results at all:
answer = ifScript();
function ifScript() {
var gr = new GlideRecord('u_cmdb_ci_batch_job');
gr.addQuery('name', current.variables.job);
gr.addQuery('support_group', current.variables.requested_for);
gr.query();
{
return 'yes';
}
return 'no';
}
Can anyone see if i am heading in the right direction? Any feedback would be greatly appreciated.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-17-2019 01:29 PM
Hi Ya,
I've had another go at simplifying the if activity script using an IIFE and dot walking to the support group information:
answer = (function(current) {
var supportGrpSysId = current.variables.job.support_group.toString(); //assumes the support group is reference field. Dot walk to the support group through the job reference field
var userSysId = current.variables.requested_for.toString(); //assumes requested_for is reference field.
/*Determine if the requested_for user is part of the support group assigned to job*/
var grGrpMem = new GlideRecord("sys_user_grmember");
grGrpMem.addQuery("group",supportGrpSysId);
grGrpMem.addQuery("user",userSysId);
grGrpMem.setLimit(1); //only need to return one record from the query
grGrpMem.query();
if (grGrpMem.next()) {
return "yes"; //return "yes" if they are part of the group
}
else {
return "no"; //return "no" if they are not part of the group
}
})(current);
Give that a go and let me know how you get along,
Brent
P.S. If my suggestion helped then please mark as helpful and/or correct so other community members can benefit from this information.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-14-2019 03:40 PM
Hi Ya,
Give the following code a go in your if activity:
Code:
answer = ifScript();
function ifScript() {
var grJob = new GlideRecord("u_cmdb_ci_batch_job");
if (grJob.get(current.variables.job)) {
var supportGrpSysId = grJob.support_group.toString(); //assumes the support group is reference field
var userSysId = current.variables.requested_for.toString();
/*Determine if the requested_for user is part of the support group assigned to job*/
var grGrpMem = new GlideRecord('sys_user_grmember');
grGrpMem.addQuery("group",supportGrpSysId);
grGrpMem.addQuery("user",userSysId);
grGrpMem.setLimit(1); //only need to return one record from the query
grGrpMem.query();
if (grGrpMem.next()) {
return "yes"; //return "yes" if they are part of the group
}
else {
return "no"; //return "no" if they are not part of the group
}
}
else {
return "no"; //if the job can't be found then return "no"
}
}
Let me know how you get along.
Brent
P.S. If my suggestion helped then please mark as helpful and/or correct so other community members can benefit from this information.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-15-2019 08:43 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-17-2019 01:29 PM
Hi Ya,
I've had another go at simplifying the if activity script using an IIFE and dot walking to the support group information:
answer = (function(current) {
var supportGrpSysId = current.variables.job.support_group.toString(); //assumes the support group is reference field. Dot walk to the support group through the job reference field
var userSysId = current.variables.requested_for.toString(); //assumes requested_for is reference field.
/*Determine if the requested_for user is part of the support group assigned to job*/
var grGrpMem = new GlideRecord("sys_user_grmember");
grGrpMem.addQuery("group",supportGrpSysId);
grGrpMem.addQuery("user",userSysId);
grGrpMem.setLimit(1); //only need to return one record from the query
grGrpMem.query();
if (grGrpMem.next()) {
return "yes"; //return "yes" if they are part of the group
}
else {
return "no"; //return "no" if they are not part of the group
}
})(current);
Give that a go and let me know how you get along,
Brent
P.S. If my suggestion helped then please mark as helpful and/or correct so other community members can benefit from this information.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-18-2019 08:51 AM
Hey Brent,
Thanks again for your time, i really appreicate your help! I made one small tweak which was changing the line where the usersysid is being declared to:
var userSysId = current.request.requested_for.toString();
I have one more question if you have time, would it be possible for me to add a line of code to check if the requested for user is in another variable (authorized_users) in the same line of code or would i have to do a separate query?