Table of Contents

Service Portal


Server Side Scripts

Get Table and SYS ID

getTableSYSID.js
data.table = input.table || $sp.getParameter("table");
data.sys_id = input.sys_id || $sp.getParameter("sys_id");

Valid Glide Record

validGR.js
	var gr = new GlideRecord(data.table);
	if (!gr.isValid())
		return;

Valid SYS ID

validSYSID.js
if (!gr.get(data.sys_id))
return;

Button Visibility

buttonVisibility.js
	if(data.table == 'incident' && gr.active == true && gr.incident_state == 6 && (gr.caller_id == gs.getUserID() || gr.opened_by == gs.getUserID())){
		data.showWidget = true;
		data.showReopen = true;
 
	} else {
		data.showWidget = false;
		data.showReopen = false;
	}

Input

input.js
	if (input && input.action === 'reopen') {
 
		// If Incident table
		if (data.table == 'incident') {
			gr.setValue('incident_state', 2);
			gr.setValue('state', 2);
			gr.comments = "Ticket reopened with comments: "+ input.reopenComments;
			gr.update();
		}
	}

Complete Function for Above scripts

serverScriptFunction.js
(function() {
 
	// Get table & sys_id
	data.table = input.table || $sp.getParameter("table");
	data.sys_id = input.sys_id || $sp.getParameter("sys_id");
 
	// Valid GlideRecord
	var gr = new GlideRecord(data.table);
	if (!gr.isValid())
		return;
 
	// Valid sys_id
	if (!gr.get(data.sys_id))
		return;
 
	//Button Visibility
	if(data.table == 'incident' && gr.active == true && gr.incident_state == 6 && (gr.caller_id == gs.getUserID() || gr.opened_by == gs.getUserID())){
		data.showWidget = true;
		data.showReopen = true;
 
	} else {
		data.showWidget = false;
		data.showReopen = false;
	}
 
	//input
	if (input && input.action === 'reopen') {
 
		// If Incident table
		if (data.table == 'incident') {
			gr.setValue('incident_state', 2);
			gr.setValue('state', 2);
			gr.comments = "Ticket reopened with comments: "+ input.reopenComments;
			gr.update();
		}
	}
})();