ODAG Template App: 'Unexpected token' Error with Dynamic WHERE Clause
I’m working on an ODAG (On-Demand App Generation) setup in Qlik Sense Enterprise, and I’m facing an error in the template app's load script when dynamically building a WHERE clause.
Error Message:
Unexpected token: '0101', expected one of: 'OPERATOR_PLUS','OPERATOR_MINUS','OPERATOR_MULTIPLICATION','OPERATOR_DIVISION','OPERATOR_STRING_CONCAT','like','and',...
ODAG Code:
SUB ExtendWhere1(Name, ValVarName) LET T = Name & '_COLNAME'; LET ColName = '$(T)'; LET Values = $($(ValVarName)); IF len(Values) > 0 THEN IF len('$(WHERE_PART1)') > 0 THEN LET WHERE_PART1 = '$(WHERE_PART1) AND ([$(ColName)] IN ($(Values)))'; ELSE LET WHERE_PART1 = '[$(ColName)] IN ($(Values))'; ENDIF ENDIF END SUB
SET PURCHASEDATE = '$(ods_financial_month)'; SET PURCHASEDATE_COLNAME = 'PURCHASEDATE'; SET WHERE_PART1 = '';
FOR EACH fldname IN 'PURCHASEDATE' LET rawval = $($(fldname)); IF IsNull(rawval) THEN LET rawval = ''; ENDIF IF len(rawval) > 0 THEN LET vallist = chr(39) & replace(rawval, ',', chr(39) & ',' & chr(39)) & chr(39); CALL ExtendWhere1('$(fldname)', 'vallist'); ENDIF NEXT fldname
TRACE Generated WHERE clause: ; TRACE $(WHERE_PART1);