FoxInCloud
A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
Gravatar is a globally recognized avatar based on your email address. A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  Paul
  All
  Nov 22, 2017 @ 10:08pm

Hi FiC team,
This is a list I am maintaining that outlines problems I have encountered while evaluating FiC for use with our project.
Some of it is brief and generalised, but I am including it all in the hope that other people with similar issues and questions might chip in with suggestions, or at least feel that they are not alone!
My purpose here is twofold - firstly to let you know about the pain-points I am experiencing so that these can be improved or explained for the future and secondly to seek your help about the corruption problem itemised below.

I really want to make FiC succeed for us, it holds a lot of promise for converting a project into a viable web product - but I am finding it a demoralising and time consuming task to get to the point where a prototype can be achieved :

  1. documentation is haphazard
  1. the guides are useful, but sometimes out of date with how things currently work
  1. many things are not documented
  1. the provided samples simply do not work, or only partially work, out of the box

Problems Encountered

FAA

  1. prompts for a prefix to prepend to files it will create - it does not do this consistently
  2. some .prg files are not renamed
  1. some files in the Site folder are not renamed
  1. always initially scans the project in copy mode, even when you want to work in source mode; it doesn't remember the previous mode
  2. you can't just analyse a particular file, you have to analyse the entire project; this takes hours
  3. when FAA is run from the FoxInCloud VFP menu item, attempting to adapt only the current module (via the little button) produces this error :
    awoop.fxp!Awadapter.adapt_awsubclassredefine() - awoop.fxp!Awadapter.lvcxapp_folder() - Folder where FoxInCloud sub-classes library should be stored is invalid
    I have ensured that the new xxx class library is in the path, so I don't know why this errors out
  4. Checkbox controls are not redefined to the FIC base class after adaptation, our base class needs to be manually redefined to the awchk class, located in the class library (xxxfic) that has been created
  5. Our own base class library is corrupted by FAA, with method code all screwed up and the new code "overlapping" over several methods; note that code is being truncated and extended between methods, as though a line counter or similar is wrong in FAA as it loops over the rows of the vcx. This makes FAA unusable currently.

i. example : StandardTextbox.MouseEnter

*used to be this 😗
LPARAMETERS nButton, nShift, nXCoord, nYCoord
do UpdateHelpBox with this
*now it is this 😗
tation Assistant version 2.25 (source mode) on 11/21/2017 16:44:45
this.

ii. example : StandardTextbox.Init

*used to be this 😗
Local TheAutoCompleteFile, AutoCompleteError
=Dodefault()
this.OldValue = this.value
this.setdecimals()
... etc...etc
*now it is this 😗
lectsAll = .T.
If this.InputMaskSetInGotFocus
this.InputMask = ""
this.InputMaskSetInGotFocus = .F.
endif
ENDPROC

a new and unrelated method is now being defined!!

PROCEDURE Click
LPARAMETERS nButton, nShift, nXcoord, nYcoord && Implementation documentation: see code inherited from aw.vcx!aw???.Click() (click 'View Parent Code')

IF (Type('m.thisForm.wlHTMLgen') == 'L' AND m.thisForm.wlHTMLgen) && Added by FoxInCloud Adaptation Assistant version 2.25 (source mode) on 11/21/2017 16:44:45
...etc...etc
ENDIF && Added by FoxInCloud Adaptation Assistant version 2.25 (source mode) on 11/21/2017 16:44:45

=Dodefault()
...etc...etc
*** The user has clicked on a

...truncated at this point
  1. A pageframe class in one of our class libraries is also corrupted by FAA and will not open, need to investigate further what has happened

IIS

  1. manually set script-mapping for .xxx to wc.dll
  2. manually set HTTP redirect to index.xxx
  3. I'm not even sure why having .xxx files are necessary in the web site. I can understand that the code files are renamed to xxx*.* to avoid conflict with others, but what is the link between those names and the names of the web-based files?

