Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

GlideRecord addQuery comparing two field values

toneyvecchio1
Tera Expert

Greetings,

I was hoping for assistance, likely a simple answer but too much time has been spent already trying 70 different methods and I am sure someone here will know it.

Stripped down to its basic form I am trying to addQuery against 1 field on a table and 1 field on another table, stepping through a reference field.

var getCvr = new GlideRecord('pm_portfolio_project');

getCvr.addQuery('project.u_start_date','=','u_project_start_date');

getCvr.query();

while(getCvr.next()) {
//do stuff

getCvr.update();
}

I have confirmed the project.u_start_date works fine, I am assuming its comparing 'u_project_start_date' as a literal string and not evaluating the field from the original table. Any advise?

1 ACCEPTED SOLUTION

Replace the addquery with this


getCvr.addEncodedQuery('pm_project.start_dateSAMEASstart_date@day')



If this doesn't work, open the table > filter the record as needed > right click on the query end >do a copy query> use it in encoded query


View solution in original post

5 REPLIES 5

Kalaiarasan Pus
Giga Sage

Exactly. It will treat anything within quotes as a string lliteral.


So try




getCvr.addQuery('project.u_start_date',u_project_start_date);


Gave it a run, pretty reasonable but to no avail.



Here is the code, just stamping a string field to test functionality.


var getCvr = new GlideRecord('pm_portfolio_project');


getCvr.addQuery('project.u_start_date',u_project_start_date);
getCvr.query();


while(getCvr.next()) {
          getCvr.u_gtg_plan = 'Found a match';
          getCvr.update();
}




Both date fields are basic, no time.


Case 1 = Expected Positive


Case 2 = Expected Negative


Case 3 = Earlier Test with simple addQuery



find_real_file.png


Replace the addquery with this


getCvr.addEncodedQuery('pm_project.start_dateSAMEASstart_date@day')



If this doesn't work, open the table > filter the record as needed > right click on the query end >do a copy query> use it in encoded query


And it found a match! Variable string was different but you're right once I grabbed the query from the filter and used encoded it worked. Thank you so much.