Focal Point
[SOLVED] ON TABLE SAVE AS...

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/7711056203

October 14, 2008, 02:37 PM
NimaS
[SOLVED] ON TABLE SAVE AS...
Hello,
I am using on table save as to store activityids in a focus table.

TABLE FILE TBLCOURSELISTALL
PRINT ACTIVITYID
WHERE ACTIVITYNAME EQ &ACTIVITYNAME
ON TABLE SAVE AS ACTLIST
END

So my where statement which uses ACTLIST is: WHERE (ACTIVITYID IN FILE ACTLIST);

This works great except when ACTLIST is empty because there is no value in &ACTIVITYNAME. I get the error:
(FOC226) FILEDEF OR ALLOC MISSING FOR EXTERNAL FILE: (ACTLIST)

How do I correct this so that it works when ACTLIST contains values and just ignores the WHERE when ACTLIST is empty?

Thanks for the help!
Nima Saini

This message has been edited. Last edited by: Kerry,


7.6.4
October 14, 2008, 02:43 PM
GinnyJakes
Nima,

The easy answer is to put the following code after your table request:
-RUN
-IF &LINES EQ 0 GOTO BYPASS;
...Rest of code...  


Since you are new to the post, you might want to acquaint yourself with the Search button above. You can search on -RUN or &LINES.

This is all part of Dialogue Manager and you can use the doc link in the upper right hand corner to find the "Developing Reporting Applications" manual for release 7.6, Chapter 5 for more details on Dialogue Manager.

Happy reading!


Ginny
---------------------------------
Prod: WF 7.7.01 Dev: WF 7.6.9-11
Admin, MRE,self-service; adapters: Teradata, DB2, Oracle, SQL Server, Essbase, ESRI, FlexEnable, Google
October 14, 2008, 02:51 PM
NimaS
Thanks. I am already using a bunch of labels to control the logic in my code so rather than repeating code in a bypass label (which is the same code but one less where statement), how can I just simply get the one WHERE to work when ACTLIST is empty? Thanks again.


7.6.4
October 14, 2008, 03:08 PM
Francis Mariani
You can create a Dialogue Manager variable that contains your WHERE statement:

TABLE FILE TBLCOURSELISTALL
PRINT ACTIVITYID
WHERE ACTIVITYNAME EQ &ACTIVITYNAME
ON TABLE SAVE AS ACTLIST
END
-RUN

-SET &WHERE1 = IF &LINES EQ 0 THEN '' ELSE 'WHERE (ACTIVITYID IN FILE ACTLIST);';



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