I'm trying to run a procedure that looks like this...
TABLE FILE SYSTABLE
SUM FST.NAME
BY NAME
-INCLUDE &&IBI_IF_FILE
ON TABLE PCHOLD FORMAT XML
END
In the users profile there is a line
-SET &&IBI_IF_FILE = e:\[path]\includefiles.fex
The contents of includefiles.fex is
WHERE NAME EQ 'CAR' OR 'GGSALES'
I've found two docs regarding this. One suggested using MRNOEDIT and the other suggested using a -DEFAULT. I've tried both but I keep getting "(FOC2905) &VARIABLE IS NOT ALLOWED AS A FILENAME IN THIS CONTEXT:"
DanThis message has been edited. Last edited by: Dan Pinault,
7.7.05M/7.7.03 HF6 on Windows Server 2003 SP2 output to whatever is required.
September 01, 2009, 03:57 AM
GamP
When executing the procedure, is the value of the variable correct? You can show all variables with the command '-? &' in the fex.
Other question is: have you tried it as '-INCLUDE &&IBI_IF_FILE.EVAL'?
GamP
- Using AS 8.2.01 on Windows 10 - IE11.
in Focus since 1988
September 01, 2009, 10:59 AM
j.gross
"(FOC2905) &VARIABLE IS NOT ALLOWED AS A FILENAME IN THIS CONTEXT: When operating under WFDESCRIBE, there are restrictions on where an &VAR or &&VAR may be used. -INCLUDE is one of those cases."
I believe this means the following:
When Autoprompt is active (IBIF_wfdescribe = XMLRUN or XMLPROMPT), the server will pre-scan the fex, along with any files referenced therein by (server-side) -INCLUDE, to prompt for undefined amper vars referenced in the fex code. That pre-scan does not perform amper var substitution in the -INCLUDE directive line to determine the identify of the included child fex -- instead it issues FOC2905 and stops dead.
To achieve a server-side -INCLUDE for the module whose name is contained in a global var, I suggest you hide the entire -include in a local amper var:
The Autoprompt pre-sccan will note that &where is defined by a -SET so not in need of Autoprompting, and will restrict itself to undefined vars it finds in the parent fex (plus any visible -INCLUDEs). Once the autoprompting is completed, the server's second-round execution on encountering
&where.EVAL
will evaluate and rescan the line, and find and process
-INCLUDE drive:\path\fexname
But any fex that you -INCLUDE in this manner had better not have amper variables that need Autoprompt!This message has been edited. Last edited by: j.gross,
- Jack Gross WF through 8.1.05
September 01, 2009, 01:01 PM
Dan Pinault
Jack,
Way to outsmart the compiler! Your technique of 'hiding' one variable inside another worked perfectly.
Thanks!
Dan
7.7.05M/7.7.03 HF6 on Windows Server 2003 SP2 output to whatever is required.
September 01, 2009, 06:42 PM
Gary Gerstung
The problem is your amper variable only contains the path you set it to not the contents of the file. This should solve your problem: Step 1: filedef a file using your amper variable ex: FILEDEF XYZ DISK &&IBI_IF_FILE.EVAL Step 2: Prior to your table request insert lines -READ XYZ &WHERE_STMT.A80 -RUN Step3 : In your table request insert the line &WHERE_STMT.EVAL