How to call dynamic query in the UI Page refernce field
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
â01-27-2022 05:40 AM
Hi Everyone,
I have been creating an ui page where I am trying to select a change related to an incident and I am setting that change value in the incident form's caused by field.
-How can I pass the dynamic query in the ui page ?
-How to get the sys_id in a client script without using get and setPreference methods?
- How can I redirect it a same current incident page ?
URL:
(url = 'active=true^stateIN0,3^end_dateBETWEENjavascript:gs.daysAgo(14)@javascript:gs.endOfToday()^ORwork_endBETWEENjavascript:gs.daysAgo(14)@javascript:gs.endOfToday()' +
'^cmdb_ci=' + g_form.getValue('business_service') + '^ORcmdb_ci=' + g_form.getValue('cmdb_ci'))
My code: 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">
//my code
<g:ui_form>
<input type="hidden" id="system_id" name="system_id" value="${sys_id}"/>
<tr>
<td style ="width:25%">
<g:form_label>
Related Change Requests :
</g:form_label>
<td style ="width:60%">
<g:ui_reference name= "chg" id="chg" query="active=true^end_dateBETWEENjavascript:gs.beginningOfLast7Days()@javascript:gs.beginningOfLast2Hours()" table="change_request"/> ---> // the query i want to replace with a dynamic query
</td>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:right;padding-top:10px;">
<button class="btn btn-default" onclick="closeWindow()" style="margin-right:10px;">Cancel</button>
<button class="btn btn-primary" onclick="update_ticket()">Ok</button>
</td>
</tr>
</g:ui_form
</j:jelly>
Client script in UI page:
function update_ticket() {
var gdw = new GlideDialogWindow.get();
var rel_chg = gel('chg').value;
var sys_id = gdw.getPreference('sys_id'); // is there any other way to get the sys_id
var inc = new GlideRecord('incident');
inc.addQuery('sys_id', sys_id);
inc.query();
if (inc.next()) {
inc.setValue('caused_by', rel_chg);
inc.update();
GlideDialogWindow.get().destroy();
}
Processing script in UI Page
var url = 'incident.do?sys_id=' + system_id;
response.sendRedirect(url); ----> redirecting to an incident page where the sys id is empty
Client Script in IT incident form:
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
//Type appropriate comment here, and begin script below
var dia = new GlideDialogWindow('inc_chg');
dia.setTitle('Related IT Changeee');
dia.setSize(650,650);
dia.setPreference('sys_id', g_form.getUniqueValue());
dia.render();
}
Thanks in advance,
Dinesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
â01-28-2022 08:50 AM
You can try this code,
<j:set var="jvar_sysID" value="${sysparm_sys_id}"/>
<g:evaluate var="jvar_filter" jelly="true">
var recordGR = new GlideRecord("incident");
recordGR.get(jelly.jvar_sysID);
var filter = 'active=true^stateIN0,3^end_dateBETWEENjavascript:gs.daysAgo(14)@javascript:gs.endOfToday()^ORwork_endBETWEENjavascript:gs.daysAgo(14)@javascript:gs.endOfToday()' +
'^cmdb_ci=' + recordGR.getValue('business_service') + '^ORcmdb_ci=' + recordGR.getValue('cmdb_ci')
filter;
</g:evaluate>
<g:ui_reference name="incident" id="incident" table="incident" query="${jvar_filter}" />