Relationship Query script from string

DoDo labs___
Mega Sage

Hi!

 

I have created the following script in Relationship:

 

(function refineQuery(current, parent) {

var lista = '';
var tomb = [];

var gr = new GlideRecord('problem');
gr.addQuery('number', current.sys_id);
gr.query();
if (gr.next())
    {
        lista = gr.u_change_list;
    }  

tomb = lista.split(",");

for (var i = 0; i < tomb.length; i++)
    {
        current.addQuery(tomb[i], parent.number);
    }

})(current, parent);
 
DoDolabs____0-1720003329499.png

 

 
In the Problem table, there is a string-type dictionary entries. This entry contains change requests separated by commas. For example: CHG0034611,CHG0034595,CHG0034539.
I would like to display these in the related list, but no changes are displayed.
 

Can anyone please help me regarding it.

Thanks!

 
1 ACCEPTED SOLUTION

DoDo labs___
Mega Sage
this is what worked for me:
 
(function refineQuery(current, parent) {

var lista = '';

var gr = new GlideRecord('problem');
gr.addQuery('sys_id', parent.sys_id);
gr.query();
if (gr.next())
    {
        lista = gr.u_change_list;
    }  

current.addQuery('number', 'IN', lista);

})(current, parent);

View solution in original post

6 REPLIES 6

Sandeep Rajput
Tera Patron
Tera Patron

@DoDo labs___ Could you please update the script as follows and see if it works.

 

(function refineQuery(current, parent) {

var lista = '';
var tomb = [];

var gr = new GlideRecord('problem');
gr.addQuery('number', current.sys_id);
gr.query();
if (gr.next())
    {
        lista = gr.u_change_list;
    }  

tomb = lista.split(",");

for (var i = 0; i < tomb.length; i++)
    {
        current.addQuery('number', tomb[i]);
    }

})(current, parent);

Hope this helps.

Unfortunately, no changes have displayed yet.

Community Alums
Not applicable

Hi @DoDo labs___ ,

 

I think the issue is with the query-

Can you please try the below script-

(function refineQuery(current, parent) {
    var lista = '';
    var tomb = [];

    var gr = new GlideRecord('problem');
    gr.addQuery('number', current.sys_id);
    gr.query();
    if (gr.next()) {
        lista = gr.u_change_list;
    }

    // Split the list of change requests
    tomb = lista.split(",");

    // Build the query for the related list
    var changeGr = new GlideRecord('change_request');
    var encodedQuery = '';
    for (var i = 0; i < tomb.length; i++) {
        if (i > 0) {
            encodedQuery += '^OR';
        }
        encodedQuery += 'number=' + tomb[i];
    }
    if (encodedQuery) {
        current.addEncodedQuery(encodedQuery);
    }

})(current, parent);

 

If my response has resolved your query, please consider giving it a thumbs up ‌‌ and marking it as the correct answer‌‌!

 

Thanks & Regards,

Sanjay Kumar

@Community Alums Good catch.

 

@DoDo labs___ The script I suggested, is now updated based on Sanjay's suggestion.

(function refineQuery(current, parent) {

var lista = '';
var gr = new GlideRecord('problem');
gr.addQuery('number', current.sys_id);
gr.query();
if (gr.next())
    {
        lista = gr.u_change_list;
    }        
 current.addEncodedQuery('numberIN'+lista);

})(current, parent);