Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

P1 incidents should be created by only particular groups

Teja45
Tera Contributor

Hi All,

 

I have a requirement as below.

Priority 1 incident should be created/updated by the current logged-in user belonging to A,B, C groups or user having Admin role.

I have created a business rule as follows.

When to run : Before --> Insert/Update and priority is 1

Advanced :

 

(function executeRule(current, previous /*null when async*/) {


if ((!gs.getUser().isMemberOf("A") || !gs.getUser().isMemberOf("B") || !gs.getUser().isMemberOf("c") || !gs.getUser().hasRole('admin))
{
gs.addErrorMessage('you dont have the right to create/update P1 tickets');
current.setAbortAction(true);
}

})(current, previous);

 

But it is checking the only first condition and not working for all the three groups.

Can someone help me with this please?

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

try this

(function executeRule(current, previous /*null when async*/) {

	if (gs.getUser().isMemberOf("A") || gs.getUser().isMemberOf("B") || gs.getUser().isMemberOf("c") || gs.hasRole('admin')){

	}
	else{	 
		gs.addErrorMessage('you dont have the right to create/update P1 tickets');
		current.setAbortAction(true);
	}

})(current, previous);

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

6 REPLIES 6

Gabor10
Mega Guru

|| should be && for your logic, shouldn't it?

Community Alums
Not applicable

Hi Teja,

 

Try below steps:

1) Have onSubmit client script

2) Get value of priority

3) Determine if logged in user is part of 'service Desk/your group name' group. this will be a flag either true/false

4) if (priority == 'high' && flag == true){

alert("you dont have access to create this ticket");

return false; // this will stop user from submitting the form

}

 

Mark my answer correct & Helpful, if Applicable.

Thanks,

Sandeep

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

try this

(function executeRule(current, previous /*null when async*/) {

	if (gs.getUser().isMemberOf("A") || gs.getUser().isMemberOf("B") || gs.getUser().isMemberOf("c") || gs.hasRole('admin')){

	}
	else{	 
		gs.addErrorMessage('you dont have the right to create/update P1 tickets');
		current.setAbortAction(true);
	}

})(current, previous);

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Thank you @Ankur Bawiskar it worked.