The Now Platform® Washington DC release is live. Watch now!

Help
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Query Business Rule

Mark_Didrikson
ServiceNow Employee
ServiceNow Employee

Hello,

We have a process where certain Incident tickets are only visible to users with a specific role or if the ticket is assigned to a user's group. We have created a flag on these Incidents.

I am trying to create a Query Business Rule that will display only these particular Incidents if a user has the required role (works fine), but I'm struggling to put together the piece with the assignment group. Can a Query Business Rule read the current.assignment_group on a record? I've been hard coding the assignment group values, not sure if there is a way to do this better.

Thanks!

Here is what I have so far:




if (gs.hasRole("ediscovery")) {
qc = current.addOrCondition('u_ediscovery', 'true');

} else {



if (gs.getUser().isMemberOf('0c9f0d4d6f0891006b7283bc5d3ee4fb')){
//gs.addInfoMessage("Member of Wintel");
var oc1 = current.addQuery("assignment_group", "javascript:getMyGroups()");
grpMbr = true;
}

if (gs.getUser().isMemberOf('009f0d4d6f0891006b7283bc5d3ee4f5')){
//gs.addInfoMessage("Member of Messaging Support");
var oc2 = current.addQuery("assignment_group", "javascript:getMyGroups()");
grpMbr = true;
}

if (gs.getUser().isMemberOf('849f0d4d6f0891006b7283bc5d3ee4ef')){
//gs.addInfoMessage("Member of Distribution");
var oc3 = current.addQuery("assignment_group", "javascript:getMyGroups()");
grpMbr = true;
}

if (gs.getUser().isMemberOf('889f0d4d6f0891006b7283bc5d3ee4f1')){
//gs.addInfoMessage("Member of Kansas City");
var oc4 = current.addQuery("assignment_group", "javascript:getMyGroups()");
grpMbr = true;
}

if (gs.getUser().isMemberOf('0c9f0d4d6f0891006b7283bc5d3ee4f2')){
//gs.addInfoMessage("Member of Leavenworth");
var oc5 = current.addQuery("assignment_group", "javascript:getMyGroups()");
grpMbr = true;
}
}


if (grpMbr == false && !gs.hasRole("ediscovery")){
qc = current.addQuery("u_ediscovery",'false');
}


8 REPLIES 8

Mark Stanger
ServiceNow Employee
ServiceNow Employee

Here's an example from SNGuru.

http://www.servicenowguru.com/scripting/business-rules-scripting/controlling-record-access-before-query-business-rules/

You don't need the 'javasript:' and the quotes in the second piece of your query condition.


Mark_Didrikson
ServiceNow Employee
ServiceNow Employee

Thanks! That helps out a lot!


Mark_Didrikson
ServiceNow Employee
ServiceNow Employee

Does this business rule also get run on reports?


Yes, it gets run whenever the data in the table in question is queried.