we want to display info message on change request, if any approver is Inactive in system

Sateesh9
Tera Contributor

Hi All,

we want to display info message on change request, if any approver is Inactive in system.

Approvals were triggered at Authorize and review state and waiting for multiple group approvals.

my requirement is: if any approver is Inactive during the approval process, when ever change request is open, need to display message on the top of the form.

 

Thanks,

Sateesh

1 ACCEPTED SOLUTION

// This script runs when the change request form is loaded
addLoadEvent(function() {
// Get the current change request's sys_id
var changeRequestSysId = g_form.getUniqueValue();

// Query the sysapproval_approver table for related approvals
var approvalGr = new GlideRecord('sysapproval_approver');
approvalGr.addQuery('sysapproval', changeRequestSysId);
approvalGr.query();

// Check each approval for inactive approvers
while (approvalGr.next()) {
var approverId = approvalGr.approver;
var approverGr = new GlideRecord('sys_user');
if (approverGr.get(approverId) && approverGr.active == false) {
// If an inactive approver is found, display an info message
g_form.addInfoMessage('One or more approvers are inactive. Please update the approvers.');
break; // Exit the loop after finding the first inactive approver
}
}
});

View solution in original post

5 REPLIES 5

alvinbm1
Tera Expert

I recommend creating a Client Script that checks the status of the approvers when the form is loaded....  Let know if you need more details...

Hi alvinbm1,

if you can provide the sample code, that would be very helpful.

 

Thanks,

Sateesh

// This script runs when the change request form is loaded
addLoadEvent(function() {
// Get the current change request's sys_id
var changeRequestSysId = g_form.getUniqueValue();

// Query the sysapproval_approver table for related approvals
var approvalGr = new GlideRecord('sysapproval_approver');
approvalGr.addQuery('sysapproval', changeRequestSysId);
approvalGr.query();

// Check each approval for inactive approvers
while (approvalGr.next()) {
var approverId = approvalGr.approver;
var approverGr = new GlideRecord('sys_user');
if (approverGr.get(approverId) && approverGr.active == false) {
// If an inactive approver is found, display an info message
g_form.addInfoMessage('One or more approvers are inactive. Please update the approvers.');
break; // Exit the loop after finding the first inactive approver
}
}
});

Thanks for your help, it is working