Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

change requst

satya1995
Tera Contributor

answer = {
    u_svp_approval_mandatory: false,
    u_svp_no_vp: false,
    u_evp_approval_mandatory: false,
    u_vp_approval_mandatory: false
};
var svp_approval_required = false;
var svp_no_vp_required = false;
var evp_approval_required = false;
var vp_approval_required = false;
var gr_conflict = new GlideRecord('conflict');
gr_conflict.addEncodedQuery(
    "change=" + current.sys_id +
    "^type=blackout" +
    "^schedule.ref_cmn_schedule_blackout.u_svp_approval_req=true"
);
gr_conflict.query();

 

if (gr_conflict.next()) {
    gs.log("Starting approval checks for change: " + current.sys_id);
    var assigned = current.assigned_to;
    // --- SVP approval based on management level ---
    if (assigned.u_management_level < 5 && assigned.manager && assigned.manager.u_management_level < 6) {
        svp_approval_required = true;
        gs.log("svp_approval_1: SVP approval required (assigned level < 5 & manager < 6)");
    }

 

    // // --- SVP approval when no VP exists ---
    // if ((!assigned.u_vp && assigned.u_director && assigned.u_director.manager && assigned.u_director.manager.u_management_level == 6)||(!assigned.u_vp && (!assigned.manager || assigned.manager.u_management_level < 6))
    // ) {
    //     svp_no_vp_required = true;
    //     gs.log("svp_approval_2: SVP approval required because no VP present");
    //  }

 

    // --- If user has NO director AND NO VP → require SVP ---
    if (assigned.u_director == '' && assigned.u_vp == '' && assigned.u_svp != '') {
        vp_approval_required = true;
        gs.log("running in if 1");
    }
    // --- No director AND no VP AND no SVP → require EVP ---
    if ((assigned.u_vp == '' && assigned.u_svp == '')) {
        evp_approval_required = true;
        gs.log("running in if 2");
    }
    //--- No SVP → require EVP
    if (assigned.u_svp == '' && assigned.u_evp != '') {
        svp_approval_required = true;
    }
    //---- No VP → require SVP
    if (assigned.u_vp == '' && assigned.u_svp != '') {
        vp_approval_required = true;
    }
}
if (svp_approval_required) {
    gs.log("svp_approval_6");
    answer.u_svp_approval_mandatory = true;
    gs.log("Answer: u_svp_approval_mandatory = true");
}
// if (svp_no_vp_required) {
//      gs.log("svp_approval_7");
//      answer.u_svp_approval_mandatory = false;  // override
//      answer.u_svp_no_vp = true;
//      gs.log("Answer: u_svp_no_vp = true (overrides standard SVP approval)");
// }
if (evp_approval_required) {
    gs.log("svp_approval_8");
    answer.u_evp_approval_mandatory = true;
    gs.log("Answer: u_evp_approval_required = true");
}
if (vp_approval_required) {
    gs.log("svp_approval_8");
    answer.u_vp_approval_mandatory = true;
}

 on a change request, when assigned user has svp it is not triggering approval to svp

1 REPLY 1

Tanushree Maiti
Kilo Patron

Have you written this script under any user approval activity->script under workflow?

 

Add gs log , and check each and every value of your condition . as it is && operator , if one value does not satisfy (return false), full if query will return false.

like 

 if (assigned.u_management_level < 5 && assigned.manager && assigned.manager.u_management_level < 6

and 

  if (assigned.u_svp == '' && assigned.u_evp != '')

 

Also , if your condition satisfying , you are setting  svp_approval_required = true;

 

If it is true, instead of setting approver in answer, what you are doing in below given code.

if (svp_approval_required) {
    gs.log("svp_approval_6");
    answer.u_svp_approval_mandatory = true;
    gs.log("Answer: u_svp_approval_mandatory = true");
}

 

Please mark this response as Helpful & Accept it as solution if it assisted you with your question.
Regards
Tanushree Maiti
ServiceNow Technical Architect
Linkedin: