Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

UI Page not redirecting back to the source record

AARTHI
Tera Contributor

I have configured an UI Page for closure survey which pops up on change of state to close in sn_customerservice_task Table. On submission of this survey, it should redirect to the task form and should store the response in the close notes of the task. It also should insert a record in a custom table to store the responses. 

 

But my script isn't redirecting and it says the following:

 

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<response>
<error>
<detail>null</detail>
<message>Requested URI does not represent any resource</message>
</error>
<status>failure</status>
</response>
 
Posting my client script and UI Page scripts for reference. Please help!
 
 

 

CLIENT SCRIPT - ONCHANGE OF State field 
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }

    //Type appropriate comment here, and begin script below
    if (g_form.getValue('state') == '3' && (g_form.getValue('short_description').indexOf('SMOKE') || g_form.getValue('short_description').indexOf('Smoke') || g_form.getValue('short_description').indexOf('smoke') ) )  {
        var url = top.location.href;
        if (url.includes('now/cwf/agent')) {

            var fields = [{
                    type: 'choice',
                    name: 'smoketest',
                    label: 'Did the smoke test failed?',
                    value: ' -- Select -- ',
                    choices: [{
                            displayValue: 'Yes',
                            value: 'yes'

                        },
                        {
                            displayValue: 'No',
                            value: 'no'
                        }
                    ],
                    mandatory: true
                }, {
                    type: 'textarea',
                    name: 'count',
                    label: 'How many times?[only fill,when "Did the smoke test failed?" is "Yes"]',
                    mandatory: false,
                }, {
                    type: 'textarea',
                    name: 'errorcode',
                    label: 'What is the Error code occurred?',
                    mandatory: true,
                }, {
                    type: 'textarea',
                    name: 'reason',
                    label: 'Reason for failure?',
                    mandatory: true,
                }, {
                    type: 'choice',
                    name: 'configissue',
                    label: 'Is there any configuration Issue?',
                    value: ' -- Select -- ',
                    choices: [{
                            displayValue: 'Yes',
                            value: 'yes'

                        },
                        {
                            displayValue: 'No',
                            value: 'no'
                        }
                    ],
                    mandatory: true,
                }, {
                    type: 'choice',
                    name: 'api',
                    label: 'Is the API working as designed?',
                    value: ' -- Select -- ',
                    choices: [{
                            displayValue: 'Yes',
                            value: 'yes'
                        },
                        {
                            displayValue: 'No',
                            value: 'no'
                        }
                    ],
                    mandatory: true,
                },
                {
                    type: 'choice',
                    name: 'sla',
                    label: 'SLA Breached?',
                    value: ' -- Select -- ',
                    choices: [{
                            displayValue: 'Yes',
                            value: 'yes'
                        },
                        {
                            displayValue: 'No',
                            value: 'no'
                        }
                    ],
                    mandatory: true,
                },
                {
                    type: 'choice',
                    name: 'breachreason',
                    label: 'Reason for breach?[only fill,when "SLA Breached" is "yes"]',
                    value: ' -- Select -- ',
                    choices: [{
                            displayValue: 'Onboarding Team',
                            value: 'onb'
                        },
                        {
                            displayValue: 'L2 Support Team',
                            value: 'l2'
                        },
                        {
                            displayValue: 'L3 Support Team',
                            value: 'l3'
                        },
                        {
                            displayValue: 'Line Of Business',
                            value: 'lob'
                        },
                        {
                            displayValue: 'Integration Coordinator',
                            value: 'intcoord'
                        }
                    ],
                    mandatory: false
                },
                {
                    type: 'textarea',
                    name: 'closenotes',
                    label: 'Close notes',
                    mandatory: true,
                }
            ];
            g_modal.showFields({
                title: "Survey",
                fields: fields,
                size: 'lg'
            }).then(function(fieldValues) {

                var smoketest = fieldValues.updatedFields[0].value;
                var count = fieldValues.updatedFields[1].value;
                var errorcode = fieldValues.updatedFields[2].value;
                var reason = fieldValues.updatedFields[3].value;
                var configissue = fieldValues.updatedFields[4].value;
                var api = fieldValues.updatedFields[5].value;
                var sla = fieldValues.updatedFields[6].value;
                var breachreason = fieldValues.updatedFields[7].value;
                var tarRec = {};
                tarRec.smoketest = smoketest;
                tarRec.count = count;
                tarRec.errorcode = errorcode;
                tarRec.reason = reason;
                tarRec.configissue = configissue;
                tarRec.api = api;
                tarRec.sla = sla;
                tarRec.breachreason = breachreason;
                tarRec.cstaskSYSID = g_form.getUniqueValue();


                var ga = new GlideAjax('x_usbna_cf_csm.CFONBSmokeTest');
                ga.addParam('sysparm_name', 'insertIntoSurvey');
                ga.addParam("sysparm_targetRec", JSON.stringify(tarRec));
                ga.getXML(function(response) {
                    var result = response.responseXML.documentElement.getAttribute('answer');

                });
                var closenotes = 'Close Notes : ' + fieldValues.updatedFields[8].value + '\n\n';
                closenotes += 'Survey\n';
                closenotes += '1) Did the smoke test failed? : ' + fieldValues.updatedFields[0].value + '.\n';
                if (smoketest == 'yes') {
                    closenotes += '1a) How many times? : ' + fieldValues.updatedFields[1].value + '.\n';
                }
                closenotes += '2) What is the Error code occurred? : ' + fieldValues.updatedFields[2].value + '.\n';
                closenotes += '3) Reason for failure? : ' + fieldValues.updatedFields[3].value + '.\n';
                closenotes += '4) Is there any configuration Issue? : ' + fieldValues.updatedFields[4].value + '.\n';
                closenotes += '5) Is the API working as designed? : ' + fieldValues.updatedFields[5].value + '.\n';
                closenotes += '6) SLA Breached? : ' + fieldValues.updatedFields[6].value + '.\n';
                if (sla == 'yes') {
                    closenotes += '6a) Reason for breach? : ' + fieldValues.updatedFields[7].value + '.\n';
                }
                g_form.setValue('close_notes', closenotes);
                g_form.save();
            });


        }
        var tableName = g_form.getTableName();
        var caseNum = g_form.getValue('number');
        var surveyPage = new GlideModal('x_usbna_cf_csm_CFONB-SmokeTestSurvey');
        surveyPage.setTitle('SmokeTest Survey');
        surveyPage.setSize(700, 400);

        surveyPage.setPreference('sys_case_sys_ID', g_form.getUniqueValue());
        surveyPage.setPreference('sys_table_name', tableName.trim());
        surveyPage.setPreference('sys_case_number', caseNum.trim());
        surveyPage.render();
    }
}

 

 

 

 

 