Other

  1. Manually alter the Temp file path in xxxtest.ini and wc.ini - must have a \ suffix
  2. It is assumed that there is a folder named Progs containing your program files - change this in xxxtest.prg
  3. I unsuccessfully tried running the TasTrade sample application. If you simply run it then it produces a "blank" messagebox form in VFP when it starts up and nothing else works; source code unavailable so can't debug further. I can get the customer form appearing in VFP by specifying it as a startup form in the Server class, but nothing works in it.

.
The FAA, item f, is what I am stumped on now and cannot proceed.
Please give me some advice on the class library corruption issue.
Has anyone else seen this before?

Thanks.
Paul

Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  FoxInCloud Support - Thierry N.
  Paul
  Nov 23, 2017 @ 04:45am

Hi Paul,

Thanks for your interest in FoxInCloud, and your rich and dense post; hopefully I can address all your points.

Generally speaking:

  • what you've experienced as 'not working' has been tested over and over on our end and runs successfully for hundreds of other users… as the issue is probably specific to your configuration, we need to know more about it;
  • we need details to find solutions! 'it does not work' only generates frustration, not solutions;
  • we help better when users raise one point at a time, and we generally provide a solution within hours;
  • we love screenshots and videos! When something does not work for you, a video lets us see immediately what's going on and find a solution; definitely worth the 5' it takes shooting;
  • other FoxInCloud users may want to share their feedback about the support they get from here…

documentation

Exists but spread around source code and guides so far; now that the development of functionalities will slow down, we're looking at putting a centralized documentation on top of our priorities.

So far we support users for what is not documented;
it also helps us understand what users feel most difficult;
eg. we recently discovered users thinking FiC could not work on a server because of the server form visible in the VFP IDE.
FoxInCloud is a complex system (twice as large as West-Wind Web Connect), we definitely need to understand what and where users need documentation, which items need be prioritized so that we can set up a comprehensive structure; and users can help us a lot understand their needs…

FAA does not remember source / test mode

here is a video showing this working; if it does not happen the same on your side, please provide your log and config file (*.xml) to support at foxincloud dot com

Demo apps not working & source code not available
I unsuccessfully tried running the TasTrade sample application. If you simply run it then it produces a "blank" messagebox form in VFP when it starts up and nothing else works;

Same as above, this video might help you see how you can make it work

FAA does not rename some .prg files and some files in the Site folder

Which files?
Can you provide your Adaptation log to support at foxincloud dot com?

FAA scrambling source code

That is why you have the test mode for; you should not go to source mode before checking that the Automated Adaptation has not damaged your source code.

Please provide your adapted Class Library to support at foxincloud dot com; don't worry about dependencies as we shall just check in the methods field which adaptation has overwritten some endproc; if your code is confidential, you can delete the other classes from the vcx.

manually set script-mapping for .xxx to wc.dll, manually set HTTP redirect to index.xxx

should be automated through IIS 6 scripting -- no error message? -- nothing in the log?

not even sure why having .xxx files are necessary in the web site

A better alternative to redirection is to define index.xxx as your site's default document; for that, IIS requires a file to exist physically on disk, even empty.

you can't just analyse a particular file, you have to analyse the entire project; this takes hours

agreed, might be a valid improvement for large projects like yours seem to be. However, when you click the adapt button, you get a drop-down menu where you can select the x files modified since last analysis …; did you try this option?

FAA is run from the FoxInCloud VFP menu item, attempting to adapt only the current module (via the little button) produces this error…

Thanks, we'll dig into this

Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  Paul
  FoxInCloud Support - Thierry N.
  Nov 23, 2017 @ 07:52pm

Thank you for your prompt reply and for your videos 😃 Alas, my experience does not align with what is shown; when I get some time (not for a few days) I will produce some videos illustrating the problems.

In the meantime I have emailed you the logs and other files as requested, hopefully they shed some light on the issues.

