How to fetch setPrefrence value from client script to UI page

Meenal Gharat
Tera Guru

Hello Experts,

 

Need help to fetch setPrefrence  value from onchange client script to UI page. I want to get current record sys_id 

 

This is my client script:

 

   
  if (newValue) { // or use the numeric value if applicable
  alert(newValue);
        // Open the UI Page as a modal
        var dialog = new GlideDialogWindow('RITM Details');
        dialog.setTitle('Server Onboarding Details');
        dialog.setSize(800); // adjust size as needed
        dialog.setPreference('change_sys_id', g_form.getUniqueValue());
        dialog.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">
 
 <j:set var="change_sys_id" value="${jvar_change_sys_id}"/>
 

  <g:ui_form>
    <table>
    <p>${change_sys_id}</p>
      <tr>
        <td style="width:25%">
          <g:form_label>RITM-Ref:</g:form_label>
        </td>
        <td style="width:60%">
          <g:ui_reference name="RITM-Ref:" id="RITM-Ref:" query="cat_item.nameLIKEProject Request^variables.b12dcbd71b496c10537d2069bc4bcbe3=1000" table="sc_req_item" onchange="fetchRITMDetails()"/>
        </td>
      </tr>
 
 
Setting this change_sys_id on script include
MeenalGharat_0-1760606539774.png

 

 

Best Regards,

Meenal

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron
Tera Patron

@Meenal Gharat 

syntax is like this

Client Script:

var dialog = new GlideDialogWindow('show_resolution_code_notes');
	dialog.setTitle('Resolve');
	dialog.setPreference('sysid', g_form.getUniqueValue());
	dialog.render();

UI page: How to grab it is this

<?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().sysid"/> 

<p>${jvar_sysid}</p>
</g:ui_form>
</j:jelly>

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

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

View solution in original post

3 REPLIES 3

TejasSN_LogicX
Tera Contributor

Hi @Meenal Gharat ,,

 

hi you should try this with

var RITM_Helper = Class.create();
RITM_Helper.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    updateDescription: function() {
        // Fetch parameters from the UI Page GlideAjax call
        var changeSysId = this.getParameter('sysparm_change_sys_id');
        var ritm = this.getParameter('sysparm_ritm');
        var serverName = this.getParameter('sysparm_server_name');
        var ipAddress = this.getParameter('sysparm_ip_address');
        var subnetRange = this.getParameter('sysparm_subnet_range');
        var networkMask = this.getParameter('sysparm_network_mask');
        var domain = this.getParameter('sysparm_domain');
        var costCenter = this.getParameter('sysparm_cost_center');

        // Build description text
        var description_val =
            "RITM Reference: " + ritm + "\n" +
            "Server Name: " + serverName + "\n" +
            "IP Address: " + ipAddress + "\n" +
            "Subnet Range: " + subnetRange + "\n" +
            "Network Mask: " + networkMask + "\n" +
            "Domain: " + domain + "\n" +
            "Cost Center: " + costCenter + "\n";

        // Update the Change Request record using sys_id
        if (changeSysId) {
            var chg = new GlideRecord('change_request');
            if (chg.get(changeSysId)) {
                chg.description = description_val;
                chg.update();
                return "Change " + chg.number + " updated successfully.";
            } else {
                return "Change record not found for sys_id: " + changeSysId;
            }
        } else {
            return "No sys_id received.";
        }
    }

});

 

client script 

-

function updateChangeDescription() {
    var ga = new GlideAjax('RITM_Helper');
    ga.addParam('sysparm_name', 'updateDescription');
    ga.addParam('sysparm_change_sys_id', "${change_sys_id}");
    ga.addParam('sysparm_ritm', document.getElementById('ritm_ref').value);
    ga.addParam('sysparm_server_name', document.getElementById('server_name').value);
    ga.addParam('sysparm_ip_address', document.getElementById('ip_address').value);
    ga.addParam('sysparm_subnet_range', document.getElementById('subnet_range').value);
    ga.addParam('sysparm_network_mask', document.getElementById('network_mask').value);
    ga.addParam('sysparm_domain', document.getElementById('domain').value);
    ga.addParam('sysparm_cost_center', document.getElementById('cost_center').value);

    ga.getXMLAnswer(function(response) {
        alert(response);
    });
}

  try this script include but  

 

 

2)  very common ServiceNow pattern to pass thedata to   Client Script → UI Page → Script Include

client scritpt

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == oldValue) {
        return;
    }

    if (newValue) {
        var dialog = new GlideDialogWindow('RITM_Details');
        dialog.setTitle('Server Onboarding Details');
        dialog.setSize(800, 600);
        
        // Pass current record sys_id to UI Page
        dialog.setPreference('change_sys_id', g_form.getUniqueValue());
        
        dialog.render();
    }
}

ui page script

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide">

  <!-- Get value from client -->
  <j:set var="change_sys_id" value="${jvar_change_sys_id}" />

  <g:ui_form>
    <h3>Change Record Sys ID Passed:</h3>
    <p>${change_sys_id}</p>

    <table>
      <tr>
        <td style="width:25%">
          <g:form_label>RITM-Ref:</g:form_label>
        </td>
        <td style="width:60%">
          <g:ui_reference name="RITM_Ref"
                          table="sc_req_item"
                          query="cat_item.nameLIKEProject Request^variables.b12dcbd71b496c10537d2069bc4bcbe3=1000"
                          onchange="fetchRITMDetails()"/>
        </td>
      </tr>
    </table>
  </g:ui_form>

  <script>
    function fetchRITMDetails() {
        var changeSysId = "${change_sys_id}";
        alert("Sys_id from Client Script: " + changeSysId);

        // Call a Script Include to use this value
        var ga = new GlideAjax('RITM_Helper');
        ga.addParam('sysparm_name', 'getDetails');
        ga.addParam('sysparm_change_sys_id', changeSysId);
        ga.getXMLAnswer(function(response) {
            alert("Response from Script Include: " + response);
        });
    }
  </script>
</j:jelly>

 

and here isyou script include

var RITM_Helper = Class.create();
RITM_Helper.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    getDetails: function() {
        var sysId = this.getParameter('sysparm_change_sys_id');
        if (!sysId) {
            return "No sys_id received";
        }

        var chg = new GlideRecord('change_request');
        if (chg.get(sysId)) {
            return "Change Request Number: " + chg.number + " (" + sysId + ")";
        } else {
            return "No record found for sys_id: " + sysId;
        }
    }

});

 

 

 

Hi ,

 

Thank you replying , tried printing change_sys_id on HTML it is coming as blank 

 

Best Regards,

Meenal

Ankur Bawiskar
Tera Patron
Tera Patron

@Meenal Gharat 

syntax is like this

Client Script:

var dialog = new GlideDialogWindow('show_resolution_code_notes');
	dialog.setTitle('Resolve');
	dialog.setPreference('sysid', g_form.getUniqueValue());
	dialog.render();

UI page: How to grab it is this

<?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().sysid"/> 

<p>${jvar_sysid}</p>
</g:ui_form>
</j:jelly>

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

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