Hi,
Is there an option to keep all files required by a project local to the project folder?
It seems generated files are currently stored over 3 locations (listed below)
- %APPDATA%\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW
- %ProgramFiles%\Microsoft Visual FoxPro 9\Tools\AB\AW
- Application Folder
Thanks.
Hi Johnny,
%APPDATA%\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW
contains apps and user settings for FAA, nothing related to your application.
%ProgramFiles%\Microsoft Visual FoxPro 9\Tools\AB\AW
contains the FoxinCloud Application Server (FAS) code, shared across all applications you want to adapt to the web using FoxinCloud. As we very, very seldom break previous behavior with new releases, you can safely share this code across apps without the risk of breaking an adapted app functionality with a new release (for more details, search behavior change
on our roadmap)
Application Folder
contains all code specific to your application.
We offer no option to merge all these locations into one.
However once your adaption is completed and you no longer need FAA, you could probably copy FAS source code into your app folder, and change the set proc/classlib
accordingly. To be double checked anyway.
Please note that the installation package extends the rights in %ProgramFiles%\Microsoft Visual FoxPro 9\Tools\AB
to workaround UAC issues.
So far no one has objected to this folder distribution, maybe some other FoxinCloud user want to chime in and share experience.
Thanks for the reply.
I asked this question because the errors I get when compiling the adapted code usually has to do with a function or file reference not found.
As an example, when I open the adapted project in VFP 9, I sometimes get an error with function ab() not found - this error comes from awprj.Init
Unable to find class library WP
should belong to your application, no such class lib in FoxInCloud; if you locate the class lib, does it solve the issue? (not sure VFP stores the new location for real)
generally this error happens when you've once moved the class library to a location that is in the default directory or in the path; VFP finds the library, albeit in a location different from what is in the classloc
column, and accepts it without updating the classloc
column.
I sometimes get an error with
function ab() not found
- this error comes fromawprj.Init
right, happens is you use the standard VFP IDE instead of the 'FoxInCloud Web App Studio' (FWAS) with the specific shortcut.
please try this fix:
- open FWAS
modi class awPrj of aw method init
- menu > class > include file > home(1) + "tools\ab\ab.h"
- in .Init() code, replace
ab()
bydo (DOS_AB + "AB.prg")
- save and compile
- close FWAS, open VFP9 IDE, open project
Error should no longer happen.
Hi,
For some reason, I see the error below when I try to open the class awPrj.
When I try executing the adapted project from the FWAS studio, I see the error below.
I have searched through the project for gcSetConfirm and could not find it used/referenced anywhere except in the error logs.
Is there a way I can ensure that all codes related to my application are stored in the application folder? It seems the wp.vcx and aw.vcx both specific files to my code are stored in the program files folder but I would like to have them in my application folder for debugging purposes.
Hello Johnny it is a very bad idea to want to put everything in the same folder, both your application's source code and Foxincloud's. By leaving FoxInCloud in the vfp9 \ tools \ ab \ folder where it was installed and in your application to declare the paths in 'additive' mode, you will be able to make your application work and be able to use the debugger.
Regards Gilles
Hi Johnny,
- Not sure why you use the class browser instead of a plain
modify class awprj of aw
(in FoxinCloud IDE) gcSetConfirm
looks like a variable whereset('confirm')
is stored for being later restored, FoxinCloud uses the classabSet (modify program abDev.prg)
for this kind of operation, so beyond any doubt it does not belong to FoxinCloud. We recommend that you use the same mechanism everywhere you need to save, change and restore a setting; eg.
local abDeleted as abSet of abDev.prg
abDeleted = abSet('deleted', 'off')
…
…
&& restore set('deleted') to whatever it was before the abSet() line above.
abDeleted = .null. && solution 1
release abDeleted && solution 2
endproc && solution 3: VFP releases abDeleted automatically (recommended)
The error you see in the assert message box occurs while instantiating your app environment class (tficSets
) that FAA has built from your desktop app startup program, by mixing some FoxinCloud-specific code to the code read in your app main program, while commenting or conditioning instructions that shouldn't execute in Web mode.
As indicated by FAA during the adaptation process, and explained many times in this forum, YOU NEED TO REVISE THIS PROGRAM (modify command tficSets.prg
). FAA attempts to do the best possible job; however, due to the loose-typed nature of VFP code, FAA can have made some mistake in this process that only the original developer can review.
You'll probably find a call to a procedure names dosets
mentioned in the log.
If you need help to review this program, and unless it has something very confidential (and it should not, being a simple environment setting program, without business data except maybe the name of the database or tables that you can simply replace by 'aaaaa'), please feel free to share your tficSets.Init()
code.
Update: please read the documentation in tficSets.prg
carefully
Hi,
Thanks for your reply. I am still not having luck with the process.
I get the same “aw” class in use error when building using the GUI project interface.
CLEAR ALL EXTENDED prior to build does not clear the in use state.
I close FAA, I rename the file to proof its no longer in use. Then make copy in same name again. This is Ok.
Open FAA again.
I rename the file to proof its no longer in use. Then make copy in same name again. This is Ok.
Use build command:
BUILD EXE 'c:\project\testing.EXE' FROM 'c:\project\testing.PJX' RECOMPILE
I get “ffc” class in use and also “aw” class in use problem.
It would appear the act of building the project is causing the class(es) to go in use and cannot be compiled.