combined client/server UI action
onclick: cancel_ritm()
action: he_cancel_ritm_records
condition: current.active && gs.hasRole('catalog_manager');
script: (include additional script to cancel approvals but this may happen OOTB)
function he_cancel_ritm() {
var res = prompt("Enter cancellation reason:");
if (res) {
g_form.setValue('comments', 'RITM cancelled for reason: ' + res);
gsftSubmit(null, g_form.getFormElement(), 'he_cancel_ritm_records');
}
}
if (typeof window == 'undefined')
he_cancel_ritm_records();
function he_cancel_ritm_records() {
action.setRedirectURL(current);
cancelTasks(current.sys_id);
gs.addInfoMessage(current.number + ' is now cancelled');
current.state = '4';
gs.eventQueue('he.ritm.cancelled', current, '', '');//--queue an email--this can be used later once the enhancement to create a 'closed cancelled' state value has been completed, for now the standard close notification will fire.
current.update();
}
function cancelTasks (ritm_sysid){
var grTasks=new GlideRecord('sc_task');
grTasks.addActiveQuery();
grTasks.addQuery('request_item', ritm_sysid);
grTasks.query();
while (grTasks.next()){
gs.addInfoMessage('Cancelling task ' + grTasks.number);
grTasks.state=4;
grTasks.update();
}
}
Comments
Post a Comment