Skip to main content

GlideModal with UI Page: add a worknote / escalate RITM (called via UI Action)

UI Action

var title = getMessage('Enter New Work Note'); var gm = new GlideModal('add_work_note'); // UI Page gm.setTitle(title); gm.setPreference("sysparm_target_table", "sc_req_item"); //--add whatever table gm.setPreference("sysparm_target_sys_id", g_form.getUniqueValue()); gm.render();





UI Page



HTML

<?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:ui_form> <div class="form-group"> <input type="hidden" name="target_table" id="target_table" value="${RP.getWindowProperties().get('sysparm_target_table')}"/> <input type="hidden" name="target_sys_id" id="target_sys_id" value="${RP.getWindowProperties().get('sysparm_target_sys_id')}"/> <input type="hidden" id="cancelled" name="cancelled" value="false"/> <textarea id="new_work_note" name="new_work_note" class="form-control"></textarea> </div> <g:dialog_buttons_ok_cancel ok="return onSubmit();" cancel="return onCancel();" /> </g:ui_form> </j:jelly>








Client script

function onCancel() { var c = gel('cancelled'); c.value = "true"; GlideDialogWindow.get().destroy(); return false; } function onSubmit() { var work_note = gel("new_work_note").value; if (work_note != "") return true; }







Server Processing script

if (cancelled == "false") { var taskRecord = new GlideRecord(target_table); if (taskRecord.get(target_sys_id)) { taskRecord.work_notes = 'RITM escalated: ' + new_work_note; //--escalate tasks var grTasks = new GlideRecord('sc_task'); grTasks.addActiveQuery(); grTasks.addQuery('request_item', target_sys_id); grTasks.query(); if (grTasks.getRowCount() > 0) { taskRecord.u_escalation_count = taskRecord.u_escalation_count + 1; taskRecord.update(); while (grTasks.next()) { //--check if task assignment group has group email, or send to members gs.addInfoMessage('escalating task ' + grTasks.number + ' to group: ' + grTasks.assignment_group.getDisplayValue()); gs.eventQueue('ritm.escalate', grTasks, '', ''); } } } } var urlOnStack = target_table + ".do?sys_id=" + target_sys_id; response.sendRedirect(urlOnStack);

Comments

Popular posts from this blog

Get URL Parameter - server side script (portal or classic UI)

Classic UI : var sURL_editparam = gs . action . getGlideURI (). getMap (). get ( ' sysparm_aparameter ' ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); } Portal : var sURL_editparam = $sp . getParameter ( " sysparm_aparameter " ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); }

ServiceNow - script include: build up the results as a JSON object (array) - example 2

function call var sCurrentGroupMembers = new <script_include> (). getGroupMembers ( group_sysid ); gs . print ( 'sCurrentGroupMembers:' + sCurrentGroupMembers ); var oGroupMembers = JSON . parse ( sCurrentGroupMembers ); gs . print ( JSON . stringify ( oGroupMembers . users )); oNewGroupMember = JSON . parse ( group_members ); var oGroupConfig = getGroupDeltas ( oGroupMembers . users , oNewGroupMember ); gs . print ( JSON . stringify ( oGroupConfig . remove )); gs . print ( JSON . stringify ( oGroupConfig . add )) output : *** Script: sCurrentGroupMembers: {"manager":"3b2649efdb0f8c10cc0652f3f39xxxxx", "email":"", "type":"33a2226edb99c340edfc7cbdae96xxxx", "description":"Created for xyz", "users":[{"user":"3b2649efdb0f8c10cc0652f3f396xxxx"},{"user":"856a8f71db3d73041b4ffc45ae96196a"},{"user":"3752771