Paul

Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  Gilles Lajot-Sarthou
  Paul
  Nov 23, 2017 @ 11:25pm

Hy Paul, F.I.C is really efficient and operational, but for developers of desktop applications, the needs of WEB resources are not known to them. When coming from the Foxpro world, the WEB context is hard to grasp.

The first thing to understand:

  • in desktop mode, an application runs for a single user. If there are multiple users, there will be multiple instances of the application, one for each user. The developer does not have to worry about managing the resources of several users on the same instance of execution of his application.
  • in web mode, an application, in a single execution instance, manages several users. In WEB, the developer, through his development language, must manage the resources of each user (context, tables in use, pointers to tables, access rights, forms used, etc. ..) and each event triggered, each resource requested by a user, restore for it the initial context, process the event or respond to the requested resource then save the context of this user and finally move to treat another user in the same way.

Foxpro, in an execution instance, is not multi-task or multi-user, so it does not know how to handle multi-user actions. The major role of F.I.C is to support this multi-user management, rendering the context, processing the action of the user, saving the context of this user, etc. for each user. This is possible in WEB, because there is decoupling between the client-side interface and the server-side processing. On the client side, each HTTP request sent by an internet browser and transmitted to the WEB server, will be through wConnect understood and re-transmitted to the FoxPro executable adapted by FoxInCloud that runs in COM mode on the server. Thus FoxInCloud and wConnect allow this executable Foxpro, to treat one by one and in turn, the needs of each of the users issuing HTTP requests in which are present the actions to carry out in your Foxpro application.

It is essential to understand this well, because without this knowledge, we can not understand why in each event method of its application Foxpro, FoxInCloud adds code, properties, events etc and how does it interface with the wConnect resources ..

Regards Gilles

Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  FoxInCloud Support - Thierry N.
  Paul
  Nov 24, 2017 @ 01:13am

Hi Paul,

In the meantime I have emailed you the logs and other files as requested, hopefully they shed some light on the issues.

Thanks for these files;

compile classlib fixes the 'scrambled code' issue.

Now we need to know why, after altering its code, FAA did not properly compile this class library as it should have…
(done in class.destroy(), should always occur unless VFP process is killed).

Update: after compile classlib, please watch tlcClasses.err: there is a compilation error in MODIFY CLASS standardtreeview of "tlcclasses.vcx" method removenode that requires a manual rework.

Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  FoxInCloud Support - Thierry N.
  Paul
  Nov 24, 2017 @ 02:17am

Hello again Paul,

'c:\work_foxincloud\4manufacturing\programs\viewdefinitions.prg' takes about 1 hour to analyze… we may have some potential optimization here… would you mind sending this file to support at foxincloud dot com so that we can see why it takes so long?

Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  FoxInCloud Support - Thierry N.
  Paul
  Nov 24, 2017 @ 02:22am

Hello again Paul,

Many of your problems were due to the fact that, because of your project name beginning with a digit (4manufacturing), the XML file where your settings should have been saved is invalid (4manufacturing.pjx-awAdapter.xml) -- see also this ER.

We've updated awAdapter.app to work this issue around; it'll update automatically next time you start FAA

Please delete 4manufacturing.pjx-awAdapter.xml before restarting FAA.

Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  FoxInCloud Support - Thierry N.
  Paul
  Nov 24, 2017 @ 02:56am

Paul,

Please hold on until we fix an issue in sub-classing aw.vcx!aw* and replacing native classes by these sub-classes. Not sure it's due to the other issues you had or something more generic.

Thanks

Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  FoxInCloud Support - Thierry N.
  Paul
  Nov 24, 2017 @ 06:49am

Paul,

successfully adapted your class library (tlcclasses.vcx) on our end: base classes redefined and code adapted.

you may want to restart the whole process from scratch…

after adaptation, please make sure in the log that base class replacement has occurred;
your log currently has (dates and times non significant):

