Hey everyone - I’m working on a script that allows the user to look up a real estate company that is in the DB. I’m using javascript fetch to send a string to my cfc. The functions access is set to remote and the data is coming through.
The way I worked the function is to do an initial query with a cachedwithin for 5 minutes to hold all the data, which is only about 200 companies. I’m trying to use queryFilter, instead of QoQ but I’m getting no love. Here’s the code:
remote any function getOffice(required string char)
output=false returnformat='json'{
local.q;
local.returnArr = [];
local.str = arguments.char;
query name="local.q" cachedwithin="# createTimespan(0, 0, 5, 0) #"
sql="
SELECT DISTINCT d.referral_paid_to as agent, d.state, d.referred_by as company, d.referral_agent_email as email,
d.referral_agent_phone as cellphone, d.referral_address as officeaddress, d.referral_city as officecity,
d.referral_state as officestate, d.referral_zip_code as officezip,
s.state_desc
FROM debtor d
JOIN states s ON d.state = s.state_abbrev
ORDER BY state, company, agent
";
// HERE IS THE CODE THAT IS NOT PERFORMING
local.filtered = queryFilter(local.q, function(fld){
return fld.company.findnocase('#local.str#')
} )
The error I’m getting is this:
As an experiment I ran the followiong
local.filtered = queryFilter(local.q, function(fld){
return fld.company.findnocase('char')
} )
That gave me the result I was looking for, but obviously I can’t hard code in the string.
Any ideas?
OS: macOS Catalina v.10.15.4
Java Version: 1.8.0_152
Tomcat Version: 9.0.8
Lucee Version: Lucee 5.3.7.15-SNAPSHOT