FoxInCloud
Code Location
Gravatar is a globally recognized avatar based on your email address. Code Location
  Johnny
  All
  Mar 4, 2021 @ 09:16am

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.

Gravatar is a globally recognized avatar based on your email address. re: Code Location
  FoxInCloud Support - Thierry N.
  Johnny
  Mar 4, 2021 @ 10:18am

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.

Gravatar is a globally recognized avatar based on your email address. re: Code Location
  Johnny
  FoxInCloud Support - Thierry N.
  Mar 5, 2021 @ 08:13am

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

Gravatar is a globally recognized avatar based on your email address. re: Code Location
  FoxInCloud Support - Thierry N.
  Johnny
  Mar 5, 2021 @ 08:35am

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 from awprj.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() by do (DOS_AB + "AB.prg")
  • save and compile
  • close FWAS, open VFP9 IDE, open project

Error should no longer happen.

Gravatar is a globally recognized avatar based on your email address. re: Code Location
  Johnny
  FoxInCloud Support - Thierry N.
  Mar 11, 2021 @ 08:39am

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.

Gravatar is a globally recognized avatar based on your email address. re: Code Location
  Gilles Lajot-Sarthou
  Johnny
  Mar 11, 2021 @ 11:57pm

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

Gravatar is a globally recognized avatar based on your email address. re: Code Location
  FoxInCloud Support - Thierry N.
  Johnny
  Mar 12, 2021 @ 09:26am

Hi Johnny,

  1. Not sure why you use the class browser instead of a plain modify class awprj of aw (in FoxinCloud IDE)
  2. gcSetConfirm looks like a variable where set('confirm') is stored for being later restored, FoxinCloud uses the class abSet (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

Gravatar is a globally recognized avatar based on your email address. re: Code Location
  Johnny
  FoxInCloud Support - Thierry N.
  Apr 7, 2021 @ 03:17am

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.

Gravatar is a globally recognized avatar based on your email address. re: Code Location
  FoxInCloud Support - Thierry N.
  Johnny
  Apr 7, 2021 @ 08:00am

Johnny, please try this

  • Close all projects
  • clear all
  • compile classlib aw
  • compile classlib ffc
  • build project …
© 1996-2021