UI PAGE HTML CODE:

<?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>
	<body onload="hideFields()">
 
  <g:evaluate var="jvar_sysId" expression ="RP.getWindowProperties().sys_case_sys_ID"/>	
  <g:evaluate var="jvar_tableName" expression ="RP.getWindowProperties().sys_table_name"/>
  <g:evaluate var="jvar_caseNum" expression ="RP.getWindowProperties().sys_case_number"/>
  
	
    <input type="hidden" id="contact_case_id" name="contact_case_id" value="${jvar_sysId}"/>
	<input type="hidden" id="table_name" name="table_name" value="${jvar_tableName}"/>
	<input type="hidden" id="case_num" name="case_num" value="${jvar_caseNum}"/>
	
		
	<br/><br/>

	<label for="smoketest"><b>Did the smoke test failed?</b></label>
    <select class="form-select form-select-lg form-control" name='smoketest' id='smoketest' onChange="showHide(this)">
	 <option value="none" selected="selected">--None--</option>
	 <option value="yes">Yes</option>
     <option value="no">No</option>
     
     </select>
		
	<br/>

	<label for="count" id='count_label'><b>How many times?</b></label>
	<textarea class="form-control" name='count' placeholder="Count : " id='count'/>
    	
	<br/>

	<label for="errorcode" id='errorcode_label'><b>What is the Error code occurred?</b></label>
    <textarea class="form-control" name='errorcode' placeholder="Error Code : " id='errorcode'/>
		
	<br/>

	<label for="reason" id='reason_label'><b>Reason for failure?</b></label>
    <textarea class="form-control" name='reason' placeholder="Reason : " id='reason'/>
		
	<br/>

	<label for="configissue"><b>Is there any configuration Issue?</b></label>
    <select class="form-select form-select-lg form-control" name='configissue' id='configissue'>
	 <option value="none" selected="selected">--None--</option>
	 <option value="yes">Yes</option>
     <option value="no">No</option>
     
     </select>
		
	<br/>

	<label for="api"><b>Is the API working as designed?</b></label>
    <select class="form-select form-select-lg form-control" name='api' id='api'>
	 <option value="none" selected="selected">--None--</option>
	 <option value="yes">Yes</option>
     <option value="no">No</option>
     
     </select>
		
	<br/>	

	<label for="sla"><b>SLA breached?</b></label>
    <select class="form-select form-select-lg form-control" name='sla' id='sla' onChange="showHidereason(this)">
	 <option value="none" selected="selected">--None--</option>
	 <option value="yes">Yes</option>
     <option value="no">No</option>
     
     </select>
		
	<br/>	

	<label for="breachreason" id='breachreason_label'><b>Reason for breach?</b></label>
    <select class="form-select form-select-lg form-control" name='breachreason' id='breachreason' >
	 <option value="none" selected="selected">--None--</option>
     <option value="onb">Onboarding Team</option>
     <option value="l2">L2 Support Team</option>
	 <option value="l3">L3 Support Team</option>
	 <option value="lob">Line Of Business</option>
	 <option value="intcoord">Integration Coordinator</option>
     </select>
		
	<br/>	
	
	<label for="closenotes"><b>Close notes</b></label>
	<textarea class="form-control" name='closenotes' placeholder="Close notes" id='closenotes'/>
	
		
	<br/><br/>
	
	<div class="modal-footer">
	  <span style="float:right">
      <button  class="btn btn-secondary" onclick="return cancelPage();">Cancel</button>
      <button  class="btn btn-primary" onclick="return submitRecord();" name="submit" id="submit" >Submit</button>
	  </span>
    </div>
	
	</body>
	</g:ui_form>