21/11/2017 14:31:45 - (89) awadapter.filesvcxclassupdate(): 13/43 - Replacing native class 'Form' by class 'sficfrm' of 'H:\Work\Common\foxpro\vfpclasses\FoxInCloud\sfic.vcx'
================================================================================
14:31:45 - (01) Updating 'c:\work_foxincloud\common\foxpro\vfpclasses\splash.vcx' - none
14:31:45 - (02) Updating 'c:\work_foxincloud\common\foxpro\vfpclasses\tlcclasses.vcx' - none
14:31:45 - (03) Updating 'c:\work_foxincloud\4manufacturing\classes\schedulermps.vcx' - none

you should have DONE instead of none in almost all lines.

Another point: I mentioned earlier viewDefinition.prg taking a long time analyzing; if it's only a view definition program (create SQL view (m.thisView) as SELECT …), you can just ignore this program in FAA, FAA will skip it in analyze and adapt steps; you should save at least one hour in analysis (50%).

Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  FoxInCloud Support - Thierry N.
  Paul
  Nov 24, 2017 @ 07:26am

we need to know why, after altering its code, FAA did not properly compile this class library (tlcClasses.vcx) as it should have…

the log gives the answer:

16:51:57 - (004) Compiling 'c:\work_foxincloud\common\foxpro\vfpclasses\tlcClasses.vcx' - acoop.fxp!Awadapter.filescompile() - FAILURE: Filecompile() - Method or procedure filecompile(): error #3 ("File is in use") at code line #3,331 ("compile classlib (m.tcFileAddr)") - File 'TLCCLASSES.VCX'

this is an issue with VFP who often does not properly release the *.vcx. In this case you need to compile manually: compile classlib TLCCLASSES.VCX

I see also in the log numerous compilation errors like:

16:52:29 - (031) Compiling 'c:\work_foxincloud\4manufacturing\programs\quickqt.prg' - acoop.fxp!Awadapter.filescompile() - FAILURE: Filecompile() - File 'QUICKQT.PRG' compiled with error(s):
If (Rtrim(FieldValuesObject.Status) == Rtrim(GetStatus('', "ReWork")) or FieldValuesObject.Status <= GetStatus('', "Prototype")) And  *-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.25 (source mode) on 11/21/2017 15:38:35

it looks like the comment *-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.25 (source mode) on 11/21/2017 15:38:35 was not added properly;

could you provide this adapted code?
Thanks

Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  Paul
  FoxInCloud Support - Thierry N.
  Nov 26, 2017 @ 02:17pm

Hi,

Here are some answers to your questions and points :

  • "prompts for a prefix to prepend to files it will create - it does not do this consistently"
    I can't remember which files exactly, but I ended up copying all files from C:\Program Files (x86)\Microsoft Visual FoxPro 9\Tools\AB\AW\App\Progs and renaming those that needed to be.
    Also found that xxx.js, xxx.css got renamed to .js and .css (i.e. no file name before the extension).

  • "manually set script-mapping for .xxx to wc.dll, manually set HTTP redirect to index.xxx"
    No errors reported by the installer. Which log should I look at?

  • "FAA not remembering copy vs source mode"
    It also always shows a message that "project was never analyzed successfully in Test/Copy mode...", probably the same issue.
    I will try again with the new version of FAA.

  • "drop-down menu where you can select the x files modified since last analysis …; did you try this option?"
    Always lists all files as needing modification, probably related to the issue above.

  • "there is a compilation error in MODIFY CLASS standardtreeview of "tlcclasses.vcx" method removenode that requires a manual rework
    and I see also in the log numerous compilation errors like: ...FAILURE: Filecompile() - File 'QUICKQT.PRG' compiled with error(s):..."
    These are caused by the same problem : an "inline" call, with a line continuation, to the messagebox() function is being adapted to "code...FAA comment...code", which is invalid.
    Example :
    before
    if a = b and ;
    messagebox("why") = IDNO
    after
    if a = b and ;
    *-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.25 (source mode) on 11/21/2017 15:38:35
    *-FIC- Messagebox("why") = IDNO
    wMessageBox("why") = IDNO
    .
    I note that an "inline" call to the messagebox() function that does not involve a line continuation is not adapted at all.
    Example :
    before
    if a = b and messagebox("why") = IDNO
    after
    if a = b and messagebox("why") = IDNO
    .
    I'm going to replace all messagebox() calls with a call to a wrapper function anyway, so this particular problem will go away.

  • "I mentioned earlier viewDefinition.prg taking a long time analyzing"
    Yes, the file just contains lots of SQL view definitions, so I will ignore it.
    What do I need to do to ignore it, prior to going through the first FAA analysis (I know the UI provides this ability, but you have to analyse it at least once).

