How to call dynamic query in the UI Page refernce field

Dinesh9
Giga Contributor

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

5 REPLIES 5

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}" />