</j:jelly>

 

 

 

 

UI PAGE CLIENT SCRIPT :
function cancelPage() {
    GlideDialogWindow.get().destroy();
    return false;
}

function submitRecord() {

    var smoketest = gel('smoketest').value;
    var count = gel('count').value;
    var errorcode = gel('errorcode').value;
    var reason = gel('reason').value;
    var configissue = gel('configissue').value;
    var api = gel('api').value;
    var sla = gel('sla').value;
    var breachreason = gel('breachreason').value;
    var closenotes = gel('closenotes').value;

    //alert(smoketest + count + errorcode + reason);
    if (smoketest == 'none') {
        alert('Did the smoke test failed? is Mandatory');
        return false;
    }
    if (smoketest == 'yes' && count == ' ') {
        alert('How many times? is Mandatory');
        return false;
    }
    if (errorcode == ' ') {
        alert('What is the Error code occurred? is Mandatory');
        return false;
    }
    if (reason == ' ') {
        alert('Reason for failure? is Mandatory');
        return false;
    }

    if (configissue == 'none') {
        alert('Is there any configuration Issue? is Mandatory');
        return false;
    }
    if (api == 'none') {
        alert('Is the API working as designed? is Mandatory');
        return false;
    }
    if (sla == 'none') {
        alert('SLA Breached? is Mandatory');
        return false;
    }
    if (sla == 'yes' && breachreason == 'none') {
        alert('Reason for breach? is Mandatory');
        return false;
    }
    if (closenotes == ' ') {
        alert('Close Notes is Mandatory');
        return false;
    }
    return true;
}

function showHide(object) {

    if (object.value == 'yes') {
        gel('count').style.display = '';
        gel('count_label').style.display = '';


    } else {
        gel('count').style.display = 'none';
        gel('count_label').style.display = 'none';

    }
}

function showHidereason(object) {

    if (object.value == 'yes') {
        gel('breachreason').style.display = '';
        gel('breachreason_label').style.display = '';


    } else {
        gel('breachreason').style.display = 'none';
        gel('breachreason_label').style.display = 'none';

    }
}

function hideFields() {

    gel('count').style.display = 'none';
    gel('count_label').style.display = 'none';
    gel('breachreason').style.display = 'none';
    gel('breachreason_label').style.display = 'none';

}
addLoadEvent(function() {
    hideFields();

});

 

 
 
 
 

 

UI PAGE PROCESSING SCRIPT:
gs.info("cstask1");
var smoketest = smoketest;
var count = count;
var errorcode = errorcode;
var reason = reason;
var configissue = configissue;
var api = api;
var sla = sla;
var breachreason = breachreason;
gs.info("SMOKETEST" + smoketest + count + errorcode + reason + configissue + api + sla + breachreason);

var closenotes = 'Close Notes : ' + closenotes + '\n\n';
closenotes += 'Survey\n';
closenotes += '1) Did the smoke test failed? : ' + smoketest + '.\n';
if (smoketest == 'yes') {
    closenotes += '1a) How many times? : ' + count + '.\n';
}
closenotes += '2) What is the Error code occurred? : ' + errorcode + '.\n';
closenotes += '3) Reason for failure? : ' + reason + '.\n';
closenotes += '4) Is there any configuration Issue? : ' + configissue + '.\n';
closenotes += '5) Is the API working as designed? : ' + api + '.\n';
closenotes += '6) SLA Breached? : ' + sla + '.\n';
if (sla == 'yes') {
    closenotes += '6a) Reason for breach? : ' + breachreason + '.\n';
}
gs.info("SMOKETEST" + closenotes);
var surIns = new GlideRecordSecure('x_usbna_cf_csm_cf_survey');
surIns.initialize();
surIns.did_the_smoke_test_failed = smoketest;
surIns.how_many_times = count;
surIns.what_is_the_error_code_occurred = errorcode;
surIns.reason_for_failure = reason;
surIns.is_there_any_configuration_issue = configissue;
surIns.is_the_api_working_as_designed = api;
surIns.sla_breached = sla;
surIns.reason_for_breach = breachreason;
if (case_num.startsWith('CSTASK')) {
    surIns.cstask_number = contact_case_id;
}
var inSys_id = surIns.insert();

gs.info("SMOKETEST" + inSys_id);

var Rec = new GlideRecordSecure(table_name);
Rec.get(contact_case_id);
Rec.query();
Rec.next();
Rec.close_notes = closenotes;
Rec.state = 3;
Rec.update();

//response.sendRedirect(gs.getUrlOnStack());
response.sendRedirect("sn_customerservice_task.do?sys_id=" + contact_case_id);

 

0 REPLIES 0