Thank you for investigation and fix, your help is much appreciated.
If you have finished your immediate changes to FAA I will start everything again from scratch and see how I go.

Paul

Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  FoxInCloud Support - Thierry N.
  Paul
  Nov 27, 2017 @ 03:24am

Hi Paul,

Thanks for providing detailed elements, it really helps us fix issues going beyond the scope of our tests.

Files not renamed during installation

As log does not report any error, we need to investigate further; please allow us 24 hours more

14/11/2017 12:23:12 - Checking a compatible IIS version is installed on this computer, completed with success
14/11/2017 15:58:53 - Checking a compatible FoxInCloud Application Server version is installed on this computer, completed with success
14/11/2017 15:59:00 - Installing FoxInCloud scripts virtual Directory, completed with success
14/11/2017 16:14:38 - Installing West-Wind Web Connect temporary directory, completed with success
14/11/2017 16:15:45 - Installing application's site virtual directories and script-mapped extensions (over wc.dll), completed with success

"FAA not remembering copy vs source mode" and "drop-down menu where..."

Fixed thanks to our workaround to a wwConfig bug; should be OK now.

replace all messagebox() calls with a call to a wrapper function

This won't work for MessageBox() used to get an answer from the user as you need to specify the call-back method as first parameter and this call-back must be defined from within a form member; see this demo for more explanation and code sample.

Please give us a couple of day to better replace this code pattern.

viewDefinition.prg

After checking source code, FAA also analyses ignored and excluded files…
We will remove the auto-analyze feature (just keep the message box do you want to analyze…) and add an option to skip excluded and/or ignored files.

Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  Paul
  FoxInCloud Support - Thierry N.
  Nov 27, 2017 @ 12:31pm

Thanks for the update.
Please let me know when you have finished this round of changes to FAA and I will then try again.

Paul

Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  FoxInCloud Support - Thierry N.
  Paul
  Nov 27, 2017 @ 12:33pm

we should get through tomorrow (day after tomorrow for you)

Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  FoxInCloud Support - Thierry N.
  Paul
  Nov 28, 2017 @ 09:57am

Hi,

today we have:

  • fixed the messageBox() adaptation issue
  • created the form where user can select ignored and / or excluded files for analysis
  • enhanced the installation log messages

Tomorrow we'll further analyze the installation issues and release the new version of FAA hopefully tomorrow evening (Wednesday evening Paris time)

Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  FoxInCloud Support - Thierry N.
  Paul
  Nov 29, 2017 @ 04:27am

FAA enhancements completed and updated on our site! Just restart FAA and it'll update automatically.

Please consider adapting and installing in Test / Copy mode first.

Server and Site files installation improved:

  • raise error if app code or program folder are empty
  • rebuild files whenever user changes app code
  • better visual feedback when installation completes
Gravatar is a globally recognized avatar based on your email address. re: A summary of my problems trying to evaluate FiC, with a particular problem that needs to be fixed before I can continue
  Paul
  FoxInCloud Support - Thierry N.
  Dec 1, 2017 @ 04:14pm

Thank you for quick help, your service is excellent.
I will try again with FAA later next week and let you know how I get on (several projects to juggle at the same time, I'm sure you know how it is).

Paul

© 1996-2024