how to make answer = true for two conditions at a time?

Sathwik1
Tera Expert

how to make answer = true for two conditions at a time?

In the below ACL script  I am using answer = true in two different conditions.. instead I want to use it only once as answer = true and achieve the requirement.. is it possible?

if not possible.. please confirm whether below approach is correct or not?

var getId = gs.getuserName();
if (current.assigned_to.user_name == getId || gs.getUser().hasRole('all_access')) 
{
             answer = true;
}    
var gr = new GlideRecord('ticket_task');
usr2.addEncodedQuery('mailto='+gs.getUser().getEmail()+'^ticket.number='+current.number);
usr2.query();
answer=usr2.next();

@Ankur Bawiskar 

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

do you want AND or OR between those 2 conditions?

If AND then use this

var getId = gs.getuserName();
var gr = new GlideRecord('ticket_task');
usr2.addEncodedQuery('mailto='+gs.getUser().getEmail()+'^ticket.number='+current.number);
usr2.query();
if((current.assigned_to.user_name == getId || gs.getUser().hasRole('all_access')) && usr2.hasNext()) 
{
	answer = true;
}  
else{
	answer = false;
}

IF OR then use this

var getId = gs.getuserName();
var gr = new GlideRecord('ticket_task');
usr2.addEncodedQuery('mailto='+gs.getUser().getEmail()+'^ticket.number='+current.number);
usr2.query();
if(current.assigned_to.user_name == getId || gs.getUser().hasRole('all_access') || usr2.hasNext()) 
{
	answer = true;
}  
else{
	answer = false;
}

this line is changed when you compare the above 2 scripts

if(current.assigned_to.user_name == getId || gs.getUser().hasRole('all_access') || usr2.hasNext()) 

Regards
Ankur

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

View solution in original post

4 REPLIES 4

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

do you want AND or OR between those 2 conditions?

If AND then use this

var getId = gs.getuserName();
var gr = new GlideRecord('ticket_task');
usr2.addEncodedQuery('mailto='+gs.getUser().getEmail()+'^ticket.number='+current.number);
usr2.query();
if((current.assigned_to.user_name == getId || gs.getUser().hasRole('all_access')) && usr2.hasNext()) 
{
	answer = true;
}  
else{
	answer = false;
}

IF OR then use this

var getId = gs.getuserName();
var gr = new GlideRecord('ticket_task');
usr2.addEncodedQuery('mailto='+gs.getUser().getEmail()+'^ticket.number='+current.number);
usr2.query();
if(current.assigned_to.user_name == getId || gs.getUser().hasRole('all_access') || usr2.hasNext()) 
{
	answer = true;
}  
else{
	answer = false;
}

this line is changed when you compare the above 2 scripts

if(current.assigned_to.user_name == getId || gs.getUser().hasRole('all_access') || usr2.hasNext()) 

Regards
Ankur

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

@Ankur Bawiskar 

One query in the above code...

there are some possibilites where record doesn't exist in ticket_Task table but exist in ticket table(current table) in such scenarios above condition will fail right? or will it work?

Hi,

if the query on ticket_task table fails the last part of condition usr2.hasNext() would be false

Regards
Ankur

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

Is it possible to convert same above ACL to query business rule?

@Ankur Bawiskar @Aman Kumar