Prevent Change requester from approving their own Changes.

Steve Brown1
Tera Expert

Hi Community,

Using Helsinki - helsinki-03-16-2016__patch7-11-02-2016

Following a recent audit I need to prevent any Requester being able to Approve their own Change Requests.

I have read a couple of articles similar to my situation but they have been specific to a particular Assignment Group and my scripting skills are non existent to be able to turn their suggestions into something that works!!   I have also tried writing a Business Rules on the sysapproval_approver table but could not get this to work either.

I have attempted to change the below script from another post from 2014 to work in our Instance but I cannot get it to work - the best result was skipping the Peer check step of the workflow where an approval is required from the Assignment group of the Requester.

  1. answer = [];  
  2. var approvers = new GlideRecord('sys_user_grmember');  
  3. approvers.addQuery('group.name', 'IT Infrastructure Managers');  
  4. approvers.query();  
  5. while(approvers.next()) {  
  6.     if(approvers.user.toString() != current.requested_by.toString()) {  
  7.           answer.push(approvers.user.toString());  
  8.     }  
  9. }  

 

My version:

1. answer = [];  

2. var approvers = new GlideRecord('sys_user_grmember');  

3. approvers.addQuery('current.assignment_group');

4. approvers.query();  

5. while(approvers.next()) {  

6.   if(approvers.user.toString() != current.requested_by.toString()) {  

7.             answer.push(approvers.user.toString());  

8.       }  

9. }

I think the script is doing the following:

2 - Identifying the Group the Requester is in

3 - Is the Requester in the Assignment Group?

4 - ??

5 - ??

6 - If the Requester is in the Assignment Group

7 - ?? do something!

Many thanks in advance.

Steve Brown

1 ACCEPTED SOLUTION

There is an additional quotes in the current.assignment_group which will not make it work. I have done a minor update to code



answer = [];


var approvers = new GlideRecord('sys_user_grmember');


approvers.addQuery('group', current.assignment_group);   //Matches assignment group on change with the group membership table


approvers.query();


while(approvers.next()) {    


  if(approvers.user.toString() != current.requested_by.toString()) {


            answer.push(approvers.user.toString());


      }


}



I have tested this and it was working on my developer instance.



Thanks


Please Hit like, Helpful or Correct depending on the impact of the response


View solution in original post

20 REPLIES 20

Alikutty A
Tera Sage

Hi Steve,



Can you try this code and see if it works



answer = [];


var approvers = new GlideRecord('sys_user_grmember');


approvers.addQuery('group', 'current.assignment_group');   //Matches assignment group on change with the group membership table


approvers.query();


while(approvers.next()) {      


  if(approvers.user.toString() != current.requested_by.toString()) {


            answer.push(approvers.user.toString());


      }


}




Thanks


Please Hit like, Helpful or Correct depending on the impact of the response


There is an additional quotes in the current.assignment_group which will not make it work. I have done a minor update to code



answer = [];


var approvers = new GlideRecord('sys_user_grmember');


approvers.addQuery('group', current.assignment_group);   //Matches assignment group on change with the group membership table


approvers.query();


while(approvers.next()) {    


  if(approvers.user.toString() != current.requested_by.toString()) {


            answer.push(approvers.user.toString());


      }


}



I have tested this and it was working on my developer instance.



Thanks


Please Hit like, Helpful or Correct depending on the impact of the response


Hi Alikutty,



Many thanks for your replies.   I have tried both of these scripts to no avail unfortunately.



1st Script   -   Allows Requester to Approve their own Change.


find_real_file.png



2nd Script - Also allows the Requester to Approve their own Change.


find_real_file.png



Are you able to assist any further?



Best regards,


Steve Brown


Hi Steve,



On the second script, Can you remove the ${assignment_group} and retest it once again?



find_real_file.png




Thanks


Please Hit like, Helpful or Correct depending on the impact of the response