[CLOSED] using FOC_NONE "TEST VALUE IS LONGER THAN THE FIELD FORMAT LENGTH"
I created a report which I'd like to run with the user entering a prompt through a launch page.
Before creating the launch page I am testing the fex with this code:
quote:
-DEFAULT &ASGX = 'sm19';
-SET &ASGX = IF &ASGX.EVAL EQ '' THEN 'FOC_NONE' ELSE '&ASGX'; -RUN
TABLE FILE MMDB1 PRINT WORKDESC ADDRESS DYYMD COMPUTE DIFF/I8 = DATEDIF(DYMD,TDATE,'D'); COMMENT1 COMMENT2 COMMENT3 -* BY ASSIGNEE BY WO WHERE STATUS EQ 'O'; WHERE DYYMD GE AGEDIF;
WHERE ASSIGNEE EQ '&ASGX' ;
END -RUN
When I run this fex, I am surprised to see this error as the ASSIGNEE field is A4 in the MMDB1 table.
quote:
0 ERROR AT OR NEAR LINE 40 IN PROCEDURE ADHOCRQ FOCEXEC * (FOC015) THE TEST VALUE IS LONGER THAN THE FIELD FORMAT LENGTH: &ASGX BYPASSING TO END OF COMMAND (FOC009) INCOMPLETE REQUEST STATEMENT -EXIT
Any ideas?This message has been edited. Last edited by: Kerry,
-SET &ASGX = IF &ASGX EQ ' ' THEN 'FOC_NONE' ELSE &ASGX ;
It thinks &ASGX is actually &ASGX ... 5 characters.
"There is no limit to what you can achieve ... if you don’t care who gets the credit." Roger Abbott
August 30, 2012, 10:17 AM
PBrightwell
Because your &ASGX is contained within quotes, put a .EVAL on it.
Pat WF 7.6.8, AIX, AS400, NT AS400 FOCUS, AIX FOCUS, Oracle, DB2, JDE, Lotus Notes
August 30, 2012, 10:44 AM
Francis Mariani
There is too much EVAL in the world. Just code it like dhagen suggests. Equating one Dialogue Manager variable to another does not require EVAL, which needs to be used in very rare cases.
Francis
Give me code, or give me retirement. In FOCUS since 1991
Production: WF 7.7.05M, Dev Studio, BID, MRE, WebSphere, DB2 / Test: WF 8.1.05M, App Studio, BI Portal, Report Caster, jQuery, HighCharts, Apache Tomcat, MS SQL Server
August 31, 2012, 10:05 AM
PBrightwell
quote:
WHERE ASSIGNEE EQ '&ASGX'
This is NOT equating one Dialogue Manager variable to another.
Pat WF 7.6.8, AIX, AS400, NT AS400 FOCUS, AIX FOCUS, Oracle, DB2, JDE, Lotus Notes