set approval to no longer required if approver and requestor is same

shruti2bhosale
Tera Contributor

Hi ,

 

I have requirement which set approver to no longer required if approver and requested for is same.

I wrote business rule which set to no longer require but failing if approver is in group approval tab also.

 

 

 

7 REPLIES 7

palanikumar
Giga Sage

Hi,

If you are doing approval in the flow, then you can check the add approval before the approval action and handle it

Thank you,
Palani

chazh
Giga Contributor

as palani said, check the add approval before the approval action

shruti2bhosale
Tera Contributor

 Trying by business rule -

 

 var approver = current.approver;
    var rf = current.document_id.requested_for;
   
    var group = current.group;
    gs.info("[BR] approval group is " + group);
    gs.info("[BR] approver is " + approver);
    gs.info("[BR] requested for is " + rf);


    var userMatched = false;
    var groupMatched = false;

    if (approver == rf) {
        gs.info("[BR] skipping user approval.approver is requested for");
        current.state = 'not_required';
        current.comments = 'Approver is same as this current requested user. So, this approval have been skipped';
        userMatched = true;
        current.update();

    }
    if (rf && group) {
        var grMem = new GlideRecord('sys_user_grmember');

        grMem.addQuery('user', rf);
        grMem.addQuery('group', group);
        grMem.query();
        if (grMem.next()) {
            gs.info("[BR] skipping group approval ");
            groupMatched = true;
        }
    }
    if (userMatched || groupMatched) {
        gs.info("[BR] proceeding to update group approval");
        gs.info("[BR] Document id " + current.document_id);
     

        var grpApproval = new GlideRecord('sysapproval_group');
       grpApproval.addQuery('parent', current.document_id);
        grpApproval.addQuery('assignment_group', group);
       
        gs.info("[BR] Assignment group is1 " + grpApproval.assignment_group);
        grpApproval.query();
        if (grpApproval.hasNext()) {
            while (grpApproval.next()) {
                gs.info("[BR] Assignment group is " + grpApproval.assignment_group);
                gs.info("[BR] found matching group");
                grpApproval.state = 'not_required';
                grpApproval.approval = 'not_required';
                grpApproval.comments = 'Group approval not required as approver is same as requested for';
                grpApproval.active = false;
                grpApproval.update();
            }

        } else {
            gs.info('[BR] no matching grp');
        }

    }
 
 

But No luck