Customizations to Major Incident Management Module

Joshua DeSouza1
Giga Contributor

Details: We have some requirements to configure the OOB functionality of Major Incident Management but we cannot figure out where to make the edits (or if it is even possible).

1. When proposing an Incident for a Major Incident the Pop Up has the Work Notes field as Mandatory and the Business Impact field as non-mandatory. We would like to make the Business Impact field mandatory as well. I searched and could not figure out how the Work Notes field is being passed as Mandatory.

2. The Major Incident Workbench has a tab called: Post Incident Report. We would like to add some more fields to that which we already created in the normal UI. For example I have a field called: What was the impact? which is on the Form Section for Post Incident Report but we cannot see that carry over to the Major Incident Workbench.

Thank you,

 

Josh

1 ACCEPTED SOLUTION

Joshua DeSouza1
Giga Contributor

Hi Rathika and Sindhu, 

 

Thank you for your input but that was not what I meant. There is a UI Pop Up that has two fields on in within Major Incident Management and Once field is mandatory and the other is not. I ended up making a hi ticket and this was the response I got from ServiceNow which solved my issue:

 

SOLUTION PROPOSED:

For the first point, the major incident proposal is controlled by a UI Page called "mim_propose". The sys_id is 3c02c808873013000e3dd61e36cb0b71 For your second point, the Major Incident Management is controled by a UI Page called "workbench" you can make your modifications here. The sys_id is 7b4bd5635f380300f51ca184ff466650. As I am sure you are aware but I have to mention it anyways, any issues you run into whil customizing will unfortuantely not be supported by ServiceNow Customer support as we strictly work on Break/Fix type of isses. For these cases, we suggest you reach out to our community. http://community.servicenow.com (home of our user forums and a number of technical blogs) http://community.servicenow.com/forums (direct link to the forums) http://community.servicenow.com/answered-topics (direct link to forum topics marked as "Answered") Note: the Community can be searched and browsed without logging in, but to post a question or comment, log-in is required. Today, Community log-in is separate from HI log-in. If this functionality is extremely important and you need assistance implementing it, then we can always forward your incident to our professional services team. Bear in mind that this is a chargeable service.

 

 

View solution in original post

12 REPLIES 12

Hi Joshua,

 

CAn you help me with the changes you made in the UI Page to make business impact mandatory

Hi -

 

I updated the following UI Page: mim_propose

<div class="form-group" id="work-notes-wrapper">
<label class="col-sm-2 control-label" for="mim-propose-business-impact">
<span mandatory="true" class="required-marker"></span>
${gs.getMessage('Business Impact')}
</label>
<div class="col-sm-10">
<textarea required="true" class="form-control propose-modal-textarea" name="mim-propose-business-impact" id="mim-propose-business-impact"></textarea>
</div>
</div>

 

Now technically it does not force the user to input data into the text field (I wasn't able to figure that out) but it does look like its mandatory which was better than nothing.

 

Hi Joshua,

 

Thanks for replying, I did try that earlier but that did not make the Business impact field mandatory(no red asterisk on the field as in the worknotes)

Also add this: 

 

<div class="col-sm-10">
<textarea required="true" class="form-control propose-modal-textarea" name="mim-propose-business-impact" id="mim-propose-business-impact"></textarea>
</div>

Actually here is the full html for the UI Page: 

 

 

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:evaluate var="jvar_isNextPg" expression="RP.getParameterValue('sysparm_next_pg')"/>
<j:if test="${jvar_isNextPg == 'true'}">
<style>
.no_next {
display: none !important;
}
</style>
</j:if>
<style>
body {
overflow-x: hidden;
}
.form-horizontal {
margin-top: 5px;
margin-bottom: 20px;
}
.propose-modal-textarea {
resize: vertical;
min-height: 120px
}
#dialog_buttons .btn{
margin-left: 10px;
padding-left: 15px;
padding-right: 15px;
}
#work-notes-wrapper .required-marker{
display: inline-block;
}
#page_timing_div {
display:none !important;
}
</style>
<script>
var config = {
workspace: '${JS_STRING:RP.getParameterValue('sysparm_workspace')}' == 'true'
};
var iframeMsgHelper = (function () {
function createPayload(action, modalId, data) {
return {
messageType: 'IFRAME_MODAL_MESSAGE_TYPE',
modalAction: action,
modalId: modalId,
data: (data ? data : {})
};
}

function pm(window, payload) {
if (window.parent === window) {
console.warn('Parent is missing. Is this called inside an iFrame?');
return;
}
window.parent.postMessage(payload, location.origin);
}

function IFrameMessagingHelper(window) {
this.window = window;
this.src = location.href;
this.messageHandler = this.messageHandler.bind(this);
this.window.addEventListener('message', this.messageHandler);
}

IFrameMessagingHelper.prototype.messageHandler = function (e) {
if (e.data.messageType !== 'IFRAME_MODAL_MESSAGE_TYPE' || e.data.modalAction !== 'IFRAME_MODAL_ACTION_INIT') {
return;
}
this.modalId = e.data.modalId;
};

IFrameMessagingHelper.prototype.confirm = function (data) {
var payload = createPayload('IFRAME_MODAL_ACTION_CONFIRMED', this.modalId, data);
pm(this.window, payload);
};

IFrameMessagingHelper.prototype.cancel = function (data) {
var payload = createPayload('IFRAME_MODAL_ACTION_CANCELED', this.modalId, data);
pm(this.window, payload);
};

return new IFrameMessagingHelper(window);
}());

</script>
<div class="form-horizontal no_next">
<div class="form-group" id="work-notes-wrapper">
<label class="col-sm-2 control-label" for="mim-propose-work-notes">
<span mandatory="true" class="required-marker"></span>
${gs.getMessage('Work notes')}
</label>
<div class="col-sm-10">
<textarea required="true" class="form-control propose-modal-textarea" id="mim-propose-work-notes" type="text" onkeyup="proposeModal.workNotesOnChange()"></textarea>
</div>
</div>
<div class="form-group" id="work-notes-wrapper">
<label class="col-sm-2 control-label" for="mim-propose-business-impact">
<span mandatory="true" class="required-marker"></span>
${gs.getMessage('Business Impact')}
</label>
<div class="col-sm-10">
<textarea required="true" class="form-control propose-modal-textarea" name="mim-propose-business-impact" id="mim-propose-business-impact"></textarea>
</div>
</div>
</div>
<div id="dialog_buttons" class="clearfix pull-right no_next">
<button type="button" class="btn btn-default" onclick="proposeModal.close()" title="${gs.getMessage('Close the dialog')}">${gs.getMessage('Cancel')}</button>
<button type="button" class="btn btn-primary disabled" aria-disabled="true" id="mim-propose-button" title="${gs.getMessage('Propose Major Incident')}" onclick="proposeModal.propose()">${gs.getMessage('Propose')}</button>
</div>
</j:jelly>