Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

How to filter reference field records based on another fields

chanikya
Mega Sage

Hi All,

Please help me here : as of now we are displaying reference field values based on another field . but Now i want to filter Data reference fields records based on two fields from Form.

Script include :

var filterTask1 = Class.create();
filterTask1.prototype = {
initialize: function() {},

getProjects: function(portfolio) {

var prj = [];
var gr = new GlideRecord("task");
gr.addEncodedQuery("sys_class_name=pm_project^ORsys_class_name=dmn_demand");
gr.addEncodedQuery('state=2^ORstate=10^ORstate=8');
gr.addEncodedQuery('ref_pm_project.primary_portfolio=' + portfolio + '^ORref_dmn_demand.portfolio=' + portfolio);
gr.query();
while (gr.next()) {
prj.push(gr.sys_id.toString());
}
var strId = prj.join(',');
return 'sys_idIN' + strId;

},

type: 'filterTask1'
};

Reference Qualifier : javascript: new filterTask1().getProjects(current.u_portfolio);

find_real_file.png

 

 

 

Issue : Now functionality need to work based on  two fields , 1. Category 2. Portfolio

kindly let me know how to fix this one.

find_real_file.png

 

1 ACCEPTED SOLUTION

Pranav Bhagat
Kilo Sage

You can add the two fields in the function

example

Script include :

var filterTask1 = Class.create();
filterTask1.prototype = {
initialize: function() {},

getProjects: function(portfolio,task) {

var prj = [];
var gr = new GlideRecord("task");
gr.addEncodedQuery("sys_class_name=pm_project^ORsys_class_name=dmn_demand");
gr.addEncodedQuery('state=2^ORstate=10^ORstate=8');
gr.addEncodedQuery('ref_pm_project.primary_portfolio=' + portfolio + '^ORref_dmn_demand.portfolio=' + portfolio +'^parent=' +task); // add your logic
gr.query();
while (gr.next()) {
prj.push(gr.sys_id.toString());
}
var strId = prj.join(',');
return 'sys_idIN' + strId;

},

type: 'filterTask1'
};

Reference Qualifier : javascript: new filterTask1().getProjects(current.u_portfolio,current.sys_id);

View solution in original post

2 REPLIES 2

Pranav Bhagat
Kilo Sage

You can add the two fields in the function

example

Script include :

var filterTask1 = Class.create();
filterTask1.prototype = {
initialize: function() {},

getProjects: function(portfolio,task) {

var prj = [];
var gr = new GlideRecord("task");
gr.addEncodedQuery("sys_class_name=pm_project^ORsys_class_name=dmn_demand");
gr.addEncodedQuery('state=2^ORstate=10^ORstate=8');
gr.addEncodedQuery('ref_pm_project.primary_portfolio=' + portfolio + '^ORref_dmn_demand.portfolio=' + portfolio +'^parent=' +task); // add your logic
gr.query();
while (gr.next()) {
prj.push(gr.sys_id.toString());
}
var strId = prj.join(',');
return 'sys_idIN' + strId;

},

type: 'filterTask1'
};

Reference Qualifier : javascript: new filterTask1().getProjects(current.u_portfolio,current.sys_id);

Hi Pranav,

thanks for the Logic. i have added two fields .

now data is coming correctly

Thanks again.