UI Action Prompt for User input

Sam Motley
Giga Guru

Hi All, 

We've been asked to create a ui action to close duplicate tickets in the incident table but when closed the advisor should be prompted to input the parent request ticket number if it's empty. 

I've looked around and found various ways to do this but was hoping to seek advice here if someone has had something like this asked from their team? 

I've tried using GlideModalV3 but honestly the documentation leaves much to be desired 

 

Thanks all 

1 ACCEPTED SOLUTION

@Sam Motley 

so your final code will be like this

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>
        
        <g:evaluate var="jvar_sysid" expression="RP.getWindowProperties().get('sys_id')"/>
        <input type="hidden" id="cancelled" name="cancelled" value="false"/>
        <input type="hidden" id="incidentSysID" name="incidentSysID" value="${jvar_sysid}"/>
        <table>
            <tr>
                <td id="label.parent request" class="label" nowrap="true" height="23px" type="string" choice="0"><span id="status." class="mandatory label_description" mandatory="true" oclass="mandatory">$[SP]</span><label for="parent request" onclick="" dir="">Parent Ticket:</label></td>
                <td nowrap="true"><g:ui_reference name="parent_request" id="parent request" table="incident"/></td></tr>
        </table> 
        <table width="100%" cellpadding="0" cellspacing="0">
            <tr><td align="left" nowrap="true"><br /><g:dialog_buttons_ok_cancel ok="return validateForm();" cancel="return onCancel();"/></td></tr>
        </table>
    </g:ui_form>
</j:jelly>

Client Script:

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

function validateForm() {
	alert('inside validateform');
	if (gel('parent_request').value == '') {
		alert("${JS:gs.getMessage('Please input Parent Ticket')}");
		return false;
	}
	else {
		var sysId = gel('incidentSysID').value;
		var parentValue = gel('parent_request').value;
		var app = new GlideRecord("incident");
		if(app.get(sysId)){
			app.parent_request = parentValue;
			app.incident_state = '7';
			app.work_notes = "Closed as Duplicate";
			app.close_code = "Duplicate Call";
			app.close_notes = "Closed as Duplicate";
			app.state = '7';
			app.update();
		}
		window.open('/incident.do?sys_id='+sysId,'_self');
	}
}

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

32 REPLIES 32

Sam Motley
Giga Guru

Hi @Ankur Bawiskar 

sorry to bug you about this again but one last requirement has come in for this i'm trying to figure out and that's taking the ticket description field from the ticket closed and add it as a work note for the parent ticket...

Do you have any idea's how i could achieve this? I've tried defining description as a variable in the ui action but this just stops the prompt from appearing. 

if you have a moment please consider this last request 

thank you 

Hi,

Since this is an answered question would you mind posting a new thread and tag me there and I can guide you in that post.

Please share complete scripts there as well.

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Thanks @Ankur Bawiskar much appreciated 

i've raised that here@: https://community.servicenow.com/community?id=community_question&sys_id=2922f3a51b865d50f47b1fca234bcb0e 

 

cheers