How to fetch setPrefrence value from client script to UI page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
16 hours ago
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:
Best Regards,
Meenal
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
16 hours ago
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;
}
}
});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
15 hours ago
Hi ,
Thank you replying , tried printing change_sys_id on HTML it is coming as blank
Best Regards,
Meenal
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
15 hours ago
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! 🙏
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader