ServiceNow replace create request from incident form with version that goes via portal
new ui action code (rename the ootb create request with sysid 50317d860a0a0b4b00857807b0815bb2 to inactive and set active=false, and take a copy of it with below custom script)
client=true
onclick=redirectoportal_catalog()
action name=update_inc
//Update saves incidents before going to the catalog homepage
function redirectoportal_catalog() {
var res = confirm('If you wish to proceed with raising an RITM linked to this incident, please complete the action by submitting the service request. The service catalogue will load in a new window');
if (res) {
var url = "he?id=sc_category";
//gs.addInfoMessage(url);
window.open(url, '_blank');
gsftSubmit(null, g_form.getFormElement(), 'update_inc');
}
}
if (typeof window == 'undefined')
redirect_portal();
function redirect_portal() {
//gs.addInfoMessage('SAVING...' + current.number);
var session = gs.getSession();
session.putClientData('incidentsysid', current.sys_id);
session.putClientData('incidentnumber', current.number);
//var clientData = session.getClientData('heincidentsysid');
//gs.addInfoMessage(clientData);
current.update();
}
business rule code
run on insert
(function executeRule(current, previous /*null when async*/ ) {
//--this business rule is invoked when the customised 'create request' UI action is clicked and the user has been re-routed via portal
//--author: Ruen D Smith, (Oct2020)
try {
var session = gs.getSession();
var clientData = session.getClientData('incidentsysid').toString();
var clientData2=session.getClientData('incidentnumber').toString();
if (!gs.nil(clientData)) {
current.parent = clientData.toString();
gs.log(clientData2+';'+clientData+';'+current.number, 'busRule: relate INC to REQ - GetSession');
session.clearClientData('incidentsysid');
session.clearClientData('incidentnumber');
}
} catch (ex) {
}
})(current, previous);
Comments
Post a Comment