Auto Insert of Required Approvers based on Affected CI Change Approval Group

sudhakar8
Tera Contributor

Change would like 'Required Approvals' to be added to a CMR automatically, based on the 'Change Approval Group' attribute on a CI (CI criteria: it is not Non-Operational) this would include CIs that are added to both the primary affected CI variable or or those included as part of the Affected CI TAB).

This is to be applied for both change types:  Normal and Emergency (i.e NOT to Standard changes)

1 ACCEPTED SOLUTION

//Add technical approvers to the change request when a new affected CI has been added.
(function executeRule(current, previous /*null when async*/) {
var gr = new GlideRecord('change_request');
gr.addQuery('sys_id', current.task);
gr.query();
if(gr.next())
{
var change_grp = gr.u_technical_approvers_group.toString();
if (change_grp.indexOf(current.ci_item.u_change_approval_group) < 0)
{
gr.u_technical_approvers_group = change_grp + ',' + current.ci_item.u_change_approval_group;
}
//Force update to make sure the business rule to calculate risk and the change type will run when new affected CI has been added regardless the CR has
been updated with new approvals.
gr.setForceUpdate(true);
gr.update();
}
})(current, previous);

Regards
Harish

View solution in original post

37 REPLIES 37

sudhakar8
Tera Contributor

Thanks for your help, I did but it is not removing from glidelist

create another BR on TASK_ci  after deletion checked

//Get the change request record of the affected CI getting deleted
var changeRequestGR = new GlideRecord('change_request');
changeRequestGR.addQuery('sys_id', current.task);
changeRequestGR.query();
if(changeRequestGR.next())
{
var tmp='';// Temporary variable to store value
var gr = new GlideRecord('task_ci');
gr.addQuery('task', current.task);
gr.query();
while(gr.next())
{
tmp+= ','+gr.ci_item.u_change_group; //+',' + tech_app;
}
var s=tmp;
var s2 = s.split(',');
var uniqueArray = new ArrayUtil().unique(s2);// Comparing array to eliminate duplicate values.
changeRequestGR.u_group=','+uniqueArray;
changeRequestGR.setForceUpdate(true);
changeRequestGR.update();
}

 

 

 

Regards
Harish

sudhakar8
Tera Contributor

 

I want to add approval group to "Required approval"when operational status is operational

sudhakar8
Tera Contributor

I have added the filter condition operational status is operational, it is working 

Thanks

cool bro

Regards
Harish