FoxInCloud
FoxInCloud Adapter Assistant
Gravatar is a globally recognized avatar based on your email address. FoxInCloud Adapter Assistant
  Martin
  All
  Feb 3, 2016 @ 02:39pm
Good morning,

Just had my first attempt at running the FoxInCloud Adapter Assistant over a large VFP project.

It successfully went through the registering, copying and analyzing inheritance steps and commenced scanning the code.

A wait window message them flashed up briefly stating:

"awoop.fxp!Awadapter.analyse_module_objectsadded__() - 'd:\...\classes\cmodecls.vcx', cchkmode2.Refresh(), adding object ".parent.cShpBase" to inventory having failed, after step 2-adapt, check that all its updateable properties..."

The form showed:

(665) Scanning code in project....
(004) Analysing procedure/function 'D:\...\devspace\local projects.......\Common\classes\cmodecls.vcx'
and was stuck at 0%

Things seemed to just stop, although the hour glass was still turning indicating something was going on. But after many hours nothing had changed.

Wondering whether others have experienced this and can perhaps point me to the cause.

Screenshots:


Thanks and regards,

Martin

Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  Rick Strahl
  Martin
  Feb 3, 2016 @ 03:28pm
There are a number of ways you can do this, but it's not directly related to EntityFramework. Basically you have to drop a little lower to the ADO.NET level, or in the case of the West Wind framework to the DataAccess component.

Following are 3 unit tests that demonstrate some of the different scenarios of returning a list of a known type, a generic DataReader (useful if you're returning something that doesn't map to a specific type), and capturing return values and output parameters.

[TestMethod]
public void SqlStoredProcedureToEntityList()
{
using (var context = new WebStoreContext())
{
IEnumerable<Customer> customers = context.Db.ExecuteStoredProcedureReader<Customer>("GetCustomers",
// named parameter requires CreateParameter
context.Db.CreateParameter("@cCompany","W%"));

Assert.IsNotNull(customers, "Customers should not be null: " + context.Db.ErrorMessage);
Assert.IsTrue(customers.Count() > 0, "Customer count should be greater than 0");
}
}

[TestMethod]
public void SqlStoreProcedureReader()
{

using (var context = new WebStoreContext())
{
DbDataReader reader = context.Db.ExecuteStoredProcedureReader("GetCustomers",
// named parameter requires CreateParameter
context.Db.CreateParameter("@cCompany", "W%"));

Assert.IsNotNull(reader, "Reader should not be null: " + context.Db.ErrorMessage);
Assert.IsTrue(reader.HasRows, "Reader should have rows");

while (reader.Read())
{
var company = reader["Company"] as string;
var entered = (DateTime) reader["Entered"];
Console.WriteLine(company + " " + entered.ToString("d"));
}
}
}

[TestMethod]
public void MyTestMethod()
{
using (var context = new WebStoreContext())
{
var countParm = context.Db.CreateParameter("@nCount", 0,
parameterDirection: System.Data.ParameterDirection.Output);

var returnValueParm = context.Db.CreateParameter("@returnValue", 0,
parameterDirection: System.Data.ParameterDirection.ReturnValue);

int result = context.Db.ExecuteStoredProcedureNonQuery("GetCustomerCount",
// named parameter requires CreateParameter
context.Db.CreateParameter("@cCompany", "W%"),
countParm, returnValueParm);

Assert.IsFalse(result == -1, "result shouldn't be -1. " + context.Db.ErrorMessage);

Console.WriteLine("Count value: " + countParm.Value);
Console.WriteLine("Return Value: " + returnValueParm.Value);
}
}

This code uses a West Wind Data Context, and the .db component which in turn is just a DataAccessBase/SqlDataAccess component.

http://west-wind.com/westwindtoolkit/docs/_4ij04e8cn.htm

+++ Rick ---



Good morning,

Just had my first attempt at running the FoxInCloud Adapter Assistant over a large VFP project.

It successfully went through the registering, copying and analyzing inheritance steps and commenced scanning the code.

A wait window message them flashed up briefly stating:

"awoop.fxp!Awadapter.analyse_module_objectsadded__() - 'd:\...\classes\cmodecls.vcx', cchkmode2.Refresh(), adding object ".parent.cShpBase" to inventory having failed, after step 2-adapt, check that all its updateable properties..."

The form showed:

(665) Scanning code in project....
(004) Analysing procedure/function 'D:\...\devspace\local projects.......\Common\classes\cmodecls.vcx'
and was stuck at 0%

Things seemed to just stop, although the hour glass was still turning indicating something was going on. But after many hours nothing had changed.

Wondering whether others have experienced this and can perhaps point me to the cause.

Screenshots:


Thanks and regards,

Martin



Rick Strahl
West Wind Technologies

Making waves on the Web
from Maui

Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  FoxInCloud Support - Thierry N.
  Martin
  Feb 3, 2016 @ 10:38pm
Good afternoon Martin,

Thanks for giving FAA a try.

At this point, the program seems to infinitely loop across the methods of cmodecls.vcx!cchkmode2, not sure why...

Maybe you can try

pack cModecls.vcx
&& or
compile classlib cModecls.vcx && also packs the table

and retry

Make sure to re-copy every file to the test folder

Whenever the program seems 'hanged', you can press escape, open the debugger and step through to see in which program(s) the loop occurs (you won't see the source code, just the execution stack).

Thanks in advance for any additional feedback


Good morning,

Just had my first attempt at running the FoxInCloud Adapter Assistant over a large VFP project.

It successfully went through the registering, copying and analyzing inheritance steps and commenced scanning the code.

A wait window message them flashed up briefly stating:

"awoop.fxp!Awadapter.analyse_module_objectsadded__() - 'd:\...\classes\cmodecls.vcx', cchkmode2.Refresh(), adding object ".parent.cShpBase" to inventory having failed, after step 2-adapt, check that all its updateable properties..."

The form showed:

(665) Scanning code in project....
(004) Analysing procedure/function 'D:\...\devspace\local projects.......\Common\classes\cmodecls.vcx'
and was stuck at 0%

Things seemed to just stop, although the hour glass was still turning indicating something was going on. But after many hours nothing had changed.

Wondering whether others have experienced this and can perhaps point me to the cause.

Screenshots:


Thanks and regards,

Martin


-- thn (FoxInCloud)

Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  Martin
  Thierry Nivelet (FoxInCloud)
  Feb 4, 2016 @ 02:09pm
Hi Thierry,

Thank you for your response.

Unfortunately recompiling the class didn't resolve the issue.
I then removed the cchkmode2 class from the cmodecls class library and tried again.
This stopped the wait window message from popping up.

However, the process still "hung" at the same point.

I pressed esc, entered debug and the call stack was as shown below:

I clicked "Step Out" a few times and when the code returned to acregexpblock.execute an attempt to "Step Out" returned us to a hanging state. So it appears that the infinite loop starts there.

Not too sure how to proceed from here.

I guess I could progressively remove the classes from that class library one at a time, retrying after each removal to see if I can pinpoint the class that is causing the problem.

What would you suggest?

Thanks and regards,


Good afternoon Martin,

Thanks for giving FAA a try.

At this point, the program seems to infinitely loop across the methods of cmodecls.vcx!cchkmode2, not sure why...

Maybe you can try

pack cModecls.vcx
&& or
compile classlib cModecls.vcx && also packs the table

and retry

Make sure to re-copy every file to the test folder

Whenever the program seems 'hanged', you can press escape, open the debugger and step through to see in which program(s) the loop occurs (you won't see the source code, just the execution stack).

Thanks in advance for any additional feedback


Good morning,

Just had my first attempt at running the FoxInCloud Adapter Assistant over a large VFP project.

It successfully went through the registering, copying and analyzing inheritance steps and commenced scanning the code.

A wait window message them flashed up briefly stating:

"awoop.fxp!Awadapter.analyse_module_objectsadded__() - 'd:\...\classes\cmodecls.vcx', cchkmode2.Refresh(), adding object ".parent.cShpBase" to inventory having failed, after step 2-adapt, check that all its updateable properties..."

The form showed:

(665) Scanning code in project....
(004) Analysing procedure/function 'D:\...\devspace\local projects.......\Common\classes\cmodecls.vcx'
and was stuck at 0%

Things seemed to just stop, although the hour glass was still turning indicating something was going on. But after many hours nothing had changed.

Wondering whether others have experienced this and can perhaps point me to the cause.

Screenshots:


Thanks and regards,

Martin


Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  FoxInCloud Support - Thierry N.
  Martin
  Feb 4, 2016 @ 10:10pm
Hi Martin,

Thanks for sharing your in-depth analysis.

Knowing the variety of coding styles around, we made FAA very easy to fix and update: we just upload a new version to our site and next time you run FAA it'll self updates.

From what you describe, acRegExpBlock.execute() enters an infinite loop.

acRegExpBlock is a regular-expression based class that identifies nested blocks in source code; eg

WITH a
some code
WITH b
some more code
ENDWITH
some extra code
ENDWITH

Given the complexity of acRegExpBlock.execute() and dependencies, the fastest way to see and fix what happens in your case would probably be that you provide the code of the method being analyzed (post here or PM to support at foxincloud.com if you prefer).

You can get this information as follows: when execution hangs, please move up the stack and grab values of the following variables from the 'local' window:

&& .analyse_module()
tcClass; && {en} Object or class {fr} Objet ou Classe concerné(e)
tcParentClass; && {en} Parent class {fr} Classe parent
tcClassFile; && [''] {en} File where m.tcClass is defined {fr} Fichier où m.tcClass est définie
tcModule; && {en} module name {fr} Nom du Module
tcCode; && {en} module code {fr} Code du module

&& .Analyse_Module_ObjectsAdded_()
tcName as String; && {en} Absolute name of object holding method {fr} Nom absolu de l'objet détenant la méthode
tcMethod AS String; && {en} Method {fr} Méthode
tcCodeInner AS String; && {en} Method code {fr} Code de la méthode
tcContext AS String; && [''] {en} Complete context (instructions within WITH … ENDWITH) {fr} Contexte complet (instructions dans un bloc WITH … ENDWITH)

Thanks in advance,


Hi Thierry,

Thank you for your response.

Unfortunately recompiling the class didn't resolve the issue.
I then removed the cchkmode2 class from the cmodecls class library and tried again.
This stopped the wait window message from popping up.

However, the process still "hung" at the same point.

I pressed esc, entered debug and the call stack was as shown below:

I clicked "Step Out" a few times and when the code returned to acregexpblock.execute an attempt to "Step Out" returned us to a hanging state. So it appears that the infinite loop starts there.

Not too sure how to proceed from here.

I guess I could progressively remove the classes from that class library one at a time, retrying after each removal to see if I can pinpoint the class that is causing the problem.

What would you suggest?

Thanks and regards,


Good afternoon Martin,

Thanks for giving FAA a try.

At this point, the program seems to infinitely loop across the methods of cmodecls.vcx!cchkmode2, not sure why...

Maybe you can try

pack cModecls.vcx
&& or
compile classlib cModecls.vcx && also packs the table

and retry

Make sure to re-copy every file to the test folder

Whenever the program seems 'hanged', you can press escape, open the debugger and step through to see in which program(s) the loop occurs (you won't see the source code, just the execution stack).

Thanks in advance for any additional feedback


Good morning,

Just had my first attempt at running the FoxInCloud Adapter Assistant over a large VFP project.

It successfully went through the registering, copying and analyzing inheritance steps and commenced scanning the code.

A wait window message them flashed up briefly stating:

"awoop.fxp!Awadapter.analyse_module_objectsadded__() - 'd:\...\classes\cmodecls.vcx', cchkmode2.Refresh(), adding object ".parent.cShpBase" to inventory having failed, after step 2-adapt, check that all its updateable properties..."

The form showed:

(665) Scanning code in project....
(004) Analysing procedure/function 'D:\...\devspace\local projects.......\Common\classes\cmodecls.vcx'
and was stuck at 0%

Things seemed to just stop, although the hour glass was still turning indicating something was going on. But after many hours nothing had changed.

Wondering whether others have experienced this and can perhaps point me to the cause.

Screenshots:


Thanks and regards,

Martin




-- thn (FoxInCloud)

Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  Martin
  Thierry Nivelet (FoxInCloud)
  Feb 7, 2016 @ 01:49pm
Hi Thierry,

Thanks again for your prompt response.

I have proceeded as you suggested and I think I have determined the code where the infinite loop occurs. I have attached this code at the end of this message.

Based on the information you provided regarding nested WITH statements, I removed all WITH/ENDWITH constructs from this code and retried FAA and this time I got to 40% before FAA "hung" again.

This would seem to confirm that WITH statements may be the root cause of the issue.

Please let me know if you need anything further from me to assess the problem.

Thanks and regards,

Martin


*******************************************************************
*$PARAMETERS$
* lcBatchID - Batch ID used in save.
*$PARAMETERS$
*
*$VARIABLES$
* aDoubleKeyObjects - Array containing details of controls whose
* values where double-keyed.
* aDoubleKeyObjects[n,1] - Label identifying data
* aDoubleKeyObjects[n,2] - Status of mismatch.
* aDoubleKeyObjects[n,3] - Object reference to data control
* aDoubleKeyObjects[n,4] - Value keyed in double-key
* aDoubleKeyObjects[n,5] - Original value keyed.
* aDoubleKeyObjects[n,6] - Final authorised value
* aDoubleKeyObjects[n,7] - Error message to display for mismatch
* aDoubleKeyObjects[n,8] - Indicates if row not used in current
* matching.
* aDoubleKeyObjects[n, 9] - Formatted display value of the new value
* aDoubleKeyObjects[n,10] - Formatted display value of the old value
* lnCount - Loop counter
* llDblKeyError - Flags if a double-key mismatch exists
* llDoubleKeyMatch - Flags if all values match after resolution
* llReturn - Flags success or otherwise
* lcDoubleKeyBatchID - Batch ID for double-keyed data.
* lcProcessID - Stores Process ID of current process
* ltCreated - Date & time record created
* lcKeyID - ID of the current record in the main table.
* lnDelCount - Counter of array rows deleted
* lnNumRows - Original number of rows in array (aDoubleKeyObjects)
*$VARIABLES$
*
*$RETURNS$
* llReturn
*$RETURNS$
*
*$HISTORY$
* 28/11/1999 - Added double-key capability.
* 02/02/2000 - Removed rows from array not used in current matching.
* 09/02/2000 - Structure of dkeylog has changed. Errmsg field has been
* replaced by ORGVALUE & NEWVALUE.
* 10/02/2000 - ALLTRIMed a check on .aDoubleKeyObjects[lnCount,2]
* 24/10/2000 - Added a tablename field to DKEYLOG.
* 29/12/2000 - When clearing column 8 of aDoubleKeyObjects, first check
* to see if the array has 8 columns.
* 02/01/2001 - If the doublekey array contains less than 8 columns,
* redimension it to 8 columns.
* 14/06/2001 - If it contains less than 10 columns redimension it
* to 10 columns
* 15/06/2001 - Changed to dimension aDoubleKeyObjects[] with
* its default number of columns
* 12/09/2001 - Changed to stop all double key handling here if
* the form's complex class is using a middle tier.
*$HISTORY$
*******************************************************************

LPARAMETERS lcBatchID
LOCAL llReturn, llDblKeyError, lnCount, llDoubleKeyMatch, ;
lcDoubleKeyBatchID, lcProcessID, ltCreated, lcKeyID, ;
lnDelCount, lnNumRows, lcTablename

STORE .T. TO llReturn, llDoubleKeyMatch
STORE .F. TO llDblKeyError
STORE 0 TO lnCount, lnDelCount, lnNumRows
STORE "" TO lcDoubleKeyBatchID, lcProcessID, lcKeyID, lcTablename
STORE DTOT({}) TO ltCreated

llReturn = DODEFAULT(lcBatchID)

IF llReturn
*-- If we are in doublekey mode, check that all values match.
IF Thisform.cMode = "DOUBLEKEY" AND ;
IIF(TYPE("thisform.ocomplex") = "O" AND NOT ISNULL(thisform.ocomplex), ;
EMPTY(thisform.ocomplex.cbusMiddleTier), ;
.t.)

*-- Clear the flag used to indicate if array row was used in match-up
IF ALEN(this.aDoubleKeyObjects, 2) < this.nDKArrayCols
lnNumRows = ALEN(this.aDoubleKeyObjects, 1)
DIMENSION this.aDoubleKeyObjects[lnNumRows, this.nDKArrayCols]
ENDIF
*-- Reset column
FOR lnCount = 1 TO ALEN(this.aDoubleKeyObjects, 1)
this.aDoubleKeyObjects[lnCount,8] = .F.
ENDFOR

*-- Determine if double-keyed controls and data match.
llDblKeyError = NOT This.DoubleKeyControlMatch()
llDblKeyError = (NOT This.DoubleKeyCodeMatch()) OR llDblKeyError

*-- Redimension the array to discard all rows where column 8 is .F. and
* column 3 is not an object reference.
WITH this
lnNumRows = ALEN(.aDoubleKeyObjects, 1)
FOR lnCount = 1 TO lnNumRows
IF .aDoubleKeyObjects[lnCount,8] = .F. AND ;
VARTYPE(.aDoubleKeyObjects[lnCount,3]) <> "O"
lnDelCount = lnDelCount + 1
=ADEL(.aDoubleKeyObjects, lnCount)
lnCount = lnCount - 1
ENDIF

IF lnCount + lnDelCount = lnNumRows
EXIT
ENDIF
ENDFOR
IF lnCount <> lnNumRows + 1
IF lnCount > 0
DIMENSION .aDoubleKeyObjects[lnCount,.nDKArrayCols]
ELSE
DIMENSION .aDoubleKeyObjects[1,.nDKArrayCols]
ENDIF
ENDIF
ENDWITH


*-- If there are any mismatches
IF llDblKeyError
*-- Display the mismatch resolution screen.
DO FORM DKeyChk WITH thisform TO llDoubleKeyMatch
ENDIF
*-- If all items are now matched, log those that
* were overridden by the authoriser.
IF llDoubleKeyMatch
WITH thisform.oComplex
*-- Clean up any previous DKeyLog records for this session
IF PEMSTATUS(thisform.oComplex, "cDoubleKeyBatchID", 5)
IF NOT EMPTY(.cDoubleKeyBatchID)
SELECT dkeylog
SET ORDER TO dkeybatch
=SEEK(.cDoubleKeyBatchID, 'dkeylog', 'dkeybatch')
DELETE WHILE dkeylog.dkeybatchid = .cDoubleKeyBatchID
ELSE
.cDoubleKeyBatchID = spNewID("BatchID")
ENDIF
ELSE
.AddProperty("cDoubleKeyBatchID")
.cDoubleKeyBatchID = spNewID("BatchID")
ENDIF
lcDoubleKeyBatchID = .cDoubleKeyBatchID
lcProcessID = .cProcessID
ltCreated = spDateTime()
*-- Obtain the primarykey of the current record in the main table
WITH this.oComplex.oData
FOR lnCount = 1 TO ALEN(.aTables, 1)
IF .aTables[lnCount, 6]
spGetPrimaryKeyData(.aTables[lnCount, 3], @lcKeyId)
lcTablename = .aTables[lnCount, 2]
EXIT
ENDIF
ENDFOR
ENDWITH
ENDWITH

*-- Write to DKeyLog all adjusted data for
IF llDblKeyError
WITH thisform
FOR lnCount = 1 TO ALEN(.aDoubleKeyObjects,1)
IF ALLTRIM(.aDoubleKeyObjects[lnCount, 2]) = "Accepted"
INSERT INTO dkeylog ;
(dkeybatchid, ;
processid, ;
tablename, ;
datakey, ;
label, ;
orgvalue, ;
newvalue, ;
created) ;
VALUES ;
(lcDoubleKeyBatchID, ;
lcProcessID, ;
UPPER(lcTablename), ;
lcKeyId, ;
.aDoubleKeyObjects[lnCount, 1], ;
.aDoubleKeyObjects[lnCount, 5], ;
.aDoubleKeyObjects[lnCount, 4], ;
ltCreated)
ENDIF
ENDFOR
ENDWITH
ENDIF
ENDIF
ENDIF

ENDIF

*-- If not all double-keyed items matched and they were not
* resolved by the user, this function with return .F. and
* the save will not complete.

RETURN llReturn AND llDoubleKeyMatch


Hi Martin,

Thanks for sharing your in-depth analysis.

Knowing the variety of coding styles around, we made FAA very easy to fix and update: we just upload a new version to our site and next time you run FAA it'll self updates.

From what you describe, acRegExpBlock.execute() enters an infinite loop.

acRegExpBlock is a regular-expression based class that identifies nested blocks in source code; eg

WITH a
some code
WITH b
some more code
ENDWITH
some extra code
ENDWITH

Given the complexity of acRegExpBlock.execute() and dependencies, the fastest way to see and fix what happens in your case would probably be that you provide the code of the method being analyzed (post here or PM to support at foxincloud.com if you prefer).

You can get this information as follows: when execution hangs, please move up the stack and grab values of the following variables from the 'local' window:

&& .analyse_module()
tcClass; && {en} Object or class {fr} Objet ou Classe concerné(e)
tcParentClass; && {en} Parent class {fr} Classe parent
tcClassFile; && [''] {en} File where m.tcClass is defined {fr} Fichier où m.tcClass est définie
tcModule; && {en} module name {fr} Nom du Module
tcCode; && {en} module code {fr} Code du module

&& .Analyse_Module_ObjectsAdded_()
tcName as String; && {en} Absolute name of object holding method {fr} Nom absolu de l'objet détenant la méthode
tcMethod AS String; && {en} Method {fr} Méthode
tcCodeInner AS String; && {en} Method code {fr} Code de la méthode
tcContext AS String; && [''] {en} Complete context (instructions within WITH … ENDWITH) {fr} Contexte complet (instructions dans un bloc WITH … ENDWITH)

Thanks in advance,


Hi Thierry,

Thank you for your response.

Unfortunately recompiling the class didn't resolve the issue.
I then removed the cchkmode2 class from the cmodecls class library and tried again.
This stopped the wait window message from popping up.

However, the process still "hung" at the same point.

I pressed esc, entered debug and the call stack was as shown below:

I clicked "Step Out" a few times and when the code returned to acregexpblock.execute an attempt to "Step Out" returned us to a hanging state. So it appears that the infinite loop starts there.

Not too sure how to proceed from here.

I guess I could progressively remove the classes from that class library one at a time, retrying after each removal to see if I can pinpoint the class that is causing the problem.

What would you suggest?

Thanks and regards,


Good afternoon Martin,

Thanks for giving FAA a try.

At this point, the program seems to infinitely loop across the methods of cmodecls.vcx!cchkmode2, not sure why...

Maybe you can try

pack cModecls.vcx
&& or
compile classlib cModecls.vcx && also packs the table

and retry

Make sure to re-copy every file to the test folder

Whenever the program seems 'hanged', you can press escape, open the debugger and step through to see in which program(s) the loop occurs (you won't see the source code, just the execution stack).

Thanks in advance for any additional feedback


Good morning,

Just had my first attempt at running the FoxInCloud Adapter Assistant over a large VFP project.

It successfully went through the registering, copying and analyzing inheritance steps and commenced scanning the code.

A wait window message them flashed up briefly stating:

"awoop.fxp!Awadapter.analyse_module_objectsadded__() - 'd:\...\classes\cmodecls.vcx', cchkmode2.Refresh(), adding object ".parent.cShpBase" to inventory having failed, after step 2-adapt, check that all its updateable properties..."

The form showed:

(665) Scanning code in project....
(004) Analysing procedure/function 'D:\...\devspace\local projects.......\Common\classes\cmodecls.vcx'
and was stuck at 0%

Things seemed to just stop, although the hour glass was still turning indicating something was going on. But after many hours nothing had changed.

Wondering whether others have experienced this and can perhaps point me to the cause.

Screenshots:


Thanks and regards,

Martin




Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  FoxInCloud Support - Thierry N.
  Martin
  Feb 8, 2016 @ 02:38am
Hi Martin,

Thanks for providing your code sample -- strangely enough we ran a successful unit test of acRegExpBlock against this code sample! No infinite loop at all ...

However we did find a bug that made the module deliver a wrong result in this case, and found a more simple algorithm with less logical structures and variables -- useful refactoring.

Please let FAA auto-update by restarting it and post back your feedback.

I wish you a nice day


Hi Thierry,

Thanks again for your prompt response.

I have proceeded as you suggested and I think I have determined the code where the infinite loop occurs. I have attached this code at the end of this message.

Based on the information you provided regarding nested WITH statements, I removed all WITH/ENDWITH constructs from this code and retried FAA and this time I got to 40% before FAA "hung" again.

This would seem to confirm that WITH statements may be the root cause of the issue.

Please let me know if you need anything further from me to assess the problem.

Thanks and regards,

Martin


-- thn (FoxInCloud)

Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  Martin
  Thierry Nivelet (FoxInCloud)
  Feb 8, 2016 @ 01:16pm
Hi Thierry,

Started FAA and it auto-updated as expected.

Selected my project and started analyzing and received the below message:

Content of clipboard is pasted below.

Clicking "Yes" to resume execution resulted in the same error being displayed repetitively.

Regards,

Martin


to: support@foxincloud.com
(copy and paste into the 'to' field of your email)

subject: FAA issue in ACREGEXPBLOCK.EXECUTE() - Invalid subscript reference.
(copy and paste into the 'subject' field of your email)

{^2016-02-09 09:30 AM}

Windows 7 - DBCS: no - SP: Service Pack 1 - Suite: 256
Visual FoxPro 09.00.0000.3504 for Windows [Nov 4 2005 17:39:44] Product ID 76683-270-0703211-18928 - Locale: English
FAA version 2.21.0-beta.9 of 02/04/2016 04:26 PM

Error #: 31
Message: Invalid subscript reference.

Call Stack
====================
1_awadapterstart > 2_awadapter > 3_cmdpjx.click > 4_awadapter.cpjx_assign > 5_awadapter.analyse > 6_awadapter.analyse > 7_awadapter.analyse_cx > 8_awadapter.analyse_module > 9_awadapter.analyse_module_objectsadded > 10_awadapter.analyse_module_objectsadded_ > 11_acregexpblock.execute > 12_ > 13_awadapter_error

Variables
====================

GCADOSSIER Pub C ""
EUROPEAN Pub C "

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~CueaaaaceeeiiiAAE‘’ooouuyOU›œžŸaiounN¦§?©ª«¬!®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
EUROANSI Pub C "

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿AAAAAAÆCEEEEIIIIDNOOOOO×ØUUUUYÞßaaaaaaæceeeeiiiidnooooo÷øuuuuyþy"
TLLOCALHOST Local L .F. awadapterstart
TCLANG Local C "en" awadapterstart
FOO Local L .F. awadapterstart
LLABDEVNOT Local L .T. awadapterstart
LCSYS16 Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTERSTART.APP" awadapterstart
LLPRG Local L .F. awadapterstart
LCDIRAW Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\" awadapterstart
LCDIRAB Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\" awadapterstart
LLDEVMODE Local L .F. awadapterstart
LOSETPROC Local O ABSET awadapterstart
LOSETCLAS Local O ABSET awadapterstart
LOSETPATH Local O ABSET awadapterstart
LODEFAULT Local O ABSET awadapterstart
LOSYSFMTS Local O ABSET awadapterstart
LOASSERTS Local O ABSET awadapterstart
LONOTIFY Local O ABSET awadapterstart
LOFRMCONFIG Local O FRMCONFIG awadapterstart
LOHTTP Local O WWHTTP awadapterstart
LCCAPTION_ Local C "Microsoft Visual FoxPro" awadapterstart
LCCAPTION Local C "FoxInCloud Adaptation Assistant" awadapterstart
LCICON_ Local C "" awadapterstart
LNATTEMPTS Local N 0 ( 0.00000000) awadapterstart
LCVIRTUAL Local C "/" awadapterstart
LCURL Local C "http://www.foxincloud.com/" awadapterstart
LCAPP Local C "AWADAPTER.app" awadapterstart
LCAPPADDR Local C "AWADAPTER.APP" awadapterstart
LTAPP Local T 02/09/2016 09:18 AM awadapterstart
LTAPPSERVER Local T 02/08/2016 11:35 PM awadapterstart
LCSERVER Local C "www.foxincloud.com" awadapterstart
LTSERVER Local C "{^2016-02-08 23:28:08}" awadapterstart
LLSERVER Local L .T. awadapterstart
LLAPPNEW Local L .F. awadapterstart
LCRESULT Local L .F. awadapterstart
LLRESULT Local L .T. awadapterstart
TCURL Local C "http://foxincloud.com/" awadapter
TAWADAPTERSTART Local T 06/20/2014 02:02 PM awadapter
TTAPP Local ltapp
TOCONFIG Local lofrmconfig
TOHTTP Local lohttp
LLRESULT Local L .T. awadapter
LCRESULT Local L .F. awadapter
LCLANG Local C "en" awadapter
LCSYS161 Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTERSTART.APP" awadapter
LCSYS162 Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP" awadapter
LLSTARTERAPP Local L .T. awadapter
LCSTARTER Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTERSTART.APP" awadapter
LLSTARTER Local L .F. awadapter
LCSYS16_ Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP" awadapter
LCDIR16_ Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\" awadapter
LLTHISAPP Local L .T. awadapter
LNSYS2450 Local N 0 ( 0.00000000) awadapter
LOSETDEFAULT1 Local O ABSET awadapter
LOSETPATH1 Local O ABSET awadapter
LOSETCLAS1 Local O ABSET awadapter
LOSETPROC1 Local O ABSET awadapter
LOONERROR Local O ABON awadapter
LOSETDEFAULT2 Local L .F. awadapter
LOSETPATH2 Local L .F. awadapter
LOSETCLAS2 Local L .F. awadapter
LOSETPROC2 Local L .F. awadapter
LOTALK Local O ABSET awadapter
LONOTIFY Local O ABSET awadapter
LOEXCLUSIVE Local O ABSET awadapter
PORESULT Priv L N/A awadapter
AWADAPTER Priv O AWFORM awadapter
LODEFAULT Local O ABSET click
LCPJX Local C "D:\devspace\devspace\local projects\cars\2_69_0\cars.pjx" click
TCPJX Local C "D:\devspace\devspace\local projects\cars\2_69_0\cars.pjx" cpjx_assign
LPJUPTODATE Local L .F. cpjx_assign
LTANALYSE Local T / / : : AM cpjx_assign
LLANALYSE Local L .F. cpjx_assign
LCMSG Local L .F. cpjx_assign
LCTABLE Local C "D:\devspace\devspace\local projects\cars\2_69_0\carsawAdapt-time.dbf" cpjx_assign
TICASE Local N 1 ( 1.00000000) analyse
LLCOPY_ Local L .F. analyse
LLALL Local L .F. analyse
LLRESULT Local L .F. analyse
TUFILTER Local L .F. analyse
JUNK Local L .F. analyse
LOSTATUS Local O ABSET analyse
LLALL Local L .T. analyse
LCSTEP Local C "Analysing" analyse
LCFILTERBASE Local L .F. analyse
LCFILTER Local L .F. analyse
LLUSERSTOP Local L .F. analyse
LLRESULT Local L .T. analyse
TLCLASSES Local L .F. analyse_cx
LLRESULT Local L .T. analyse_cx
LCRESULT Local C "" analyse_cx
LOSELECT Local O ABSELECT analyse_cx
LCCXADDR Local C "D:\Test\devspace\devspace\local projects\cars\2_69_0\COMMON\CLASSES\cmodecls.vcx" analyse_cx
LCCODEVALID Local C "" analyse_cx
LCSTEP Local C "Parsing methods in" analyse_cx
LLPARENTCLASS Local L .T. analyse_cx
LLANALYSE Local L .T. analyse_cx
LCOBJNAME Local C "cfrmmode" analyse_cx
LLCLASS Local L .T. analyse_cx
LCCLASS Local C "cedtbase" analyse_cx
LACLASS Local A analyse_cx ( 1) L .F.
LCCLASS_ Local L .F. analyse_cx
LICLASS Local L .F. analyse_cx
LCCLASSLIB Local C "CBASECLS.VCX" analyse_cx
LCBASECLASS Local C "Editbox" analyse_cx
LCOLECLASS Local C "" analyse_cx
LLMETHOD Local L .T. analyse_cx
LNMETHOD Local N 13 ( 13.00000000) analyse_cx
LIMETHOD Local N 13 ( 13.00000000) analyse_cx
LOMETHOD Local O COLLECTION analyse_cx
TCCLASS Local C "cfrmmode" analyse_module
TCPARENTCLASS Local C "cfrmbase" analyse_module
TCPARCLASSFILE Local C "CBASECLS.VCX" analyse_module
TCBASECLASS Local C "Form" analyse_module
TCOLECLASS Local C "" analyse_module
TCMODULE Local C "saveaction" analyse_module
TCCODE Local C "LOCAL llRe..." 3810 bytes analyse_module
TNLINE Local N 1 ( 1.00000000) analyse_module
TCPARMS Local C "**********..." 2685 bytes analyse_module
TLCLASS Local L .T. analyse_module
TCCLASSFILE Local C "D:\Test\devspace\devspace\local projects\cars\2_69_0\COMMON\CLASSES\cmodecls.vcx" analyse_module
TCPARENT Local C "" analyse_module
LLRESULT Local L .T. analyse_module
LCMODULE Local C "Saveaction" analyse_module
LNINSTS Local N 73 ( 73.00000000) analyse_module
LLMETHOD Local L .T. analyse_module
LLEVENT Local L .F. analyse_module
LLPROGRAM Local L .F. analyse_module
LLEVENTUSER Local L N/A analyse_module
LLEVENTCLIENTSUPPORT Local L N/A analyse_module
LLEVENTSERVERSUPPORT Local L N/A analyse_module
LLEVENTSUPPORTNOW Local L N/A analyse_module
LCEVENTHINT Local L N/A analyse_module
LIAWADAPT Local L N/A analyse_module
LLUSERNO Local L N/A analyse_module
LLBASECLASS Local L N/A analyse_module
TCNAME Local C "cfrmmode" analyse_module_objectsadded
TCMETHOD Local C "Saveaction" analyse_module_objectsadded
TCCODEINNER Local tccode
LOANSI Local O ABSET analyse_module_objectsadded
LOEXAC Local O ABSET analyse_module_objectsadded
LODELE Local O ABSET analyse_module_objectsadded
TCNAME Local C "cfrmmode" analyse_module_objectsadded_
TCMETHOD Local C "Saveaction" analyse_module_objectsadded_
TCCONTEXT Local C "" analyse_module_objectsadded_
TCCODEINNER Local tccodeinner
JUNK Local L .F. analyse_module_objectsadded_
LCCODEINNER Local L .F. analyse_module_objectsadded_
LICODEINNER Local L .F. analyse_module_objectsadded_
LOWITH Local O ACREGEXPBLOCK analyse_module_objectsadded_
LNWITH Local L .F. analyse_module_objectsadded_
LIWITH Local L .F. analyse_module_objectsadded_
LOSUBMATCH Local L .F. analyse_module_objectsadded_
LCCONTEXT Local L .F. analyse_module_objectsadded_
LLRESULT Local L .F. analyse_module_objectsadded_
TLDEBUG Local L .F. execute
TCPM Local L .F. execute
TCCODE Local tccodeinner
LNRESULT Local N 3 ( 3.00000000) execute
LCCODE Local C " *-..." 295 bytes execute
LAMATCH Local A execute
( 1, 1) N 1401 ( 1401.00000000)
( 1, 2) C " WITH t..." 669 bytes
( 1, 3) O COLLECTION
( 1, 4) N 669 ( 669.00000000)
( 2, 1) N 3191 ( 3191.00000000)
( 2, 2) C " WI..." 310 bytes
( 2, 3) O COLLECTION
( 2, 4) N 310 ( 310.00000000)
( 3, 1) N 2385 ( 2385.00000000)
( 3, 2) C " WITH..." 1131 bytes
( 3, 3) O COLLECTION
( 3, 4) N 1131 ( 1131.00000000)
LIMATCH Local N 0 ( 0.00000000) execute
LNMATCH Local N 1131 ( 1131.00000000) execute
LIABS Local N 3516 ( 3516.00000000) execute
LLBEG Local L .F. execute
LLBEG_ Local L .F. execute
LIBEG Local N 78 ( 78.00000000) execute
LNBEG Local N 23 ( 23.00000000) execute
LOBEG Local O COLLECTION execute
LIMID Local N 2416 ( 2416.00000000) execute
LIEND Local N 0 ( 0.00000000) execute
LNEND Local N 0 ( 0.00000000) execute
LOEND Local O N/A execute
LANEST Local A execute
( 1, 1) N 2385 ( 2385.00000000)
( 1, 2) N 2416 ( 2416.00000000)
( 1, 3) O COLLECTION
( 2, 1) N 3191 ( 3191.00000000)
( 2, 2) N 3226 ( 3226.00000000)
( 2, 3) O COLLECTION
LINEST Local N 0 ( 0.00000000) execute
TNERROR Local C "Error #: 31" awadapter_error
TCMESSAGE Local C "Invalid subscript reference." awadapter_error
LCFILE Local C "D:\FOXTEMP\_4K80KDTKV.log" awadapter_error
LLWARNING Local L .F. awadapter_error
LOSAFETY Local O ABSET awadapter_error
181 variables defined, 11139 bytes used
16203 variables available

Print System Memory Variables

_ALIGNMENT Pub C "LEFT"
_ASCIICOLS Pub N 80 ( 80.00000000)
_ASCIIROWS Pub N 63 ( 63.00000000)
_ASSIST Pub C ""
_BEAUTIFY Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\BEAUTIFY.APP"
_BOX Pub L .T.
_BROWSER Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\BROWSER.APP"
_BUILDER Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\BUILDER.APP"
_CALCMEM Pub N 0.00 ( 0.00000000)
_CALCVALUE Pub N 0.00 ( 0.00000000)
_CODESENSE Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\FOXCODE.APP"
_CONVERTER Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\CONVERT.APP"
_COVERAGE Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\COVERAGE.APP"
_CUROBJ Pub N -1 ( -1.00000000)
_DBLCLICK Pub N 0.50 ( 0.50000000)
_DIARYDATE Pub D 02/09/2016
_DOS Pub L .F.
_FOXCODE Pub C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\FOXCODE.DBF"
_FOXDOC Pub C ""
_FOXGRAPH Pub C ""
_FOXREF Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\FOXREF.APP"
_FOXTASK Pub C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\FOXTASK.DBF"
_GALLERY Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\GALLERY.APP"
_GENGRAPH Pub C ""
_GENHTML Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\GENHTML.PRG"
_GENMENU Pub C "C:\Program Files (x86)\Microsoft Visual FoxPro 9\Tools\AB\awGenMenu.prg"
_GENPD Pub C ""
_GENSCRN Pub C ""
_GENXTAB Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\VFPXTAB.PRG"
_GETEXPR Pub C ""
_INCLUDE Pub C ""
_INCSEEK Pub N 0.50 ( 0.50000000)
_INDENT Pub N 0 ( 0.00000000)
_LMARGIN Pub N 0 ( 0.00000000)
_MAC Pub L .F.
_MENUDESIGNERPub C ""
_MLINE Pub N 0 ( 0.00000000)
_OBJECTBROWSERPub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\OBJECTBROWSER.APP"
_PADVANCE Pub C "FORMFEED"
_PAGENO Pub N 304 ( 304.00000000)
_PAGETOTAL Pub N 0 ( 0.00000000)
_PBPAGE Pub N 1 ( 1.00000000)
_PCOLNO Pub N 22 ( 22.00000000)
_PCOPIES Pub N 1 ( 1.00000000)
_PDRIVER Pub C ""
_PDSETUP Pub C ""
_PECODE Pub C ""
_PEJECT Pub C "NONE"
_PEPAGE Pub N 32767 ( 32767.00000000)
_PLENGTH Pub N 66 ( 66.00000000)
_PLINENO Pub N 16 ( 16.00000000)
_PLOFFSET Pub N 0 ( 0.00000000)
_PPITCH Pub C "DEFAULT"
_PQUALITY Pub L .F.
_PRETEXT Pub C ""
_PSCODE Pub C ""
_PSPACING Pub N 1 ( 1.00000000)
_PWAIT Pub L .F.
_REPORTBUILDERPub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\REPORTBUILDER.APP"
_REPORTOUTPUTPub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\REPORTOUTPUT.APP"
_REPORTPREVIEWPub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\REPORTPREVIEW.APP"
_RMARGIN Pub N 80 ( 80.00000000)
_RUNACTIVEDOCPub C ""
_SAMPLES Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\SAMPLES\"
_SCCTEXT Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\SCCTEXT.PRG"
_SCREEN Pub O FORM
_SHELL Pub C ""
_SPELLCHK Pub C ""
_STARTUP Pub C "D:\FOXNET\STARTUP.PRG"
_TABS Pub C ""
_TALLY Pub N 1 ( 1.00000000)
_TASKLIST Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TASKLIST.APP"
_TASKPANE Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TASKPANE.APP"
_TEXT Pub N -1 ( -1.00000000)
_THROTTLE Pub N 0.00 ( 0.00000000)
_TOOLBOX Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLBOX.APP"
_TOOLTIPTIMEOUTPub N 0 ( 0.00000000)
_TRANSPORT Pub C ""
_TRIGGERLEVELPub N 0 ( 0.00000000)
_UNIX Pub L .F.
_VFP Pub O MICROSOFT VISUAL FOXPRO APPLICATION 9.0
_WINDOWS Pub L .T.
_WIZARD Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\WIZARD.APP"
_WRAP Pub L .F. 90 System Variables Defined

Menu and Pad Definitions 0 Menus Defined

Popup Definitions

_VFP9TOOLS 1756 bytes 1 Popup Defined

Window Definitions

Name From To Size
AWADAPTER 0.000,0.000 36.063,94.222 1853932 bytes
ATTHERMO 14.063,13.333 20.250,80.000 240768 bytes 2 Windows Defined

Set("Path")
====================
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\FFC\
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLS\
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLS\AB\
C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\


Set("Procedure")
====================
AB.FXP
ABARRAY.FXP
ABDATA.FXP
ABDATE.FXP
ABDEV.FXP
ABFILE.FXP
ABGA.FXP
ABOFFICE.FXP
ABOOP.FXP
ABTXT.FXP
AC.FXP
ACDATA.FXP
ACGA.FXP
ACOOP.FXP
ACTXT.FXP
AWGA.FXP
AWOOP.FXP
AWOOPMENU.FXP
AWPUBLIC.FXP
AWTXT.FXP
WWAPI.FXP
WWCONFIG.FXP
WWHTTP.FXP
WWUTILS.FXP


Set("Classlib")
====================
"C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLS\AB\AW.VCX" ALIAS AW
"C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AT\AT.VCX" IN "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP" ALIAS AT
"C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPTER.VCX" ALIAS AWADAPTER
"C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WEBSERVER.VCX" ALIAS WEBSERVER
"C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WWIPSTUFF.VCX" IN "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP" ALIAS WWIPSTUFF
"C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WWXML.VCX" IN "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP" ALIAS WWXML


Display status
====================

Processor is Pentium
Currently Selected Table:
Select area: 8, Table in Use: D:\TEST\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\COMMON\CLASSES\CMODECLS.VCX Alias: CMODECLS
Code page: 1252
Memo file: D:\TEST\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\COMMON\CLASSES\CMODECLS.VCT
Lock(s): <none>

Select area: 6, Table in Use: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_ADAPT.DBF Alias: ADAPT
Code page: 1252
Structural CDX file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_ADAPT.CDX
Index tag: ADAPTCK Collate: Machine Key: STR(MODULE)+STR(ILINE)+STR(AWADAPT) Candidate
Index tag: MODULE Collate: Machine Key: MODULE
Index tag: AWADAPT Collate: Machine Key: AWADAPT
Index tag: ILINE Collate: Machine Key: ILINE
Index tag: LIGNORED Collate: Machine Key: LIGNORED
Index tag: LVIEWED Collate: Machine Key: LVIEWED
Index tag: TVIEWED Collate: Machine Key: TVIEWED
Index tag: LFIXED Collate: Machine Key: LFIXED
Index tag: TFIXED Collate: Machine Key: TFIXED
Index tag: DELETD Collate: Machine Key: DELETED()
Memo file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_ADAPT.FPT
Lock(s): <none>

Select area: 5, Table in Use: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_MODULE.DBF Alias: MODULE
Code page: 1252
Structural CDX file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_MODULE.CDX
Index tag: MODULE Collate: Machine Key: MODULE Candidate
Index tag: CLASSMOD Collate: Machine Key: PADR(STR(FILEDIR)+UPPER(TRIM(CNAME))+"_"+UPPER(TRIM(CCLASS))+"_"+UPPER(TRIM(COLECLASS))+"_"+UPPER(TRIM(CMODULE))+"_"+UPPER(TRIM(CPCNAME))+"_"+UPPER(TRIM(CPARCLASS)),200) Candidate For: .NOT.DELETED()
Index tag: FILEDIR Collate: Machine Key: FILEDIR
Index tag: CNAME Collate: Machine Key: UPPER(CNAME)
Index tag: CCLASS Collate: Machine Key: UPPER(CCLASS)
Index tag: CCLASS_ Collate: Machine Key: UPPER(CCLASS_)
Index tag: CPARENT Collate: Machine Key: UPPER(CPARENT)
Index tag: CPCNAME Collate: Machine Key: UPPER(CPCNAME)
Index tag: CPARCLASS Collate: Machine Key: UPPER(CPARCLASS)
Index tag: CBASECLASS Collate: Machine Key: UPPER(CBASECLASS)
Index tag: COLECLASS Collate: Machine Key: UPPER(COLECLASS)
Index tag: CMODULE Collate: Machine Key: UPPER(CMODULE)
Index tag: CFILEBC Collate: Machine Key: PADR(CAST(FILEDIR AS M)+LOWER(CBASECLASS),50)
Index tag: LCLASS Collate: Machine Key: LCLASS
Index tag: LBASECLASS Collate: Machine Key: LBASECLASS
Index tag: LMODULE Collate: Machine Key: LMODULE
Index tag: LIGNORED Collate: Machine Key: LIGNORED
Index tag: LEVENT Collate: Machine Key: LEVENT
Index tag: NANALYSECS Collate: Machine Key: NANALYSECS
Index tag: NINST Collate: Machine Key: NINST
Index tag: NADAPT Collate: Machine Key: NADAPT
Index tag: NADAPTMAN Collate: Machine Key: NADAPTMAN
Index tag: DELETD Collate: Machine Key: DELETED()
Memo file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_MODULE.FPT
Lock(s): <none>

Select area: 4, Table in Use: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST.DBF Alias: FILEDIR
Code page: 1252
Structural CDX file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST.CDX
Index tag: FILEDIR Collate: Machine Key: FILEDIR Candidate
Index tag: FILECK Collate: Machine Key: PADR(UPPER(RTRIM(MADDR)),200) Candidate
Index tag: CNAME Collate: Machine Key: CNAME
Index tag: CSTEM Collate: Machine Key: CSTEM
Index tag: CEXT Collate: Machine Key: CEXT
Index tag: NBYTES Collate: Machine Key: NBYTES
Index tag: TMOD Collate: Machine Key: TMOD
Index tag: TDIR Collate: Machine Key: TDIR
Index tag: DELETD Collate: Machine Key: DELETED()
Index tag: NADAPT Collate: Machine Key: NADAPT
Index tag: TANALYSE Collate: Machine Key: TANALYSE
Index tag: TADAPT Collate: Machine Key: TADAPT
Index tag: LCLASSCODE Collate: Machine Key: LCLASSCODE
Index tag: LSRCECODE Collate: Machine Key: LSRCECODE
Index tag: LEXCLUDED Collate: Machine Key: LEXCLUDED
Index tag: LTRDPARTY Collate: Machine Key: LTRDPARTY
Index tag: LIGNORED Collate: Machine Key: LIGNORED
Index tag: LMODIFIED Collate: Machine Key: LMODIFIED
Index tag: LCODEPAGE Collate: Machine Key: LCODEPAGE
Memo file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST.FPT
Lock(s): 5
Filter: Filedir.LSRCECODE

Select area: 10, Table in Use: D:\FOXTEMP\0000FKLL0020.TMP Alias: AWADAPTPJ
Code page: 1252
Structural CDX file: D:\FOXTEMP\0000FKLL0020.CDX
Master Index tag: CFILE Collate: Machine Key: UPPER(CFILE)
Index tag: CEXT Collate: Machine Key: CEXT
Index tag: CCLASS Collate: Machine Key: UPPER(CCLASS)
Index tag: CCLASS_ Collate: Machine Key: UPPER(CCLASS_)
Index tag: CBASECLASS Collate: Machine Key: UPPER(CBASECLASS)
Index tag: CMODULE Collate: Machine Key: UPPER(CMODULE)
Index tag: NINST Collate: Machine Key: NINST
Index tag: NADAPT Collate: Machine Key: NADAPT
Index tag: NADAPTMAN Collate: Machine Key: NADAPTMAN
Index tag: AWADAPT Collate: Machine Key: AWADAPT
Index tag: CADAPT Collate: Machine Key: CADAPT
Index tag: CADAPTTYPE Collate: Machine Key: CADAPTTYPE
Index tag: LIGNORED Collate: Machine Key: LIGNORED
Index tag: LEXCLUDED Collate: Machine Key: LEXCLUDED
Index tag: LTRDPARTY Collate: Machine Key: LTRDPARTY
Index tag: TVIEWED_E Collate: Machine Key: EMPTY(TVIEWED)
Index tag: TFIXED_E Collate: Machine Key: EMPTY(TFIXED)
Index tag: _DELETED Collate: Machine Key: DELETED()
Index tag: _RECNO Collate: Machine Key: RECNO()
Memo file: D:\FOXTEMP\0000FKLL0021.TMP
Lock(s): Exclusive USE
Filter: NADAPT>0

Select area: 11, Table in Use: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWBCEVENT.DBF (Readonly) Alias: AWBCEVENT
Code page: 1252
Structural CDX file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWBCEVENT.CDX
Index tag: AWBCEVENT Collate: Machine Key: PADR(TRIM(BASECLASS)+"."+TRIM(VFPEVENT),50) Candidate
Index tag: BCDOMEVT1 Collate: Machine Key: PADR(CWORDS(".",ALLTRIM(BASECLASS),ALLTRIM(GETWORDNUM(ALLTRIM(LOWER(DOMEVENT)),1,",")),ALLTRIM(GETWORDNUM(" "+ALLTRIM(CONDITION),1,","))),50)
Index tag: BCDOMEVT2 Collate: Machine Key: PADR(CWORDS(".",ALLTRIM(BASECLASS),ALLTRIM(GETWORDNUM(ALLTRIM(LOWER(DOMEVENT)),2,",")),ALLTRIM(GETWORDNUM(" "+ALLTRIM(CONDITION),2,","))),50)
Index tag: BASECLASS Collate: Machine Key: BASECLASS
Index tag: VFPEVENT Collate: Machine Key: VFPEVENT
Index tag: DOMEVENT Collate: Machine Key: DOMEVENT
Index tag: AWADAPT Collate: Machine Key: AWADAPT
Memo file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWBCEVENT.FPT
Lock(s): <none>

Select area: 12, Table in Use: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARSAWADAPT-TIME.DBF Alias: AWADAPTTIME
Code page: 1252
Structural CDX file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARSAWADAPT-TIME.CDX
Index tag: AWADAPT Collate: Machine Key: AWADAPT Candidate
Lock(s): <none>

Select area: 7, Table in Use: D:\FOXTEMP\0000FKLL0012.TMP Alias: MHINT
Code page: 1252
Structural CDX file: D:\FOXTEMP\0000FKLL0012.CDX
Master Index tag: AWADAPT Collate: Machine Key: AWADAPT Candidate
Memo file: D:\FOXTEMP\0000FKLL0013.TMP
Lock(s): Exclusive USE

Select area: 3, Table in Use: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\_SOURCE\AWROADMAP.DBF (Readonly) Alias: AWROADMAP
Code page: 1252
Structural CDX file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\_SOURCE\AWROADMAP.CDX
Index tag: AWROADMAP Collate: Machine Key: AWROADMAP Candidate For: .NOT.EMPTY(awroadmap)
Index tag: AWADAPT Collate: Machine Key: AWADAPT
Index tag: VERSION Collate: Machine Key: VERSION
Index tag: DISPLAY Collate: Machine Key: STR(FICORDER)+STR(IORDER,3)+STR(EVL(DDONE-DATE(100,1,1),9999999999))
Memo file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\_SOURCE\AWROADMAP.FPT
Lock(s): <none>

Select area: 2, Table in Use: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPTTYPE.DBF (Readonly) Alias: AWADAPTTYPE
Code page: 1252
Structural CDX file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPTTYPE.CDX
Index tag: CTYPE Collate: Machine Key: CTYPE Candidate
Index tag: DELETD Collate: Machine Key: DELETED()
Lock(s): <none>

Select area: 1, Table in Use: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPT.DBF (Readonly) Alias: AWADAPT
Code page: 1252
Structural CDX file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPT.CDX
Index tag: AWADAPT Collate: Machine Key: AWADAPT Candidate
Index tag: DELETD Collate: Machine Key: DELETED()
Memo file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPT.FPT
Lock(s): <none>

Procedure file: AB.FXP, ABARRAY.FXP, ABDATA.FXP, ABDATE.FXP, ABDEV.FXP, ABFILE.FXP, ABGA.FXP, ABOFFICE.FXP, ABOOP.FXP, ABTXT.FXP, AWPUBLIC.FXP, AC.FXP, ACDATA.FXP, ACGA.FXP, ACOOP.FXP, ACTXT.FXP, WWHTTP.FXP, WWCONFIG.FXP, WWAPI.FXP, WWUTILS.FXP, AWOOP.FXP, AWTXT.FXP, AWOOPMENU.FXP, AWGA.FXP
Class libraries: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AT\AT.VCX IN C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP ALIAS AT, C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WWXML.VCX IN C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP ALIAS WWXML, C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WWIPSTUFF.VCX IN C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP ALIAS WWIPSTUFF, C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WEBSERVER.VCX ALIAS WEBSERVER, C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPTER.VCX ALIAS AWADAPTER, C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLS\AB\AW.VCX ALIAS AW
File search path: C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLS\AB\;C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\;C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\;C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\FFC\;C:\PROGRAM FILES (X86)\M...
Default directory: \\HOMENCSMEL\NCSMXP$\DATA
Print file/device:
Work area = 8
Margin = 0
Decimals = 2
Memowidth = 50
Typeahead = 20
Blocksize = 64
Reprocess = Automatic
Refresh = 0, 5.000 SECONDS
DDE Timeout = 2000
DDE Safety = on

Code page: 1252
Collating sequence: Machine
Compiler code page: 1252
Date format: American
Macro Hot Key =
UDF parameters are passed by: VALUE
On Error: DO awAdapter_error WITH Error(), Message()
ON KEY LABEL hot keys:
F2 KEYBOARD 'set default d:\app\cars\temp' + CHR(13)
F4 KEYBOARD 'set path i:\app\cars\new\data;i:\app\cars\data;g:\cars\common\app;d:\app\cars\new\security;q:\programs\shared\cars\classes' + CHR(13)
F5 KEYBOARD 'set default j:\carsdev\mp\new' + CHR(13)
F7 SUSPEND
F9 DO d:\foxnet\clear.prg
F11 KEYBOARD "set default 'd:\devspace\devspace\local projects\cars\2_69_0'" + CHR(13)
F3 KEYBOARD 'set path d:\app\cars\new\security' + CHR(13)
F12 KEYBOARD 'set path q:\data' + CHR(13)
Textmerge Options
Delimiters: Left = < Right = >
Show

Alternate - off Brstatus - off Compatible - off Device - scrn Fields - off Intensity - on Near - off Safety - off Textmerge - off
ANSI - on Carry - off Confirm - off Echo - off Fixed - off Lock - off Null - off Space - on Title - off
Asserts - off Century - on Console - off Escape - on Fullpath - on Logerrors - on Optimize - on Status Bar - on Unique - off
Bell - on Clear - on Cursor - on Exact - on Heading - on Mouse - on Print - off Sysmenus - on
Blink - on Color - on Deleted - off Exclusive - off Help - on Multilocks - off Readborder - off Talk - off

API library Instance Handle
c:\...\foxtools.fll 268435456

Function Address
INITIALIZE 1000271F Call on load.
UNINITALIZE 10002FAB Call on unload.
MSGBOX 10005951
REGFN 10002F4E
REGFN32 10002F86
CALLFN 10002766
MKDIR 10005659
RMDIR 100056B6
GETPROSTRG 10005739
PUTPROSTRG 1000587C
FOXTOUCH 100054E4
RGBCOMP 10005DB3
VALIDPATH 10004F29
CLEANPATH 10005013
REDUCE 10005074
STRFILTER 100051AA
WORDS 10005279
WORDNUM 10005335
NEXTWORD 10005409
_EDSETPOS 1000379B
_EDSKIPLIN 100037A9
_EDGETPOS 100037C1
_EDGETLPOS 100037D7
_EDGETLNUM 100037EE
_EDPOSINVI 10003805
_EDSTOPOS 10003817
_EDSTOSEL 10003828
_EDINSERT 10003838
_EDSENDKEY 1000388B
_EDDELETE 10003899
_EDGETCHAR 100038A6
_EDGETSTR 100038C6
_EDINDENT 10003949
_EDCOMMENT 10003957
_EDSELECT 10003965
_EDCOPY 10003974
_EDCUT 1000397E
_EDPASTE 10003989
_EDUNDO 10003994
_EDREDO 1000399F
_EDUNDOON 100039AA
_EDACTIVE 100039B5
_EDLASTERR 100039C0
_EDSETENV 100039D2
_EDGETENV 10003EC8
_EDOPENFIL 100042D2
_EDCLOSEFI 1000432C
_EDREVERT 10004341
_EDPROPERTIES 1000434B
_EDPROCLIST 10004358
GETCLIPDAT 100030AF
GETCLIPFMT 100030DE
ISCLIPFMT 10003122
ENUMCLIPFM 10003132
REGCLIPFMT 10003145
SETCLIPDAT 1000315E
EMPTYCLIP 1000306A
COUNTCLIPF 10003077
OPENCLIP 10003112
CLOSECLIP 10003087
MAINHWND 10003094
_WSOCKSTARTUP 10005B3F
_WSOCKCLEANUP 10005D48
_WSOCKGETHOSTBYADDR 10005CAC
_GETWRECT 10005E4D
_WHTOHWND 10005ED5
_WFINDTITL 10005EE7
_WMAINWIND 10005F40
_FINDWINDO 10005F65
_FINDWINDP 10005FA8
_WONTOP 10005F54
_WOPEN 10005FEA
_WSCROLL 10006138
_WOPENP 10006091
_WSCROLLP 10006181
_WCLOSE 100061CA
_WHIDE 100061D5
_WSHOW 100061E0
_WZOOM 100061EB
_WSELECT 100061F6
_WSENDBEHI 10006201
_WGETPORT 1000620C
_WSETPORT 1000621E
_WMOVE 10006235
_WSIZE 1000624A
_WMOVEP 10006260
_WSIZEP 10006275
_WTOP 1000628B
_WBOTTOM 100062B7
_WLEFT 100062E4
_WRIGHT 10006312
_WHEIGHT 10006340
_WWIDTH 1000636E
_WTOPP 100062A1
_WBOTTOMP 100062CD
_WLEFTP 100062FB
_WRIGHTP 10006329
_WHEIGHTP 10006357
_WWIDTHP 10006385
_WCLEAR 1000644E
_WCLEARREC 10006458
_WCLEARREP 10006499
_WPOSCURSO 100064DA
_WPOSCURP 100064F0
_WGETCURSO 10006506
_WGETCURP 10006550
_WATTR 10006599
_WSETATTR 100065AE
_WPUTCHR 100065BD
_WPUTSTR 100065C8
_WSETTITLE 100063FC
_WTITLE 1000639C
_WFOOTER 100063C9
GETFILEVERSION 10006618
FOXTOOLVER 10005AAA


Declared DLLs:
GdiSetBatchLimit C:\Windows\syswow64\GDI32.dll
GetKeyState c:\windows\system32\user32.dll
GetLastError C:\Windows\syswow64\kernel32.dll
GetTimeZoneInformation C:\Windows\syswow64\kernel32.dll
GetUserDefaultUILanguage C:\Windows\syswow64\kernel32.dll
HttpOpenRequest c:\windows\system32\wininet.dll
HttpQueryInfo c:\windows\system32\wininet.dll
HttpSendRequest c:\windows\system32\wininet.dll
InternetCloseHandle c:\windows\system32\wininet.dll
InternetConnect c:\windows\system32\wininet.dll
InternetOpen c:\windows\system32\wininet.dll
InternetReadFile c:\windows\system32\wininet.dll
InternetSetOption c:\windows\system32\wininet.dll
ShellExecute c:\windows\system32\shell32.dll
SHGetSpecialFolderPath c:\windows\system32\shell32.dll


Hi Martin,

Thanks for providing your code sample -- strangely enough we ran a successful unit test of acRegExpBlock against this code sample! No infinite loop at all ...

However we did find a bug that made the module deliver a wrong result in this case, and found a more simple algorithm with less logical structures and variables -- useful refactoring.

Please let FAA auto-update by restarting it and post back your feedback.

I wish you a nice day


Hi Thierry,

Thanks again for your prompt response.

I have proceeded as you suggested and I think I have determined the code where the infinite loop occurs. I have attached this code at the end of this message.

Based on the information you provided regarding nested WITH statements, I removed all WITH/ENDWITH constructs from this code and retried FAA and this time I got to 40% before FAA "hung" again.

This would seem to confirm that WITH statements may be the root cause of the issue.

Please let me know if you need anything further from me to assess the problem.

Thanks and regards,

Martin


Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  FoxInCloud Support - Thierry N.
  Martin
  Feb 9, 2016 @ 12:21am
Hi Martin,

Sorry for the error; obviously all our tests were OK but your coding style seems different.

What happens is that the code has seen more block closing instructions (ENDWITH) than their opening counterparts (WITH ...)

We normally support macro substitution, name expressions and .member coding styles, maybe you have a combination of those.

Would you mind providing the code of this method?

modify class cfrmmode of COMMON\CLASSES\cmodecls.vcx method Saveaction

Thanks for your patience.


Hi Thierry,

Started FAA and it auto-updated as expected.

Selected my project and started analyzing and received the below message:

Content of clipboard is pasted below.

Clicking "Yes" to resume execution resulted in the same error being displayed repetitively.

Regards,

Martin


to: support@foxincloud.com
(copy and paste into the 'to' field of your email)

subject: FAA issue in ACREGEXPBLOCK.EXECUTE() - Invalid subscript reference.
(copy and paste into the 'subject' field of your email)

{^2016-02-09 09:30 AM}

Windows 7 - DBCS: no - SP: Service Pack 1 - Suite: 256
Visual FoxPro 09.00.0000.3504 for Windows [Nov 4 2005 17:39:44] Product ID 76683-270-0703211-18928 - Locale: English
FAA version 2.21.0-beta.9 of 02/04/2016 04:26 PM

Error #: 31
Message: Invalid subscript reference.

Call Stack
====================
1_awadapterstart > 2_awadapter > 3_cmdpjx.click > 4_awadapter.cpjx_assign > 5_awadapter.analyse > 6_awadapter.analyse > 7_awadapter.analyse_cx > 8_awadapter.analyse_module > 9_awadapter.analyse_module_objectsadded > 10_awadapter.analyse_module_objectsadded_ > 11_acregexpblock.execute > 12_ > 13_awadapter_error

Variables
====================

GCADOSSIER Pub C ""
EUROPEAN Pub C "

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~CueaaaaceeeiiiAAE‘’ooouuyOU›œžŸaiounN¦§?©ª«¬!®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
EUROANSI Pub C "

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿AAAAAAÆCEEEEIIIIDNOOOOO×ØUUUUYÞßaaaaaaæceeeeiiiidnooooo÷øuuuuyþy"
TLLOCALHOST Local L .F. awadapterstart
TCLANG Local C "en" awadapterstart
FOO Local L .F. awadapterstart
LLABDEVNOT Local L .T. awadapterstart
LCSYS16 Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTERSTART.APP" awadapterstart
LLPRG Local L .F. awadapterstart
LCDIRAW Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\" awadapterstart
LCDIRAB Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\" awadapterstart
LLDEVMODE Local L .F. awadapterstart
LOSETPROC Local O ABSET awadapterstart
LOSETCLAS Local O ABSET awadapterstart
LOSETPATH Local O ABSET awadapterstart
LODEFAULT Local O ABSET awadapterstart
LOSYSFMTS Local O ABSET awadapterstart
LOASSERTS Local O ABSET awadapterstart
LONOTIFY Local O ABSET awadapterstart
LOFRMCONFIG Local O FRMCONFIG awadapterstart
LOHTTP Local O WWHTTP awadapterstart
LCCAPTION_ Local C "Microsoft Visual FoxPro" awadapterstart
LCCAPTION Local C "FoxInCloud Adaptation Assistant" awadapterstart
LCICON_ Local C "" awadapterstart
LNATTEMPTS Local N 0 ( 0.00000000) awadapterstart
LCVIRTUAL Local C "/" awadapterstart
LCURL Local C "http://www.foxincloud.com/" awadapterstart
LCAPP Local C "AWADAPTER.app" awadapterstart
LCAPPADDR Local C "AWADAPTER.APP" awadapterstart
LTAPP Local T 02/09/2016 09:18 AM awadapterstart
LTAPPSERVER Local T 02/08/2016 11:35 PM awadapterstart
LCSERVER Local C "www.foxincloud.com" awadapterstart
LTSERVER Local C "{^2016-02-08 23:28:08}" awadapterstart
LLSERVER Local L .T. awadapterstart
LLAPPNEW Local L .F. awadapterstart
LCRESULT Local L .F. awadapterstart
LLRESULT Local L .T. awadapterstart
TCURL Local C "http://foxincloud.com/" awadapter
TAWADAPTERSTART Local T 06/20/2014 02:02 PM awadapter
TTAPP Local ltapp
TOCONFIG Local lofrmconfig
TOHTTP Local lohttp
LLRESULT Local L .T. awadapter
LCRESULT Local L .F. awadapter
LCLANG Local C "en" awadapter
LCSYS161 Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTERSTART.APP" awadapter
LCSYS162 Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP" awadapter
LLSTARTERAPP Local L .T. awadapter
LCSTARTER Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTERSTART.APP" awadapter
LLSTARTER Local L .F. awadapter
LCSYS16_ Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP" awadapter
LCDIR16_ Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\" awadapter
LLTHISAPP Local L .T. awadapter
LNSYS2450 Local N 0 ( 0.00000000) awadapter
LOSETDEFAULT1 Local O ABSET awadapter
LOSETPATH1 Local O ABSET awadapter
LOSETCLAS1 Local O ABSET awadapter
LOSETPROC1 Local O ABSET awadapter
LOONERROR Local O ABON awadapter
LOSETDEFAULT2 Local L .F. awadapter
LOSETPATH2 Local L .F. awadapter
LOSETCLAS2 Local L .F. awadapter
LOSETPROC2 Local L .F. awadapter
LOTALK Local O ABSET awadapter
LONOTIFY Local O ABSET awadapter
LOEXCLUSIVE Local O ABSET awadapter
PORESULT Priv L N/A awadapter
AWADAPTER Priv O AWFORM awadapter
LODEFAULT Local O ABSET click
LCPJX Local C "D:\devspace\devspace\local projects\cars\2_69_0\cars.pjx" click
TCPJX Local C "D:\devspace\devspace\local projects\cars\2_69_0\cars.pjx" cpjx_assign
LPJUPTODATE Local L .F. cpjx_assign
LTANALYSE Local T / / : : AM cpjx_assign
LLANALYSE Local L .F. cpjx_assign
LCMSG Local L .F. cpjx_assign
LCTABLE Local C "D:\devspace\devspace\local projects\cars\2_69_0\carsawAdapt-time.dbf" cpjx_assign
TICASE Local N 1 ( 1.00000000) analyse
LLCOPY_ Local L .F. analyse
LLALL Local L .F. analyse
LLRESULT Local L .F. analyse
TUFILTER Local L .F. analyse
JUNK Local L .F. analyse
LOSTATUS Local O ABSET analyse
LLALL Local L .T. analyse
LCSTEP Local C "Analysing" analyse
LCFILTERBASE Local L .F. analyse
LCFILTER Local L .F. analyse
LLUSERSTOP Local L .F. analyse
LLRESULT Local L .T. analyse
TLCLASSES Local L .F. analyse_cx
LLRESULT Local L .T. analyse_cx
LCRESULT Local C "" analyse_cx
LOSELECT Local O ABSELECT analyse_cx
LCCXADDR Local C "D:\Test\devspace\devspace\local projects\cars\2_69_0\COMMON\CLASSES\cmodecls.vcx" analyse_cx
LCCODEVALID Local C "" analyse_cx
LCSTEP Local C "Parsing methods in" analyse_cx
LLPARENTCLASS Local L .T. analyse_cx
LLANALYSE Local L .T. analyse_cx
LCOBJNAME Local C "cfrmmode" analyse_cx
LLCLASS Local L .T. analyse_cx
LCCLASS Local C "cedtbase" analyse_cx
LACLASS Local A analyse_cx ( 1) L .F.
LCCLASS_ Local L .F. analyse_cx
LICLASS Local L .F. analyse_cx
LCCLASSLIB Local C "CBASECLS.VCX" analyse_cx
LCBASECLASS Local C "Editbox" analyse_cx
LCOLECLASS Local C "" analyse_cx
LLMETHOD Local L .T. analyse_cx
LNMETHOD Local N 13 ( 13.00000000) analyse_cx
LIMETHOD Local N 13 ( 13.00000000) analyse_cx
LOMETHOD Local O COLLECTION analyse_cx
TCCLASS Local C "cfrmmode" analyse_module
TCPARENTCLASS Local C "cfrmbase" analyse_module
TCPARCLASSFILE Local C "CBASECLS.VCX" analyse_module
TCBASECLASS Local C "Form" analyse_module
TCOLECLASS Local C "" analyse_module
TCMODULE Local C "saveaction" analyse_module
TCCODE Local C "LOCAL llRe..." 3810 bytes analyse_module
TNLINE Local N 1 ( 1.00000000) analyse_module
TCPARMS Local C "**********..." 2685 bytes analyse_module
TLCLASS Local L .T. analyse_module
TCCLASSFILE Local C "D:\Test\devspace\devspace\local projects\cars\2_69_0\COMMON\CLASSES\cmodecls.vcx" analyse_module
TCPARENT Local C "" analyse_module
LLRESULT Local L .T. analyse_module
LCMODULE Local C "Saveaction" analyse_module
LNINSTS Local N 73 ( 73.00000000) analyse_module
LLMETHOD Local L .T. analyse_module
LLEVENT Local L .F. analyse_module
LLPROGRAM Local L .F. analyse_module
LLEVENTUSER Local L N/A analyse_module
LLEVENTCLIENTSUPPORT Local L N/A analyse_module
LLEVENTSERVERSUPPORT Local L N/A analyse_module
LLEVENTSUPPORTNOW Local L N/A analyse_module
LCEVENTHINT Local L N/A analyse_module
LIAWADAPT Local L N/A analyse_module
LLUSERNO Local L N/A analyse_module
LLBASECLASS Local L N/A analyse_module
TCNAME Local C "cfrmmode" analyse_module_objectsadded
TCMETHOD Local C "Saveaction" analyse_module_objectsadded
TCCODEINNER Local tccode
LOANSI Local O ABSET analyse_module_objectsadded
LOEXAC Local O ABSET analyse_module_objectsadded
LODELE Local O ABSET analyse_module_objectsadded
TCNAME Local C "cfrmmode" analyse_module_objectsadded_
TCMETHOD Local C "Saveaction" analyse_module_objectsadded_
TCCONTEXT Local C "" analyse_module_objectsadded_
TCCODEINNER Local tccodeinner
JUNK Local L .F. analyse_module_objectsadded_
LCCODEINNER Local L .F. analyse_module_objectsadded_
LICODEINNER Local L .F. analyse_module_objectsadded_
LOWITH Local O ACREGEXPBLOCK analyse_module_objectsadded_
LNWITH Local L .F. analyse_module_objectsadded_
LIWITH Local L .F. analyse_module_objectsadded_
LOSUBMATCH Local L .F. analyse_module_objectsadded_
LCCONTEXT Local L .F. analyse_module_objectsadded_
LLRESULT Local L .F. analyse_module_objectsadded_
TLDEBUG Local L .F. execute
TCPM Local L .F. execute
TCCODE Local tccodeinner
LNRESULT Local N 3 ( 3.00000000) execute
LCCODE Local C " *-..." 295 bytes execute
LAMATCH Local A execute
( 1, 1) N 1401 ( 1401.00000000)
( 1, 2) C " WITH t..." 669 bytes
( 1, 3) O COLLECTION
( 1, 4) N 669 ( 669.00000000)
( 2, 1) N 3191 ( 3191.00000000)
( 2, 2) C " WI..." 310 bytes
( 2, 3) O COLLECTION
( 2, 4) N 310 ( 310.00000000)
( 3, 1) N 2385 ( 2385.00000000)
( 3, 2) C " WITH..." 1131 bytes
( 3, 3) O COLLECTION
( 3, 4) N 1131 ( 1131.00000000)
LIMATCH Local N 0 ( 0.00000000) execute
LNMATCH Local N 1131 ( 1131.00000000) execute
LIABS Local N 3516 ( 3516.00000000) execute
LLBEG Local L .F. execute
LLBEG_ Local L .F. execute
LIBEG Local N 78 ( 78.00000000) execute
LNBEG Local N 23 ( 23.00000000) execute
LOBEG Local O COLLECTION execute
LIMID Local N 2416 ( 2416.00000000) execute
LIEND Local N 0 ( 0.00000000) execute
LNEND Local N 0 ( 0.00000000) execute
LOEND Local O N/A execute
LANEST Local A execute
( 1, 1) N 2385 ( 2385.00000000)
( 1, 2) N 2416 ( 2416.00000000)
( 1, 3) O COLLECTION
( 2, 1) N 3191 ( 3191.00000000)
( 2, 2) N 3226 ( 3226.00000000)
( 2, 3) O COLLECTION
LINEST Local N 0 ( 0.00000000) execute
TNERROR Local C "Error #: 31" awadapter_error
TCMESSAGE Local C "Invalid subscript reference." awadapter_error
LCFILE Local C "D:\FOXTEMP\_4K80KDTKV.log" awadapter_error
LLWARNING Local L .F. awadapter_error
LOSAFETY Local O ABSET awadapter_error
181 variables defined, 11139 bytes used
16203 variables available

Print System Memory Variables

_ALIGNMENT Pub C "LEFT"
_ASCIICOLS Pub N 80 ( 80.00000000)
_ASCIIROWS Pub N 63 ( 63.00000000)
_ASSIST Pub C ""
_BEAUTIFY Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\BEAUTIFY.APP"
_BOX Pub L .T.
_BROWSER Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\BROWSER.APP"
_BUILDER Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\BUILDER.APP"
_CALCMEM Pub N 0.00 ( 0.00000000)
_CALCVALUE Pub N 0.00 ( 0.00000000)
_CODESENSE Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\FOXCODE.APP"
_CONVERTER Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\CONVERT.APP"
_COVERAGE Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\COVERAGE.APP"
_CUROBJ Pub N -1 ( -1.00000000)
_DBLCLICK Pub N 0.50 ( 0.50000000)
_DIARYDATE Pub D 02/09/2016
_DOS Pub L .F.
_FOXCODE Pub C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\FOXCODE.DBF"
_FOXDOC Pub C ""
_FOXGRAPH Pub C ""
_FOXREF Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\FOXREF.APP"
_FOXTASK Pub C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\FOXTASK.DBF"
_GALLERY Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\GALLERY.APP"
_GENGRAPH Pub C ""
_GENHTML Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\GENHTML.PRG"
_GENMENU Pub C "C:\Program Files (x86)\Microsoft Visual FoxPro 9\Tools\AB\awGenMenu.prg"
_GENPD Pub C ""
_GENSCRN Pub C ""
_GENXTAB Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\VFPXTAB.PRG"
_GETEXPR Pub C ""
_INCLUDE Pub C ""
_INCSEEK Pub N 0.50 ( 0.50000000)
_INDENT Pub N 0 ( 0.00000000)
_LMARGIN Pub N 0 ( 0.00000000)
_MAC Pub L .F.
_MENUDESIGNERPub C ""
_MLINE Pub N 0 ( 0.00000000)
_OBJECTBROWSERPub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\OBJECTBROWSER.APP"
_PADVANCE Pub C "FORMFEED"
_PAGENO Pub N 304 ( 304.00000000)
_PAGETOTAL Pub N 0 ( 0.00000000)
_PBPAGE Pub N 1 ( 1.00000000)
_PCOLNO Pub N 22 ( 22.00000000)
_PCOPIES Pub N 1 ( 1.00000000)
_PDRIVER Pub C ""
_PDSETUP Pub C ""
_PECODE Pub C ""
_PEJECT Pub C "NONE"
_PEPAGE Pub N 32767 ( 32767.00000000)
_PLENGTH Pub N 66 ( 66.00000000)
_PLINENO Pub N 16 ( 16.00000000)
_PLOFFSET Pub N 0 ( 0.00000000)
_PPITCH Pub C "DEFAULT"
_PQUALITY Pub L .F.
_PRETEXT Pub C ""
_PSCODE Pub C ""
_PSPACING Pub N 1 ( 1.00000000)
_PWAIT Pub L .F.
_REPORTBUILDERPub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\REPORTBUILDER.APP"
_REPORTOUTPUTPub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\REPORTOUTPUT.APP"
_REPORTPREVIEWPub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\REPORTPREVIEW.APP"
_RMARGIN Pub N 80 ( 80.00000000)
_RUNACTIVEDOCPub C ""
_SAMPLES Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\SAMPLES\"
_SCCTEXT Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\SCCTEXT.PRG"
_SCREEN Pub O FORM
_SHELL Pub C ""
_SPELLCHK Pub C ""
_STARTUP Pub C "D:\FOXNET\STARTUP.PRG"
_TABS Pub C ""
_TALLY Pub N 1 ( 1.00000000)
_TASKLIST Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TASKLIST.APP"
_TASKPANE Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TASKPANE.APP"
_TEXT Pub N -1 ( -1.00000000)
_THROTTLE Pub N 0.00 ( 0.00000000)
_TOOLBOX Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLBOX.APP"
_TOOLTIPTIMEOUTPub N 0 ( 0.00000000)
_TRANSPORT Pub C ""
_TRIGGERLEVELPub N 0 ( 0.00000000)
_UNIX Pub L .F.
_VFP Pub O MICROSOFT VISUAL FOXPRO APPLICATION 9.0
_WINDOWS Pub L .T.
_WIZARD Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\WIZARD.APP"
_WRAP Pub L .F. 90 System Variables Defined

Menu and Pad Definitions 0 Menus Defined

Popup Definitions

_VFP9TOOLS 1756 bytes 1 Popup Defined

Window Definitions

Name From To Size
AWADAPTER 0.000,0.000 36.063,94.222 1853932 bytes
ATTHERMO 14.063,13.333 20.250,80.000 240768 bytes 2 Windows Defined

Set("Path")
====================
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\FFC\
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLS\
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLS\AB\
C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\


Set("Procedure")
====================
AB.FXP
ABARRAY.FXP
ABDATA.FXP
ABDATE.FXP
ABDEV.FXP
ABFILE.FXP
ABGA.FXP
ABOFFICE.FXP
ABOOP.FXP
ABTXT.FXP
AC.FXP
ACDATA.FXP
ACGA.FXP
ACOOP.FXP
ACTXT.FXP
AWGA.FXP
AWOOP.FXP
AWOOPMENU.FXP
AWPUBLIC.FXP
AWTXT.FXP
WWAPI.FXP
WWCONFIG.FXP
WWHTTP.FXP
WWUTILS.FXP


Set("Classlib")
====================
"C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLS\AB\AW.VCX" ALIAS AW
"C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AT\AT.VCX" IN "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP" ALIAS AT
"C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPTER.VCX" ALIAS AWADAPTER
"C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WEBSERVER.VCX" ALIAS WEBSERVER
"C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WWIPSTUFF.VCX" IN "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP" ALIAS WWIPSTUFF
"C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WWXML.VCX" IN "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP" ALIAS WWXML


Display status
====================

Processor is Pentium
Currently Selected Table:
Select area: 8, Table in Use: D:\TEST\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\COMMON\CLASSES\CMODECLS.VCX Alias: CMODECLS
Code page: 1252
Memo file: D:\TEST\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\COMMON\CLASSES\CMODECLS.VCT
Lock(s): <none>

Select area: 6, Table in Use: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_ADAPT.DBF Alias: ADAPT
Code page: 1252
Structural CDX file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_ADAPT.CDX
Index tag: ADAPTCK Collate: Machine Key: STR(MODULE)+STR(ILINE)+STR(AWADAPT) Candidate
Index tag: MODULE Collate: Machine Key: MODULE
Index tag: AWADAPT Collate: Machine Key: AWADAPT
Index tag: ILINE Collate: Machine Key: ILINE
Index tag: LIGNORED Collate: Machine Key: LIGNORED
Index tag: LVIEWED Collate: Machine Key: LVIEWED
Index tag: TVIEWED Collate: Machine Key: TVIEWED
Index tag: LFIXED Collate: Machine Key: LFIXED
Index tag: TFIXED Collate: Machine Key: TFIXED
Index tag: DELETD Collate: Machine Key: DELETED()
Memo file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_ADAPT.FPT
Lock(s): <none>

Select area: 5, Table in Use: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_MODULE.DBF Alias: MODULE
Code page: 1252
Structural CDX file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_MODULE.CDX
Index tag: MODULE Collate: Machine Key: MODULE Candidate
Index tag: CLASSMOD Collate: Machine Key: PADR(STR(FILEDIR)+UPPER(TRIM(CNAME))+"_"+UPPER(TRIM(CCLASS))+"_"+UPPER(TRIM(COLECLASS))+"_"+UPPER(TRIM(CMODULE))+"_"+UPPER(TRIM(CPCNAME))+"_"+UPPER(TRIM(CPARCLASS)),200) Candidate For: .NOT.DELETED()
Index tag: FILEDIR Collate: Machine Key: FILEDIR
Index tag: CNAME Collate: Machine Key: UPPER(CNAME)
Index tag: CCLASS Collate: Machine Key: UPPER(CCLASS)
Index tag: CCLASS_ Collate: Machine Key: UPPER(CCLASS_)
Index tag: CPARENT Collate: Machine Key: UPPER(CPARENT)
Index tag: CPCNAME Collate: Machine Key: UPPER(CPCNAME)
Index tag: CPARCLASS Collate: Machine Key: UPPER(CPARCLASS)
Index tag: CBASECLASS Collate: Machine Key: UPPER(CBASECLASS)
Index tag: COLECLASS Collate: Machine Key: UPPER(COLECLASS)
Index tag: CMODULE Collate: Machine Key: UPPER(CMODULE)
Index tag: CFILEBC Collate: Machine Key: PADR(CAST(FILEDIR AS M)+LOWER(CBASECLASS),50)
Index tag: LCLASS Collate: Machine Key: LCLASS
Index tag: LBASECLASS Collate: Machine Key: LBASECLASS
Index tag: LMODULE Collate: Machine Key: LMODULE
Index tag: LIGNORED Collate: Machine Key: LIGNORED
Index tag: LEVENT Collate: Machine Key: LEVENT
Index tag: NANALYSECS Collate: Machine Key: NANALYSECS
Index tag: NINST Collate: Machine Key: NINST
Index tag: NADAPT Collate: Machine Key: NADAPT
Index tag: NADAPTMAN Collate: Machine Key: NADAPTMAN
Index tag: DELETD Collate: Machine Key: DELETED()
Memo file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_MODULE.FPT
Lock(s): <none>

Select area: 4, Table in Use: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST.DBF Alias: FILEDIR
Code page: 1252
Structural CDX file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST.CDX
Index tag: FILEDIR Collate: Machine Key: FILEDIR Candidate
Index tag: FILECK Collate: Machine Key: PADR(UPPER(RTRIM(MADDR)),200) Candidate
Index tag: CNAME Collate: Machine Key: CNAME
Index tag: CSTEM Collate: Machine Key: CSTEM
Index tag: CEXT Collate: Machine Key: CEXT
Index tag: NBYTES Collate: Machine Key: NBYTES
Index tag: TMOD Collate: Machine Key: TMOD
Index tag: TDIR Collate: Machine Key: TDIR
Index tag: DELETD Collate: Machine Key: DELETED()
Index tag: NADAPT Collate: Machine Key: NADAPT
Index tag: TANALYSE Collate: Machine Key: TANALYSE
Index tag: TADAPT Collate: Machine Key: TADAPT
Index tag: LCLASSCODE Collate: Machine Key: LCLASSCODE
Index tag: LSRCECODE Collate: Machine Key: LSRCECODE
Index tag: LEXCLUDED Collate: Machine Key: LEXCLUDED
Index tag: LTRDPARTY Collate: Machine Key: LTRDPARTY
Index tag: LIGNORED Collate: Machine Key: LIGNORED
Index tag: LMODIFIED Collate: Machine Key: LMODIFIED
Index tag: LCODEPAGE Collate: Machine Key: LCODEPAGE
Memo file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST.FPT
Lock(s): 5
Filter: Filedir.LSRCECODE

Select area: 10, Table in Use: D:\FOXTEMP\0000FKLL0020.TMP Alias: AWADAPTPJ
Code page: 1252
Structural CDX file: D:\FOXTEMP\0000FKLL0020.CDX
Master Index tag: CFILE Collate: Machine Key: UPPER(CFILE)
Index tag: CEXT Collate: Machine Key: CEXT
Index tag: CCLASS Collate: Machine Key: UPPER(CCLASS)
Index tag: CCLASS_ Collate: Machine Key: UPPER(CCLASS_)
Index tag: CBASECLASS Collate: Machine Key: UPPER(CBASECLASS)
Index tag: CMODULE Collate: Machine Key: UPPER(CMODULE)
Index tag: NINST Collate: Machine Key: NINST
Index tag: NADAPT Collate: Machine Key: NADAPT
Index tag: NADAPTMAN Collate: Machine Key: NADAPTMAN
Index tag: AWADAPT Collate: Machine Key: AWADAPT
Index tag: CADAPT Collate: Machine Key: CADAPT
Index tag: CADAPTTYPE Collate: Machine Key: CADAPTTYPE
Index tag: LIGNORED Collate: Machine Key: LIGNORED
Index tag: LEXCLUDED Collate: Machine Key: LEXCLUDED
Index tag: LTRDPARTY Collate: Machine Key: LTRDPARTY
Index tag: TVIEWED_E Collate: Machine Key: EMPTY(TVIEWED)
Index tag: TFIXED_E Collate: Machine Key: EMPTY(TFIXED)
Index tag: _DELETED Collate: Machine Key: DELETED()
Index tag: _RECNO Collate: Machine Key: RECNO()
Memo file: D:\FOXTEMP\0000FKLL0021.TMP
Lock(s): Exclusive USE
Filter: NADAPT>0

Select area: 11, Table in Use: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWBCEVENT.DBF (Readonly) Alias: AWBCEVENT
Code page: 1252
Structural CDX file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWBCEVENT.CDX
Index tag: AWBCEVENT Collate: Machine Key: PADR(TRIM(BASECLASS)+"."+TRIM(VFPEVENT),50) Candidate
Index tag: BCDOMEVT1 Collate: Machine Key: PADR(CWORDS(".",ALLTRIM(BASECLASS),ALLTRIM(GETWORDNUM(ALLTRIM(LOWER(DOMEVENT)),1,",")),ALLTRIM(GETWORDNUM(" "+ALLTRIM(CONDITION),1,","))),50)
Index tag: BCDOMEVT2 Collate: Machine Key: PADR(CWORDS(".",ALLTRIM(BASECLASS),ALLTRIM(GETWORDNUM(ALLTRIM(LOWER(DOMEVENT)),2,",")),ALLTRIM(GETWORDNUM(" "+ALLTRIM(CONDITION),2,","))),50)
Index tag: BASECLASS Collate: Machine Key: BASECLASS
Index tag: VFPEVENT Collate: Machine Key: VFPEVENT
Index tag: DOMEVENT Collate: Machine Key: DOMEVENT
Index tag: AWADAPT Collate: Machine Key: AWADAPT
Memo file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWBCEVENT.FPT
Lock(s): <none>

Select area: 12, Table in Use: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARSAWADAPT-TIME.DBF Alias: AWADAPTTIME
Code page: 1252
Structural CDX file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARSAWADAPT-TIME.CDX
Index tag: AWADAPT Collate: Machine Key: AWADAPT Candidate
Lock(s): <none>

Select area: 7, Table in Use: D:\FOXTEMP\0000FKLL0012.TMP Alias: MHINT
Code page: 1252
Structural CDX file: D:\FOXTEMP\0000FKLL0012.CDX
Master Index tag: AWADAPT Collate: Machine Key: AWADAPT Candidate
Memo file: D:\FOXTEMP\0000FKLL0013.TMP
Lock(s): Exclusive USE

Select area: 3, Table in Use: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\_SOURCE\AWROADMAP.DBF (Readonly) Alias: AWROADMAP
Code page: 1252
Structural CDX file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\_SOURCE\AWROADMAP.CDX
Index tag: AWROADMAP Collate: Machine Key: AWROADMAP Candidate For: .NOT.EMPTY(awroadmap)
Index tag: AWADAPT Collate: Machine Key: AWADAPT
Index tag: VERSION Collate: Machine Key: VERSION
Index tag: DISPLAY Collate: Machine Key: STR(FICORDER)+STR(IORDER,3)+STR(EVL(DDONE-DATE(100,1,1),9999999999))
Memo file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\_SOURCE\AWROADMAP.FPT
Lock(s): <none>

Select area: 2, Table in Use: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPTTYPE.DBF (Readonly) Alias: AWADAPTTYPE
Code page: 1252
Structural CDX file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPTTYPE.CDX
Index tag: CTYPE Collate: Machine Key: CTYPE Candidate
Index tag: DELETD Collate: Machine Key: DELETED()
Lock(s): <none>

Select area: 1, Table in Use: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPT.DBF (Readonly) Alias: AWADAPT
Code page: 1252
Structural CDX file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPT.CDX
Index tag: AWADAPT Collate: Machine Key: AWADAPT Candidate
Index tag: DELETD Collate: Machine Key: DELETED()
Memo file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPT.FPT
Lock(s): <none>

Procedure file: AB.FXP, ABARRAY.FXP, ABDATA.FXP, ABDATE.FXP, ABDEV.FXP, ABFILE.FXP, ABGA.FXP, ABOFFICE.FXP, ABOOP.FXP, ABTXT.FXP, AWPUBLIC.FXP, AC.FXP, ACDATA.FXP, ACGA.FXP, ACOOP.FXP, ACTXT.FXP, WWHTTP.FXP, WWCONFIG.FXP, WWAPI.FXP, WWUTILS.FXP, AWOOP.FXP, AWTXT.FXP, AWOOPMENU.FXP, AWGA.FXP
Class libraries: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AT\AT.VCX IN C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP ALIAS AT, C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WWXML.VCX IN C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP ALIAS WWXML, C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WWIPSTUFF.VCX IN C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP ALIAS WWIPSTUFF, C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WEBSERVER.VCX ALIAS WEBSERVER, C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPTER.VCX ALIAS AWADAPTER, C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLS\AB\AW.VCX ALIAS AW
File search path: C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLS\AB\;C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\;C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\;C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\FFC\;C:\PROGRAM FILES (X86)\M...
Default directory: \\HOMENCSMEL\NCSMXP$\DATA
Print file/device:
Work area = 8
Margin = 0
Decimals = 2
Memowidth = 50
Typeahead = 20
Blocksize = 64
Reprocess = Automatic
Refresh = 0, 5.000 SECONDS
DDE Timeout = 2000
DDE Safety = on

Code page: 1252
Collating sequence: Machine
Compiler code page: 1252
Date format: American
Macro Hot Key =
UDF parameters are passed by: VALUE
On Error: DO awAdapter_error WITH Error(), Message()
ON KEY LABEL hot keys:
F2 KEYBOARD 'set default d:\app\cars\temp' + CHR(13)
F4 KEYBOARD 'set path i:\app\cars\new\data;i:\app\cars\data;g:\cars\common\app;d:\app\cars\new\security;q:\programs\shared\cars\classes' + CHR(13)
F5 KEYBOARD 'set default j:\carsdev\mp\new' + CHR(13)
F7 SUSPEND
F9 DO d:\foxnet\clear.prg
F11 KEYBOARD "set default 'd:\devspace\devspace\local projects\cars\2_69_0'" + CHR(13)
F3 KEYBOARD 'set path d:\app\cars\new\security' + CHR(13)
F12 KEYBOARD 'set path q:\data' + CHR(13)
Textmerge Options
Delimiters: Left = < Right = >
Show

Alternate - off Brstatus - off Compatible - off Device - scrn Fields - off Intensity - on Near - off Safety - off Textmerge - off
ANSI - on Carry - off Confirm - off Echo - off Fixed - off Lock - off Null - off Space - on Title - off
Asserts - off Century - on Console - off Escape - on Fullpath - on Logerrors - on Optimize - on Status Bar - on Unique - off
Bell - on Clear - on Cursor - on Exact - on Heading - on Mouse - on Print - off Sysmenus - on
Blink - on Color - on Deleted - off Exclusive - off Help - on Multilocks - off Readborder - off Talk - off

API library Instance Handle
c:\...\foxtools.fll 268435456

Function Address
INITIALIZE 1000271F Call on load.
UNINITALIZE 10002FAB Call on unload.
MSGBOX 10005951
REGFN 10002F4E
REGFN32 10002F86
CALLFN 10002766
MKDIR 10005659
RMDIR 100056B6
GETPROSTRG 10005739
PUTPROSTRG 1000587C
FOXTOUCH 100054E4
RGBCOMP 10005DB3
VALIDPATH 10004F29
CLEANPATH 10005013
REDUCE 10005074
STRFILTER 100051AA
WORDS 10005279
WORDNUM 10005335
NEXTWORD 10005409
_EDSETPOS 1000379B
_EDSKIPLIN 100037A9
_EDGETPOS 100037C1
_EDGETLPOS 100037D7
_EDGETLNUM 100037EE
_EDPOSINVI 10003805
_EDSTOPOS 10003817
_EDSTOSEL 10003828
_EDINSERT 10003838
_EDSENDKEY 1000388B
_EDDELETE 10003899
_EDGETCHAR 100038A6
_EDGETSTR 100038C6
_EDINDENT 10003949
_EDCOMMENT 10003957
_EDSELECT 10003965
_EDCOPY 10003974
_EDCUT 1000397E
_EDPASTE 10003989
_EDUNDO 10003994
_EDREDO 1000399F
_EDUNDOON 100039AA
_EDACTIVE 100039B5
_EDLASTERR 100039C0
_EDSETENV 100039D2
_EDGETENV 10003EC8
_EDOPENFIL 100042D2
_EDCLOSEFI 1000432C
_EDREVERT 10004341
_EDPROPERTIES 1000434B
_EDPROCLIST 10004358
GETCLIPDAT 100030AF
GETCLIPFMT 100030DE
ISCLIPFMT 10003122
ENUMCLIPFM 10003132
REGCLIPFMT 10003145
SETCLIPDAT 1000315E
EMPTYCLIP 1000306A
COUNTCLIPF 10003077
OPENCLIP 10003112
CLOSECLIP 10003087
MAINHWND 10003094
_WSOCKSTARTUP 10005B3F
_WSOCKCLEANUP 10005D48
_WSOCKGETHOSTBYADDR 10005CAC
_GETWRECT 10005E4D
_WHTOHWND 10005ED5
_WFINDTITL 10005EE7
_WMAINWIND 10005F40
_FINDWINDO 10005F65
_FINDWINDP 10005FA8
_WONTOP 10005F54
_WOPEN 10005FEA
_WSCROLL 10006138
_WOPENP 10006091
_WSCROLLP 10006181
_WCLOSE 100061CA
_WHIDE 100061D5
_WSHOW 100061E0
_WZOOM 100061EB
_WSELECT 100061F6
_WSENDBEHI 10006201
_WGETPORT 1000620C
_WSETPORT 1000621E
_WMOVE 10006235
_WSIZE 1000624A
_WMOVEP 10006260
_WSIZEP 10006275
_WTOP 1000628B
_WBOTTOM 100062B7
_WLEFT 100062E4
_WRIGHT 10006312
_WHEIGHT 10006340
_WWIDTH 1000636E
_WTOPP 100062A1
_WBOTTOMP 100062CD
_WLEFTP 100062FB
_WRIGHTP 10006329
_WHEIGHTP 10006357
_WWIDTHP 10006385
_WCLEAR 1000644E
_WCLEARREC 10006458
_WCLEARREP 10006499
_WPOSCURSO 100064DA
_WPOSCURP 100064F0
_WGETCURSO 10006506
_WGETCURP 10006550
_WATTR 10006599
_WSETATTR 100065AE
_WPUTCHR 100065BD
_WPUTSTR 100065C8
_WSETTITLE 100063FC
_WTITLE 1000639C
_WFOOTER 100063C9
GETFILEVERSION 10006618
FOXTOOLVER 10005AAA


Declared DLLs:
GdiSetBatchLimit C:\Windows\syswow64\GDI32.dll
GetKeyState c:\windows\system32\user32.dll
GetLastError C:\Windows\syswow64\kernel32.dll
GetTimeZoneInformation C:\Windows\syswow64\kernel32.dll
GetUserDefaultUILanguage C:\Windows\syswow64\kernel32.dll
HttpOpenRequest c:\windows\system32\wininet.dll
HttpQueryInfo c:\windows\system32\wininet.dll
HttpSendRequest c:\windows\system32\wininet.dll
InternetCloseHandle c:\windows\system32\wininet.dll
InternetConnect c:\windows\system32\wininet.dll
InternetOpen c:\windows\system32\wininet.dll
InternetReadFile c:\windows\system32\wininet.dll
InternetSetOption c:\windows\system32\wininet.dll
ShellExecute c:\windows\system32\shell32.dll
SHGetSpecialFolderPath c:\windows\system32\shell32.dll


Hi Martin,

Thanks for providing your code sample -- strangely enough we ran a successful unit test of acRegExpBlock against this code sample! No infinite loop at all ...

However we did find a bug that made the module deliver a wrong result in this case, and found a more simple algorithm with less logical structures and variables -- useful refactoring.

Please let FAA auto-update by restarting it and post back your feedback.

I wish you a nice day


Hi Thierry,

Thanks again for your prompt response.

I have proceeded as you suggested and I think I have determined the code where the infinite loop occurs. I have attached this code at the end of this message.

Based on the information you provided regarding nested WITH statements, I removed all WITH/ENDWITH constructs from this code and retried FAA and this time I got to 40% before FAA "hung" again.

This would seem to confirm that WITH statements may be the root cause of the issue.

Please let me know if you need anything further from me to assess the problem.

Thanks and regards,

Martin




-- thn (FoxInCloud)

Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  Martin
  Thierry Nivelet (FoxInCloud)
  Feb 9, 2016 @ 12:13pm
Hi Thierry,

As requested, the code from the SaveAction method of the cfrmMode class is attached below.

In this method there are 4 WITH statements and 4 ENDWITH statements.

Thank you once again. Your assistance is very much appreciated.

Martin

*******************************************************************
*$PARAMETERS$
* lcBatchID - Batch ID used in save.
*$PARAMETERS$
*
*$VARIABLES$
* aDoubleKeyObjects - Array containing details of controls whose
* values where double-keyed.
* aDoubleKeyObjects[n,1] - Label identifying data
* aDoubleKeyObjects[n,2] - Status of mismatch.
* aDoubleKeyObjects[n,3] - Object reference to data control
* aDoubleKeyObjects[n,4] - Value keyed in double-key
* aDoubleKeyObjects[n,5] - Original value keyed.
* aDoubleKeyObjects[n,6] - Final authorised value
* aDoubleKeyObjects[n,7] - Error message to display for mismatch
* aDoubleKeyObjects[n,8] - Indicates if row not used in current
* matching.
* aDoubleKeyObjects[n, 9] - Formatted display value of the new value
* aDoubleKeyObjects[n,10] - Formatted display value of the old value
* lnCount - Loop counter
* llDblKeyError - Flags if a double-key mismatch exists
* llDoubleKeyMatch - Flags if all values match after resolution
* llReturn - Flags success or otherwise
* lcDoubleKeyBatchID - Batch ID for double-keyed data.
* lcProcessID - Stores Process ID of current process
* ltCreated - Date & time record created
* lcKeyID - ID of the current record in the main table.
* lnDelCount - Counter of array rows deleted
* lnNumRows - Original number of rows in array (aDoubleKeyObjects)
*$VARIABLES$
*
*$RETURNS$
* llReturn
*$RETURNS$
*
*$HISTORY$
* 28/11/1999 - Added double-key capability.
* 02/02/2000 - Removed rows from array not used in current matching.
* 09/02/2000 - Structure of dkeylog has changed. Errmsg field has been
* replaced by ORGVALUE & NEWVALUE.
* 10/02/2000 - ALLTRIMed a check on .aDoubleKeyObjects[lnCount,2]
* 24/10/2000 - Added a tablename field to DKEYLOG.
* 29/12/2000 - When clearing column 8 of aDoubleKeyObjects, first check
* to see if the array has 8 columns.
* 02/01/2001 - If the doublekey array contains less than 8 columns,
* redimension it to 8 columns.
* 14/06/2001 - If it contains less than 10 columns redimension it
* to 10 columns
* 15/06/2001 - Changed to dimension aDoubleKeyObjects[] with
* its default number of columns
* 12/09/2001 - Changed to stop all double key handling here if
* the form's complex class is using a middle tier.
*$HISTORY$
*******************************************************************

LPARAMETERS lcBatchID
LOCAL llReturn, llDblKeyError, lnCount, llDoubleKeyMatch, ;
lcDoubleKeyBatchID, lcProcessID, ltCreated, lcKeyID, ;
lnDelCount, lnNumRows, lcTablename

STORE .T. TO llReturn, llDoubleKeyMatch
STORE .F. TO llDblKeyError
STORE 0 TO lnCount, lnDelCount, lnNumRows
STORE "" TO lcDoubleKeyBatchID, lcProcessID, lcKeyID, lcTablename
STORE DTOT({}) TO ltCreated

llReturn = DODEFAULT(lcBatchID)

IF llReturn
*-- If we are in doublekey mode, check that all values match.
IF Thisform.cMode = "DOUBLEKEY" AND ;
IIF(TYPE("thisform.ocomplex") = "O" AND NOT ISNULL(thisform.ocomplex), ;
EMPTY(thisform.ocomplex.cbusMiddleTier), ;
.t.)

*-- Clear the flag used to indicate if array row was used in match-up
IF ALEN(this.aDoubleKeyObjects, 2) < this.nDKArrayCols
lnNumRows = ALEN(this.aDoubleKeyObjects, 1)
DIMENSION this.aDoubleKeyObjects[lnNumRows, this.nDKArrayCols]
ENDIF
*-- Reset column
FOR lnCount = 1 TO ALEN(this.aDoubleKeyObjects, 1)
this.aDoubleKeyObjects[lnCount,8] = .F.
ENDFOR

*-- Determine if double-keyed controls and data match.
llDblKeyError = NOT This.DoubleKeyControlMatch()
llDblKeyError = (NOT This.DoubleKeyCodeMatch()) OR llDblKeyError

*-- Redimension the array to discard all rows where column 8 is .F. and
* column 3 is not an object reference.
WITH this
lnNumRows = ALEN(.aDoubleKeyObjects, 1)
FOR lnCount = 1 TO lnNumRows
IF .aDoubleKeyObjects[lnCount,8] = .F. AND ;
VARTYPE(.aDoubleKeyObjects[lnCount,3]) <> "O"
lnDelCount = lnDelCount + 1
=ADEL(.aDoubleKeyObjects, lnCount)
lnCount = lnCount - 1
ENDIF

IF lnCount + lnDelCount = lnNumRows
EXIT
ENDIF
ENDFOR
IF lnCount <> lnNumRows + 1
IF lnCount > 0
DIMENSION .aDoubleKeyObjects[lnCount,.nDKArrayCols]
ELSE
DIMENSION .aDoubleKeyObjects[1,.nDKArrayCols]
ENDIF
ENDIF
ENDWITH


*-- If there are any mismatches
IF llDblKeyError
*-- Display the mismatch resolution screen.
DO FORM DKeyChk WITH thisform TO llDoubleKeyMatch
ENDIF
*-- If all items are now matched, log those that
* were overridden by the authoriser.
IF llDoubleKeyMatch
WITH thisform.oComplex
*-- Clean up any previous DKeyLog records for this session
IF PEMSTATUS(thisform.oComplex, "cDoubleKeyBatchID", 5)
IF NOT EMPTY(.cDoubleKeyBatchID)
SELECT dkeylog
SET ORDER TO dkeybatch
=SEEK(.cDoubleKeyBatchID, 'dkeylog', 'dkeybatch')
DELETE WHILE dkeylog.dkeybatchid = .cDoubleKeyBatchID
ELSE
.cDoubleKeyBatchID = spNewID("BatchID")
ENDIF
ELSE
.AddProperty("cDoubleKeyBatchID")
.cDoubleKeyBatchID = spNewID("BatchID")
ENDIF
lcDoubleKeyBatchID = .cDoubleKeyBatchID
lcProcessID = .cProcessID
ltCreated = spDateTime()
*-- Obtain the primarykey of the current record in the main table
WITH this.oComplex.oData
FOR lnCount = 1 TO ALEN(.aTables, 1)
IF .aTables[lnCount, 6]
spGetPrimaryKeyData(.aTables[lnCount, 3], @lcKeyId)
lcTablename = .aTables[lnCount, 2]
EXIT
ENDIF
ENDFOR
ENDWITH
ENDWITH

*-- Write to DKeyLog all adjusted data for
IF llDblKeyError
WITH thisform
FOR lnCount = 1 TO ALEN(.aDoubleKeyObjects,1)
IF ALLTRIM(.aDoubleKeyObjects[lnCount, 2]) = "Accepted"
INSERT INTO dkeylog ;
(dkeybatchid, ;
processid, ;
tablename, ;
datakey, ;
label, ;
orgvalue, ;
newvalue, ;
created) ;
VALUES ;
(lcDoubleKeyBatchID, ;
lcProcessID, ;
UPPER(lcTablename), ;
lcKeyId, ;
.aDoubleKeyObjects[lnCount, 1], ;
.aDoubleKeyObjects[lnCount, 5], ;
.aDoubleKeyObjects[lnCount, 4], ;
ltCreated)
ENDIF
ENDFOR
ENDWITH
ENDIF
ENDIF
ENDIF

ENDIF

*-- If not all double-keyed items matched and they were not
* resolved by the user, this function with return .F. and
* the save will not complete.

RETURN llReturn AND llDoubleKeyMatch


Hi Martin,

Sorry for the error; obviously all our tests were OK but your coding style seems different.

What happens is that the code has seen more block closing instructions (ENDWITH) than their opening counterparts (WITH ...)

We normally support macro substitution, name expressions and .member coding styles, maybe you have a combination of those.

Would you mind providing the code of this method?

modify class cfrmmode of COMMON\CLASSES\cmodecls.vcx method Saveaction

Thanks for your patience.


Hi Thierry,

Started FAA and it auto-updated as expected.

Selected my project and started analyzing and received the below message:

Content of clipboard is pasted below.

Clicking "Yes" to resume execution resulted in the same error being displayed repetitively.

Regards,

Martin


to: support@foxincloud.com
(copy and paste into the 'to' field of your email)

subject: FAA issue in ACREGEXPBLOCK.EXECUTE() - Invalid subscript reference.
(copy and paste into the 'subject' field of your email)

{^2016-02-09 09:30 AM}

Windows 7 - DBCS: no - SP: Service Pack 1 - Suite: 256
Visual FoxPro 09.00.0000.3504 for Windows [Nov 4 2005 17:39:44] Product ID 76683-270-0703211-18928 - Locale: English
FAA version 2.21.0-beta.9 of 02/04/2016 04:26 PM

Error #: 31
Message: Invalid subscript reference.

Call Stack
====================
1_awadapterstart > 2_awadapter > 3_cmdpjx.click > 4_awadapter.cpjx_assign > 5_awadapter.analyse > 6_awadapter.analyse > 7_awadapter.analyse_cx > 8_awadapter.analyse_module > 9_awadapter.analyse_module_objectsadded > 10_awadapter.analyse_module_objectsadded_ > 11_acregexpblock.execute > 12_ > 13_awadapter_error

Variables
====================

GCADOSSIER Pub C ""
EUROPEAN Pub C "

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~CueaaaaceeeiiiAAE‘’ooouuyOU›œžŸaiounN¦§?©ª«¬!®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
EUROANSI Pub C "

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿AAAAAAÆCEEEEIIIIDNOOOOO×ØUUUUYÞßaaaaaaæceeeeiiiidnooooo÷øuuuuyþy"
TLLOCALHOST Local L .F. awadapterstart
TCLANG Local C "en" awadapterstart
FOO Local L .F. awadapterstart
LLABDEVNOT Local L .T. awadapterstart
LCSYS16 Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTERSTART.APP" awadapterstart
LLPRG Local L .F. awadapterstart
LCDIRAW Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\" awadapterstart
LCDIRAB Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\" awadapterstart
LLDEVMODE Local L .F. awadapterstart
LOSETPROC Local O ABSET awadapterstart
LOSETCLAS Local O ABSET awadapterstart
LOSETPATH Local O ABSET awadapterstart
LODEFAULT Local O ABSET awadapterstart
LOSYSFMTS Local O ABSET awadapterstart
LOASSERTS Local O ABSET awadapterstart
LONOTIFY Local O ABSET awadapterstart
LOFRMCONFIG Local O FRMCONFIG awadapterstart
LOHTTP Local O WWHTTP awadapterstart
LCCAPTION_ Local C "Microsoft Visual FoxPro" awadapterstart
LCCAPTION Local C "FoxInCloud Adaptation Assistant" awadapterstart
LCICON_ Local C "" awadapterstart
LNATTEMPTS Local N 0 ( 0.00000000) awadapterstart
LCVIRTUAL Local C "/" awadapterstart
LCURL Local C "http://www.foxincloud.com/" awadapterstart
LCAPP Local C "AWADAPTER.app" awadapterstart
LCAPPADDR Local C "AWADAPTER.APP" awadapterstart
LTAPP Local T 02/09/2016 09:18 AM awadapterstart
LTAPPSERVER Local T 02/08/2016 11:35 PM awadapterstart
LCSERVER Local C "www.foxincloud.com" awadapterstart
LTSERVER Local C "{^2016-02-08 23:28:08}" awadapterstart
LLSERVER Local L .T. awadapterstart
LLAPPNEW Local L .F. awadapterstart
LCRESULT Local L .F. awadapterstart
LLRESULT Local L .T. awadapterstart
TCURL Local C "http://foxincloud.com/" awadapter
TAWADAPTERSTART Local T 06/20/2014 02:02 PM awadapter
TTAPP Local ltapp
TOCONFIG Local lofrmconfig
TOHTTP Local lohttp
LLRESULT Local L .T. awadapter
LCRESULT Local L .F. awadapter
LCLANG Local C "en" awadapter
LCSYS161 Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTERSTART.APP" awadapter
LCSYS162 Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP" awadapter
LLSTARTERAPP Local L .T. awadapter
LCSTARTER Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTERSTART.APP" awadapter
LLSTARTER Local L .F. awadapter
LCSYS16_ Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP" awadapter
LCDIR16_ Local C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\" awadapter
LLTHISAPP Local L .T. awadapter
LNSYS2450 Local N 0 ( 0.00000000) awadapter
LOSETDEFAULT1 Local O ABSET awadapter
LOSETPATH1 Local O ABSET awadapter
LOSETCLAS1 Local O ABSET awadapter
LOSETPROC1 Local O ABSET awadapter
LOONERROR Local O ABON awadapter
LOSETDEFAULT2 Local L .F. awadapter
LOSETPATH2 Local L .F. awadapter
LOSETCLAS2 Local L .F. awadapter
LOSETPROC2 Local L .F. awadapter
LOTALK Local O ABSET awadapter
LONOTIFY Local O ABSET awadapter
LOEXCLUSIVE Local O ABSET awadapter
PORESULT Priv L N/A awadapter
AWADAPTER Priv O AWFORM awadapter
LODEFAULT Local O ABSET click
LCPJX Local C "D:\devspace\devspace\local projects\cars\2_69_0\cars.pjx" click
TCPJX Local C "D:\devspace\devspace\local projects\cars\2_69_0\cars.pjx" cpjx_assign
LPJUPTODATE Local L .F. cpjx_assign
LTANALYSE Local T / / : : AM cpjx_assign
LLANALYSE Local L .F. cpjx_assign
LCMSG Local L .F. cpjx_assign
LCTABLE Local C "D:\devspace\devspace\local projects\cars\2_69_0\carsawAdapt-time.dbf" cpjx_assign
TICASE Local N 1 ( 1.00000000) analyse
LLCOPY_ Local L .F. analyse
LLALL Local L .F. analyse
LLRESULT Local L .F. analyse
TUFILTER Local L .F. analyse
JUNK Local L .F. analyse
LOSTATUS Local O ABSET analyse
LLALL Local L .T. analyse
LCSTEP Local C "Analysing" analyse
LCFILTERBASE Local L .F. analyse
LCFILTER Local L .F. analyse
LLUSERSTOP Local L .F. analyse
LLRESULT Local L .T. analyse
TLCLASSES Local L .F. analyse_cx
LLRESULT Local L .T. analyse_cx
LCRESULT Local C "" analyse_cx
LOSELECT Local O ABSELECT analyse_cx
LCCXADDR Local C "D:\Test\devspace\devspace\local projects\cars\2_69_0\COMMON\CLASSES\cmodecls.vcx" analyse_cx
LCCODEVALID Local C "" analyse_cx
LCSTEP Local C "Parsing methods in" analyse_cx
LLPARENTCLASS Local L .T. analyse_cx
LLANALYSE Local L .T. analyse_cx
LCOBJNAME Local C "cfrmmode" analyse_cx
LLCLASS Local L .T. analyse_cx
LCCLASS Local C "cedtbase" analyse_cx
LACLASS Local A analyse_cx ( 1) L .F.
LCCLASS_ Local L .F. analyse_cx
LICLASS Local L .F. analyse_cx
LCCLASSLIB Local C "CBASECLS.VCX" analyse_cx
LCBASECLASS Local C "Editbox" analyse_cx
LCOLECLASS Local C "" analyse_cx
LLMETHOD Local L .T. analyse_cx
LNMETHOD Local N 13 ( 13.00000000) analyse_cx
LIMETHOD Local N 13 ( 13.00000000) analyse_cx
LOMETHOD Local O COLLECTION analyse_cx
TCCLASS Local C "cfrmmode" analyse_module
TCPARENTCLASS Local C "cfrmbase" analyse_module
TCPARCLASSFILE Local C "CBASECLS.VCX" analyse_module
TCBASECLASS Local C "Form" analyse_module
TCOLECLASS Local C "" analyse_module
TCMODULE Local C "saveaction" analyse_module
TCCODE Local C "LOCAL llRe..." 3810 bytes analyse_module
TNLINE Local N 1 ( 1.00000000) analyse_module
TCPARMS Local C "**********..." 2685 bytes analyse_module
TLCLASS Local L .T. analyse_module
TCCLASSFILE Local C "D:\Test\devspace\devspace\local projects\cars\2_69_0\COMMON\CLASSES\cmodecls.vcx" analyse_module
TCPARENT Local C "" analyse_module
LLRESULT Local L .T. analyse_module
LCMODULE Local C "Saveaction" analyse_module
LNINSTS Local N 73 ( 73.00000000) analyse_module
LLMETHOD Local L .T. analyse_module
LLEVENT Local L .F. analyse_module
LLPROGRAM Local L .F. analyse_module
LLEVENTUSER Local L N/A analyse_module
LLEVENTCLIENTSUPPORT Local L N/A analyse_module
LLEVENTSERVERSUPPORT Local L N/A analyse_module
LLEVENTSUPPORTNOW Local L N/A analyse_module
LCEVENTHINT Local L N/A analyse_module
LIAWADAPT Local L N/A analyse_module
LLUSERNO Local L N/A analyse_module
LLBASECLASS Local L N/A analyse_module
TCNAME Local C "cfrmmode" analyse_module_objectsadded
TCMETHOD Local C "Saveaction" analyse_module_objectsadded
TCCODEINNER Local tccode
LOANSI Local O ABSET analyse_module_objectsadded
LOEXAC Local O ABSET analyse_module_objectsadded
LODELE Local O ABSET analyse_module_objectsadded
TCNAME Local C "cfrmmode" analyse_module_objectsadded_
TCMETHOD Local C "Saveaction" analyse_module_objectsadded_
TCCONTEXT Local C "" analyse_module_objectsadded_
TCCODEINNER Local tccodeinner
JUNK Local L .F. analyse_module_objectsadded_
LCCODEINNER Local L .F. analyse_module_objectsadded_
LICODEINNER Local L .F. analyse_module_objectsadded_
LOWITH Local O ACREGEXPBLOCK analyse_module_objectsadded_
LNWITH Local L .F. analyse_module_objectsadded_
LIWITH Local L .F. analyse_module_objectsadded_
LOSUBMATCH Local L .F. analyse_module_objectsadded_
LCCONTEXT Local L .F. analyse_module_objectsadded_
LLRESULT Local L .F. analyse_module_objectsadded_
TLDEBUG Local L .F. execute
TCPM Local L .F. execute
TCCODE Local tccodeinner
LNRESULT Local N 3 ( 3.00000000) execute
LCCODE Local C " *-..." 295 bytes execute
LAMATCH Local A execute
( 1, 1) N 1401 ( 1401.00000000)
( 1, 2) C " WITH t..." 669 bytes
( 1, 3) O COLLECTION
( 1, 4) N 669 ( 669.00000000)
( 2, 1) N 3191 ( 3191.00000000)
( 2, 2) C " WI..." 310 bytes
( 2, 3) O COLLECTION
( 2, 4) N 310 ( 310.00000000)
( 3, 1) N 2385 ( 2385.00000000)
( 3, 2) C " WITH..." 1131 bytes
( 3, 3) O COLLECTION
( 3, 4) N 1131 ( 1131.00000000)
LIMATCH Local N 0 ( 0.00000000) execute
LNMATCH Local N 1131 ( 1131.00000000) execute
LIABS Local N 3516 ( 3516.00000000) execute
LLBEG Local L .F. execute
LLBEG_ Local L .F. execute
LIBEG Local N 78 ( 78.00000000) execute
LNBEG Local N 23 ( 23.00000000) execute
LOBEG Local O COLLECTION execute
LIMID Local N 2416 ( 2416.00000000) execute
LIEND Local N 0 ( 0.00000000) execute
LNEND Local N 0 ( 0.00000000) execute
LOEND Local O N/A execute
LANEST Local A execute
( 1, 1) N 2385 ( 2385.00000000)
( 1, 2) N 2416 ( 2416.00000000)
( 1, 3) O COLLECTION
( 2, 1) N 3191 ( 3191.00000000)
( 2, 2) N 3226 ( 3226.00000000)
( 2, 3) O COLLECTION
LINEST Local N 0 ( 0.00000000) execute
TNERROR Local C "Error #: 31" awadapter_error
TCMESSAGE Local C "Invalid subscript reference." awadapter_error
LCFILE Local C "D:\FOXTEMP\_4K80KDTKV.log" awadapter_error
LLWARNING Local L .F. awadapter_error
LOSAFETY Local O ABSET awadapter_error
181 variables defined, 11139 bytes used
16203 variables available

Print System Memory Variables

_ALIGNMENT Pub C "LEFT"
_ASCIICOLS Pub N 80 ( 80.00000000)
_ASCIIROWS Pub N 63 ( 63.00000000)
_ASSIST Pub C ""
_BEAUTIFY Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\BEAUTIFY.APP"
_BOX Pub L .T.
_BROWSER Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\BROWSER.APP"
_BUILDER Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\BUILDER.APP"
_CALCMEM Pub N 0.00 ( 0.00000000)
_CALCVALUE Pub N 0.00 ( 0.00000000)
_CODESENSE Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\FOXCODE.APP"
_CONVERTER Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\CONVERT.APP"
_COVERAGE Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\COVERAGE.APP"
_CUROBJ Pub N -1 ( -1.00000000)
_DBLCLICK Pub N 0.50 ( 0.50000000)
_DIARYDATE Pub D 02/09/2016
_DOS Pub L .F.
_FOXCODE Pub C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\FOXCODE.DBF"
_FOXDOC Pub C ""
_FOXGRAPH Pub C ""
_FOXREF Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\FOXREF.APP"
_FOXTASK Pub C "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\FOXTASK.DBF"
_GALLERY Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\GALLERY.APP"
_GENGRAPH Pub C ""
_GENHTML Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\GENHTML.PRG"
_GENMENU Pub C "C:\Program Files (x86)\Microsoft Visual FoxPro 9\Tools\AB\awGenMenu.prg"
_GENPD Pub C ""
_GENSCRN Pub C ""
_GENXTAB Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\VFPXTAB.PRG"
_GETEXPR Pub C ""
_INCLUDE Pub C ""
_INCSEEK Pub N 0.50 ( 0.50000000)
_INDENT Pub N 0 ( 0.00000000)
_LMARGIN Pub N 0 ( 0.00000000)
_MAC Pub L .F.
_MENUDESIGNERPub C ""
_MLINE Pub N 0 ( 0.00000000)
_OBJECTBROWSERPub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\OBJECTBROWSER.APP"
_PADVANCE Pub C "FORMFEED"
_PAGENO Pub N 304 ( 304.00000000)
_PAGETOTAL Pub N 0 ( 0.00000000)
_PBPAGE Pub N 1 ( 1.00000000)
_PCOLNO Pub N 22 ( 22.00000000)
_PCOPIES Pub N 1 ( 1.00000000)
_PDRIVER Pub C ""
_PDSETUP Pub C ""
_PECODE Pub C ""
_PEJECT Pub C "NONE"
_PEPAGE Pub N 32767 ( 32767.00000000)
_PLENGTH Pub N 66 ( 66.00000000)
_PLINENO Pub N 16 ( 16.00000000)
_PLOFFSET Pub N 0 ( 0.00000000)
_PPITCH Pub C "DEFAULT"
_PQUALITY Pub L .F.
_PRETEXT Pub C ""
_PSCODE Pub C ""
_PSPACING Pub N 1 ( 1.00000000)
_PWAIT Pub L .F.
_REPORTBUILDERPub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\REPORTBUILDER.APP"
_REPORTOUTPUTPub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\REPORTOUTPUT.APP"
_REPORTPREVIEWPub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\REPORTPREVIEW.APP"
_RMARGIN Pub N 80 ( 80.00000000)
_RUNACTIVEDOCPub C ""
_SAMPLES Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\SAMPLES\"
_SCCTEXT Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\SCCTEXT.PRG"
_SCREEN Pub O FORM
_SHELL Pub C ""
_SPELLCHK Pub C ""
_STARTUP Pub C "D:\FOXNET\STARTUP.PRG"
_TABS Pub C ""
_TALLY Pub N 1 ( 1.00000000)
_TASKLIST Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TASKLIST.APP"
_TASKPANE Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TASKPANE.APP"
_TEXT Pub N -1 ( -1.00000000)
_THROTTLE Pub N 0.00 ( 0.00000000)
_TOOLBOX Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLBOX.APP"
_TOOLTIPTIMEOUTPub N 0 ( 0.00000000)
_TRANSPORT Pub C ""
_TRIGGERLEVELPub N 0 ( 0.00000000)
_UNIX Pub L .F.
_VFP Pub O MICROSOFT VISUAL FOXPRO APPLICATION 9.0
_WINDOWS Pub L .T.
_WIZARD Pub C "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\WIZARD.APP"
_WRAP Pub L .F. 90 System Variables Defined

Menu and Pad Definitions 0 Menus Defined

Popup Definitions

_VFP9TOOLS 1756 bytes 1 Popup Defined

Window Definitions

Name From To Size
AWADAPTER 0.000,0.000 36.063,94.222 1853932 bytes
ATTHERMO 14.063,13.333 20.250,80.000 240768 bytes 2 Windows Defined

Set("Path")
====================
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\FFC\
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLS\
C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLS\AB\
C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\


Set("Procedure")
====================
AB.FXP
ABARRAY.FXP
ABDATA.FXP
ABDATE.FXP
ABDEV.FXP
ABFILE.FXP
ABGA.FXP
ABOFFICE.FXP
ABOOP.FXP
ABTXT.FXP
AC.FXP
ACDATA.FXP
ACGA.FXP
ACOOP.FXP
ACTXT.FXP
AWGA.FXP
AWOOP.FXP
AWOOPMENU.FXP
AWPUBLIC.FXP
AWTXT.FXP
WWAPI.FXP
WWCONFIG.FXP
WWHTTP.FXP
WWUTILS.FXP


Set("Classlib")
====================
"C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLS\AB\AW.VCX" ALIAS AW
"C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AT\AT.VCX" IN "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP" ALIAS AT
"C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPTER.VCX" ALIAS AWADAPTER
"C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WEBSERVER.VCX" ALIAS WEBSERVER
"C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WWIPSTUFF.VCX" IN "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP" ALIAS WWIPSTUFF
"C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WWXML.VCX" IN "C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP" ALIAS WWXML


Display status
====================

Processor is Pentium
Currently Selected Table:
Select area: 8, Table in Use: D:\TEST\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\COMMON\CLASSES\CMODECLS.VCX Alias: CMODECLS
Code page: 1252
Memo file: D:\TEST\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\COMMON\CLASSES\CMODECLS.VCT
Lock(s): <none>

Select area: 6, Table in Use: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_ADAPT.DBF Alias: ADAPT
Code page: 1252
Structural CDX file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_ADAPT.CDX
Index tag: ADAPTCK Collate: Machine Key: STR(MODULE)+STR(ILINE)+STR(AWADAPT) Candidate
Index tag: MODULE Collate: Machine Key: MODULE
Index tag: AWADAPT Collate: Machine Key: AWADAPT
Index tag: ILINE Collate: Machine Key: ILINE
Index tag: LIGNORED Collate: Machine Key: LIGNORED
Index tag: LVIEWED Collate: Machine Key: LVIEWED
Index tag: TVIEWED Collate: Machine Key: TVIEWED
Index tag: LFIXED Collate: Machine Key: LFIXED
Index tag: TFIXED Collate: Machine Key: TFIXED
Index tag: DELETD Collate: Machine Key: DELETED()
Memo file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_ADAPT.FPT
Lock(s): <none>

Select area: 5, Table in Use: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_MODULE.DBF Alias: MODULE
Code page: 1252
Structural CDX file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_MODULE.CDX
Index tag: MODULE Collate: Machine Key: MODULE Candidate
Index tag: CLASSMOD Collate: Machine Key: PADR(STR(FILEDIR)+UPPER(TRIM(CNAME))+"_"+UPPER(TRIM(CCLASS))+"_"+UPPER(TRIM(COLECLASS))+"_"+UPPER(TRIM(CMODULE))+"_"+UPPER(TRIM(CPCNAME))+"_"+UPPER(TRIM(CPARCLASS)),200) Candidate For: .NOT.DELETED()
Index tag: FILEDIR Collate: Machine Key: FILEDIR
Index tag: CNAME Collate: Machine Key: UPPER(CNAME)
Index tag: CCLASS Collate: Machine Key: UPPER(CCLASS)
Index tag: CCLASS_ Collate: Machine Key: UPPER(CCLASS_)
Index tag: CPARENT Collate: Machine Key: UPPER(CPARENT)
Index tag: CPCNAME Collate: Machine Key: UPPER(CPCNAME)
Index tag: CPARCLASS Collate: Machine Key: UPPER(CPARCLASS)
Index tag: CBASECLASS Collate: Machine Key: UPPER(CBASECLASS)
Index tag: COLECLASS Collate: Machine Key: UPPER(COLECLASS)
Index tag: CMODULE Collate: Machine Key: UPPER(CMODULE)
Index tag: CFILEBC Collate: Machine Key: PADR(CAST(FILEDIR AS M)+LOWER(CBASECLASS),50)
Index tag: LCLASS Collate: Machine Key: LCLASS
Index tag: LBASECLASS Collate: Machine Key: LBASECLASS
Index tag: LMODULE Collate: Machine Key: LMODULE
Index tag: LIGNORED Collate: Machine Key: LIGNORED
Index tag: LEVENT Collate: Machine Key: LEVENT
Index tag: NANALYSECS Collate: Machine Key: NANALYSECS
Index tag: NINST Collate: Machine Key: NINST
Index tag: NADAPT Collate: Machine Key: NADAPT
Index tag: NADAPTMAN Collate: Machine Key: NADAPTMAN
Index tag: DELETD Collate: Machine Key: DELETED()
Memo file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST_MODULE.FPT
Lock(s): <none>

Select area: 4, Table in Use: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST.DBF Alias: FILEDIR
Code page: 1252
Structural CDX file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST.CDX
Index tag: FILEDIR Collate: Machine Key: FILEDIR Candidate
Index tag: FILECK Collate: Machine Key: PADR(UPPER(RTRIM(MADDR)),200) Candidate
Index tag: CNAME Collate: Machine Key: CNAME
Index tag: CSTEM Collate: Machine Key: CSTEM
Index tag: CEXT Collate: Machine Key: CEXT
Index tag: NBYTES Collate: Machine Key: NBYTES
Index tag: TMOD Collate: Machine Key: TMOD
Index tag: TDIR Collate: Machine Key: TDIR
Index tag: DELETD Collate: Machine Key: DELETED()
Index tag: NADAPT Collate: Machine Key: NADAPT
Index tag: TANALYSE Collate: Machine Key: TANALYSE
Index tag: TADAPT Collate: Machine Key: TADAPT
Index tag: LCLASSCODE Collate: Machine Key: LCLASSCODE
Index tag: LSRCECODE Collate: Machine Key: LSRCECODE
Index tag: LEXCLUDED Collate: Machine Key: LEXCLUDED
Index tag: LTRDPARTY Collate: Machine Key: LTRDPARTY
Index tag: LIGNORED Collate: Machine Key: LIGNORED
Index tag: LMODIFIED Collate: Machine Key: LMODIFIED
Index tag: LCODEPAGE Collate: Machine Key: LCODEPAGE
Memo file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARS.PJX-AWADAPTER-TEST.FPT
Lock(s): 5
Filter: Filedir.LSRCECODE

Select area: 10, Table in Use: D:\FOXTEMP\0000FKLL0020.TMP Alias: AWADAPTPJ
Code page: 1252
Structural CDX file: D:\FOXTEMP\0000FKLL0020.CDX
Master Index tag: CFILE Collate: Machine Key: UPPER(CFILE)
Index tag: CEXT Collate: Machine Key: CEXT
Index tag: CCLASS Collate: Machine Key: UPPER(CCLASS)
Index tag: CCLASS_ Collate: Machine Key: UPPER(CCLASS_)
Index tag: CBASECLASS Collate: Machine Key: UPPER(CBASECLASS)
Index tag: CMODULE Collate: Machine Key: UPPER(CMODULE)
Index tag: NINST Collate: Machine Key: NINST
Index tag: NADAPT Collate: Machine Key: NADAPT
Index tag: NADAPTMAN Collate: Machine Key: NADAPTMAN
Index tag: AWADAPT Collate: Machine Key: AWADAPT
Index tag: CADAPT Collate: Machine Key: CADAPT
Index tag: CADAPTTYPE Collate: Machine Key: CADAPTTYPE
Index tag: LIGNORED Collate: Machine Key: LIGNORED
Index tag: LEXCLUDED Collate: Machine Key: LEXCLUDED
Index tag: LTRDPARTY Collate: Machine Key: LTRDPARTY
Index tag: TVIEWED_E Collate: Machine Key: EMPTY(TVIEWED)
Index tag: TFIXED_E Collate: Machine Key: EMPTY(TFIXED)
Index tag: _DELETED Collate: Machine Key: DELETED()
Index tag: _RECNO Collate: Machine Key: RECNO()
Memo file: D:\FOXTEMP\0000FKLL0021.TMP
Lock(s): Exclusive USE
Filter: NADAPT>0

Select area: 11, Table in Use: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWBCEVENT.DBF (Readonly) Alias: AWBCEVENT
Code page: 1252
Structural CDX file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWBCEVENT.CDX
Index tag: AWBCEVENT Collate: Machine Key: PADR(TRIM(BASECLASS)+"."+TRIM(VFPEVENT),50) Candidate
Index tag: BCDOMEVT1 Collate: Machine Key: PADR(CWORDS(".",ALLTRIM(BASECLASS),ALLTRIM(GETWORDNUM(ALLTRIM(LOWER(DOMEVENT)),1,",")),ALLTRIM(GETWORDNUM(" "+ALLTRIM(CONDITION),1,","))),50)
Index tag: BCDOMEVT2 Collate: Machine Key: PADR(CWORDS(".",ALLTRIM(BASECLASS),ALLTRIM(GETWORDNUM(ALLTRIM(LOWER(DOMEVENT)),2,",")),ALLTRIM(GETWORDNUM(" "+ALLTRIM(CONDITION),2,","))),50)
Index tag: BASECLASS Collate: Machine Key: BASECLASS
Index tag: VFPEVENT Collate: Machine Key: VFPEVENT
Index tag: DOMEVENT Collate: Machine Key: DOMEVENT
Index tag: AWADAPT Collate: Machine Key: AWADAPT
Memo file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWBCEVENT.FPT
Lock(s): <none>

Select area: 12, Table in Use: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARSAWADAPT-TIME.DBF Alias: AWADAPTTIME
Code page: 1252
Structural CDX file: D:\DEVSPACE\DEVSPACE\LOCAL PROJECTS\CARS\2_69_0\CARSAWADAPT-TIME.CDX
Index tag: AWADAPT Collate: Machine Key: AWADAPT Candidate
Lock(s): <none>

Select area: 7, Table in Use: D:\FOXTEMP\0000FKLL0012.TMP Alias: MHINT
Code page: 1252
Structural CDX file: D:\FOXTEMP\0000FKLL0012.CDX
Master Index tag: AWADAPT Collate: Machine Key: AWADAPT Candidate
Memo file: D:\FOXTEMP\0000FKLL0013.TMP
Lock(s): Exclusive USE

Select area: 3, Table in Use: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\_SOURCE\AWROADMAP.DBF (Readonly) Alias: AWROADMAP
Code page: 1252
Structural CDX file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\_SOURCE\AWROADMAP.CDX
Index tag: AWROADMAP Collate: Machine Key: AWROADMAP Candidate For: .NOT.EMPTY(awroadmap)
Index tag: AWADAPT Collate: Machine Key: AWADAPT
Index tag: VERSION Collate: Machine Key: VERSION
Index tag: DISPLAY Collate: Machine Key: STR(FICORDER)+STR(IORDER,3)+STR(EVL(DDONE-DATE(100,1,1),9999999999))
Memo file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\_SOURCE\AWROADMAP.FPT
Lock(s): <none>

Select area: 2, Table in Use: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPTTYPE.DBF (Readonly) Alias: AWADAPTTYPE
Code page: 1252
Structural CDX file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPTTYPE.CDX
Index tag: CTYPE Collate: Machine Key: CTYPE Candidate
Index tag: DELETD Collate: Machine Key: DELETED()
Lock(s): <none>

Select area: 1, Table in Use: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPT.DBF (Readonly) Alias: AWADAPT
Code page: 1252
Structural CDX file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPT.CDX
Index tag: AWADAPT Collate: Machine Key: AWADAPT Candidate
Index tag: DELETD Collate: Machine Key: DELETED()
Memo file: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPT.FPT
Lock(s): <none>

Procedure file: AB.FXP, ABARRAY.FXP, ABDATA.FXP, ABDATE.FXP, ABDEV.FXP, ABFILE.FXP, ABGA.FXP, ABOFFICE.FXP, ABOOP.FXP, ABTXT.FXP, AWPUBLIC.FXP, AC.FXP, ACDATA.FXP, ACGA.FXP, ACOOP.FXP, ACTXT.FXP, WWHTTP.FXP, WWCONFIG.FXP, WWAPI.FXP, WWUTILS.FXP, AWOOP.FXP, AWTXT.FXP, AWOOPMENU.FXP, AWGA.FXP
Class libraries: C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AT\AT.VCX IN C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP ALIAS AT, C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WWXML.VCX IN C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP ALIAS WWXML, C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WWIPSTUFF.VCX IN C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\AWADAPTER.APP ALIAS WWIPSTUFF, C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\WC\CLASSES\WEBSERVER.VCX ALIAS WEBSERVER, C:\USERS\NCSMXP\APPDATA\PROGRAM FILES\VFP9\TOOLS\AB\AW\AWADAPTER.VCX ALIAS AWADAPTER, C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLS\AB\AW.VCX ALIAS AW
File search path: C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\TOOLS\AB\;C:\USERS\NCSMXP\APPDATA\ROAMING\MICROSOFT\VISUAL FOXPRO 9\AB\AW\;C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\;C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\FFC\;C:\PROGRAM FILES (X86)\M...
Default directory: \\HOMENCSMEL\NCSMXP$\DATA
Print file/device:
Work area = 8
Margin = 0
Decimals = 2
Memowidth = 50
Typeahead = 20
Blocksize = 64
Reprocess = Automatic
Refresh = 0, 5.000 SECONDS
DDE Timeout = 2000
DDE Safety = on

Code page: 1252
Collating sequence: Machine
Compiler code page: 1252
Date format: American
Macro Hot Key =
UDF parameters are passed by: VALUE
On Error: DO awAdapter_error WITH Error(), Message()
ON KEY LABEL hot keys:
F2 KEYBOARD 'set default d:\app\cars\temp' + CHR(13)
F4 KEYBOARD 'set path i:\app\cars\new\data;i:\app\cars\data;g:\cars\common\app;d:\app\cars\new\security;q:\programs\shared\cars\classes' + CHR(13)
F5 KEYBOARD 'set default j:\carsdev\mp\new' + CHR(13)
F7 SUSPEND
F9 DO d:\foxnet\clear.prg
F11 KEYBOARD "set default 'd:\devspace\devspace\local projects\cars\2_69_0'" + CHR(13)
F3 KEYBOARD 'set path d:\app\cars\new\security' + CHR(13)
F12 KEYBOARD 'set path q:\data' + CHR(13)
Textmerge Options
Delimiters: Left = < Right = >
Show

Alternate - off Brstatus - off Compatible - off Device - scrn Fields - off Intensity - on Near - off Safety - off Textmerge - off
ANSI - on Carry - off Confirm - off Echo - off Fixed - off Lock - off Null - off Space - on Title - off
Asserts - off Century - on Console - off Escape - on Fullpath - on Logerrors - on Optimize - on Status Bar - on Unique - off
Bell - on Clear - on Cursor - on Exact - on Heading - on Mouse - on Print - off Sysmenus - on
Blink - on Color - on Deleted - off Exclusive - off Help - on Multilocks - off Readborder - off Talk - off

API library Instance Handle
c:\...\foxtools.fll 268435456

Function Address
INITIALIZE 1000271F Call on load.
UNINITALIZE 10002FAB Call on unload.
MSGBOX 10005951
REGFN 10002F4E
REGFN32 10002F86
CALLFN 10002766
MKDIR 10005659
RMDIR 100056B6
GETPROSTRG 10005739
PUTPROSTRG 1000587C
FOXTOUCH 100054E4
RGBCOMP 10005DB3
VALIDPATH 10004F29
CLEANPATH 10005013
REDUCE 10005074
STRFILTER 100051AA
WORDS 10005279
WORDNUM 10005335
NEXTWORD 10005409
_EDSETPOS 1000379B
_EDSKIPLIN 100037A9
_EDGETPOS 100037C1
_EDGETLPOS 100037D7
_EDGETLNUM 100037EE
_EDPOSINVI 10003805
_EDSTOPOS 10003817
_EDSTOSEL 10003828
_EDINSERT 10003838
_EDSENDKEY 1000388B
_EDDELETE 10003899
_EDGETCHAR 100038A6
_EDGETSTR 100038C6
_EDINDENT 10003949
_EDCOMMENT 10003957
_EDSELECT 10003965
_EDCOPY 10003974
_EDCUT 1000397E
_EDPASTE 10003989
_EDUNDO 10003994
_EDREDO 1000399F
_EDUNDOON 100039AA
_EDACTIVE 100039B5
_EDLASTERR 100039C0
_EDSETENV 100039D2
_EDGETENV 10003EC8
_EDOPENFIL 100042D2
_EDCLOSEFI 1000432C
_EDREVERT 10004341
_EDPROPERTIES 1000434B
_EDPROCLIST 10004358
GETCLIPDAT 100030AF
GETCLIPFMT 100030DE
ISCLIPFMT 10003122
ENUMCLIPFM 10003132
REGCLIPFMT 10003145
SETCLIPDAT 1000315E
EMPTYCLIP 1000306A
COUNTCLIPF 10003077
OPENCLIP 10003112
CLOSECLIP 10003087
MAINHWND 10003094
_WSOCKSTARTUP 10005B3F
_WSOCKCLEANUP 10005D48
_WSOCKGETHOSTBYADDR 10005CAC
_GETWRECT 10005E4D
_WHTOHWND 10005ED5
_WFINDTITL 10005EE7
_WMAINWIND 10005F40
_FINDWINDO 10005F65
_FINDWINDP 10005FA8
_WONTOP 10005F54
_WOPEN 10005FEA
_WSCROLL 10006138
_WOPENP 10006091
_WSCROLLP 10006181
_WCLOSE 100061CA
_WHIDE 100061D5
_WSHOW 100061E0
_WZOOM 100061EB
_WSELECT 100061F6
_WSENDBEHI 10006201
_WGETPORT 1000620C
_WSETPORT 1000621E
_WMOVE 10006235
_WSIZE 1000624A
_WMOVEP 10006260
_WSIZEP 10006275
_WTOP 1000628B
_WBOTTOM 100062B7
_WLEFT 100062E4
_WRIGHT 10006312
_WHEIGHT 10006340
_WWIDTH 1000636E
_WTOPP 100062A1
_WBOTTOMP 100062CD
_WLEFTP 100062FB
_WRIGHTP 10006329
_WHEIGHTP 10006357
_WWIDTHP 10006385
_WCLEAR 1000644E
_WCLEARREC 10006458
_WCLEARREP 10006499
_WPOSCURSO 100064DA
_WPOSCURP 100064F0
_WGETCURSO 10006506
_WGETCURP 10006550
_WATTR 10006599
_WSETATTR 100065AE
_WPUTCHR 100065BD
_WPUTSTR 100065C8
_WSETTITLE 100063FC
_WTITLE 1000639C
_WFOOTER 100063C9
GETFILEVERSION 10006618
FOXTOOLVER 10005AAA


Declared DLLs:
GdiSetBatchLimit C:\Windows\syswow64\GDI32.dll
GetKeyState c:\windows\system32\user32.dll
GetLastError C:\Windows\syswow64\kernel32.dll
GetTimeZoneInformation C:\Windows\syswow64\kernel32.dll
GetUserDefaultUILanguage C:\Windows\syswow64\kernel32.dll
HttpOpenRequest c:\windows\system32\wininet.dll
HttpQueryInfo c:\windows\system32\wininet.dll
HttpSendRequest c:\windows\system32\wininet.dll
InternetCloseHandle c:\windows\system32\wininet.dll
InternetConnect c:\windows\system32\wininet.dll
InternetOpen c:\windows\system32\wininet.dll
InternetReadFile c:\windows\system32\wininet.dll
InternetSetOption c:\windows\system32\wininet.dll
ShellExecute c:\windows\system32\shell32.dll
SHGetSpecialFolderPath c:\windows\system32\shell32.dll


Hi Martin,

Thanks for providing your code sample -- strangely enough we ran a successful unit test of acRegExpBlock against this code sample! No infinite loop at all ...

However we did find a bug that made the module deliver a wrong result in this case, and found a more simple algorithm with less logical structures and variables -- useful refactoring.

Please let FAA auto-update by restarting it and post back your feedback.

I wish you a nice day


Hi Thierry,

Thanks again for your prompt response.

I have proceeded as you suggested and I think I have determined the code where the infinite loop occurs. I have attached this code at the end of this message.

Based on the information you provided regarding nested WITH statements, I removed all WITH/ENDWITH constructs from this code and retried FAA and this time I got to 40% before FAA "hung" again.

This would seem to confirm that WITH statements may be the root cause of the issue.

Please let me know if you need anything further from me to assess the problem.

Thanks and regards,

Martin




Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  FoxInCloud Support - Thierry N.
  Martin
  Feb 10, 2016 @ 01:27am
Hi Martin,

Thanks again for your precious cooperation; helps us solve case that happen in some specific *.?cx, and that we can't reproduce or even envision from here.

Here is what happened:
as the method code passed to acRegExpBlock has been truncated upfront, acRegExpBlock finds a WITH ... ENDWITH block mismatch on the last occurrence (WITH w/o ENDWITH), causing the block count to be set to 0, hence the 'index out of range' error.

What would be great is that you send to <support at foxincloud.com> the "D:\Test\devspace\devspace\local projects\cars\2_69_0\COMMON\CLASSES\cmodecls.vc?" files.

In case you have sensitive code in this library, you can just do before sending the vcx/vct:

use ...\cmodecls.vcx exclusive
delete for not lower(objname) == lower('cFormMode')
pack
use

You can also blank out any field except 'methods' which is the only field we're looking at

Meanwhile, we've added some defensive tests that will raise an error on screen and in the log in case of WITH ... ENDWITH commands mismatch

Just restart FAA, this issue should no longer block your analysis.

HTH,

Hi Thierry,

As requested, the code from the SaveAction method of the cfrmMode class is attached below.

In this method there are 4 WITH statements and 4 ENDWITH statements.

Thank you once again. Your assistance is very much appreciated.

Martin


-- thn (FoxInCloud)

Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  Martin
  Thierry Nivelet (FoxInCloud)
  Feb 14, 2016 @ 01:10pm
Hi Thierry,

As requested I have sent the "D:\Test\devspace\devspace\local projects\cars\2_69_0\COMMON\CLASSES\cmodecls.vc?" files to support@foxincloud.com.

As you predicted the issue no longer halts the analysis.

I did receive another error at 61% (refer below image) which I ignored and the analysis then completed successfully.

Thanks and regards

Martin


Hi Martin,

Thanks again for your precious cooperation; helps us solve case that happen in some specific *.?cx, and that we can't reproduce or even envision from here.

Here is what happened:
as the method code passed to acRegExpBlock has been truncated upfront, acRegExpBlock finds a WITH ... ENDWITH block mismatch on the last occurrence (WITH w/o ENDWITH), causing the block count to be set to 0, hence the 'index out of range' error.

What would be great is that you send to <support at foxincloud.com> the "D:\Test\devspace\devspace\local projects\cars\2_69_0\COMMON\CLASSES\cmodecls.vc?" files.

In case you have sensitive code in this library, you can just do before sending the vcx/vct:

use ...\cmodecls.vcx exclusive
delete for not lower(objname) == lower('cFormMode')
pack
use

You can also blank out any field except 'methods' which is the only field we're looking at

Meanwhile, we've added some defensive tests that will raise an error on screen and in the log in case of WITH ... ENDWITH commands mismatch

Just restart FAA, this issue should no longer block your analysis.

HTH,

Hi Thierry,

As requested, the code from the SaveAction method of the cfrmMode class is attached below.

In this method there are 4 WITH statements and 4 ENDWITH statements.

Thank you once again. Your assistance is very much appreciated.

Martin


Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  FoxInCloud Support - Thierry N.
  Martin
  Feb 14, 2016 @ 10:51pm
Hi Martin,

Glad you could complete your analysis (after 4 hours processing without error ... given the program's complexity, that's noticeable).

The issue that no longer occurs has a very marginal influence on the analysis result: at this stage, 'acRegExpBlock' detects whether your code adds members to the form at run time, which requires some automatic adaptation; does not affect the manual adaptations count and estimated effort.

The 'error' you get at 61% is in fact an OLEcontrol using a non-registered OLEclass;
based on your naming, probably an Adobe Acrobat control that no longer works with the latest version: Adobe has dropped support for embedded PDF display activeX using free Acrobat Reader recently; not sure they even support it with full licensed version. You'd get the exact same message when opening this class in the class designer:

modify class OLEadobe of carsrpt.vcx

Do feel free to provide additional feedback!


Hi Thierry,

As requested I have sent the "D:\Test\devspace\devspace\local projects\cars\2_69_0\COMMON\CLASSES\cmodecls.vc?" files to support@foxincloud.com.

As you predicted the issue no longer halts the analysis.

I did receive another error at 61% (refer below image) which I ignored and the analysis then completed successfully.

Thanks and regards

Martin


Hi Martin,

Thanks again for your precious cooperation; helps us solve case that happen in some specific *.?cx, and that we can't reproduce or even envision from here.

Here is what happened:
as the method code passed to acRegExpBlock has been truncated upfront, acRegExpBlock finds a WITH ... ENDWITH block mismatch on the last occurrence (WITH w/o ENDWITH), causing the block count to be set to 0, hence the 'index out of range' error.

What would be great is that you send to <support at foxincloud.com> the "D:\Test\devspace\devspace\local projects\cars\2_69_0\COMMON\CLASSES\cmodecls.vc?" files.

In case you have sensitive code in this library, you can just do before sending the vcx/vct:

use ...\cmodecls.vcx exclusive
delete for not lower(objname) == lower('cFormMode')
pack
use

You can also blank out any field except 'methods' which is the only field we're looking at

Meanwhile, we've added some defensive tests that will raise an error on screen and in the log in case of WITH ... ENDWITH commands mismatch

Just restart FAA, this issue should no longer block your analysis.

HTH,

Hi Thierry,

As requested, the code from the SaveAction method of the cfrmMode class is attached below.

In this method there are 4 WITH statements and 4 ENDWITH statements.

Thank you once again. Your assistance is very much appreciated.

Martin




-- thn (FoxInCloud)

Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  FoxInCloud Support - Thierry N.
  Martin
  Feb 15, 2016 @ 04:09am
Hi Thierry,
As requested I have sent the "D:\Test\devspace\devspace\local projects\cars\2_69_0\COMMON\CLASSES\cmodecls.vc?" files to support@foxincloud.com.

Thanks, we could pinpoint and solve the issue.
Updated version will correctly identify procedures, even if an instruction starts with 'proc' not meant to be a 'procedure' key word.

Cheers

Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  Martin
  Thierry Nivelet (FoxInCloud)
  Feb 17, 2016 @ 05:36pm
H i Thierry,

Thanks to your always patient and kind assistance I have now successfully analyzed my project and posted the results on your web site.

Now, boldly on to step 2, Adaptation !

I successfully ran the Adaptation step and upon completion it was recommended that I ensure that my application continues to work as expected from the desktop.

So, I went to the copy of the project created by FAA and tried to build it.

The project didn't build successfully.
The errors determined are as follows:

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\security.vcx
SELECT Proc.ProcessId,
Error in line 41 of cfrmprocessgrp.cmdAdd.Click (record 107): Command is missing required clause.
Proc.Description FROM (m.lcProcesstable) AS Proc WHERE Proc.ProcessId NOT IN (SELECT w_process.ProcessId FROM w_process) INTO CURSOR w_ProcSrch NOFILTER READWRITE
Error in line 45 of cfrmprocessgrp.cmdAdd.Click (record 107): Syntax error.

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\cars\classes\instructionsmidtier.vcx
wWAIT(ALLTRIM(w_aspinfo.address) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 28 of cfrmaspmessenger.grdAspReport.grcOutTo.txtOutTo.RightClick (record 537): Function name is missing ).
wWAIT(ALLTRIM(lcString) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 43 of cfrmaspmessenger.grdAspReport.grcKeyRef.txtKeyRef.RightClick (record 539): Function name is missing ).

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\capplic.vcx
IF UPPER(wMenu(Textmerge("IF UPPER(PRMPAD('_msysmenu', wMenu(Textmerge("GETPAD('_msysmenu', )", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)
Error in line 1289 of capplication.hasmenupad (record 2): Function name is missing ).

Compiling c:\program files (x86)\microsoft visual foxpro 9\tools\ab\ab.prg
#INCLUDE ffc\GDIplus.H
Error in line 10: File does not exist.

Compiling c:\program files (x86)\microsoft visual foxpro 9\tools\ab\abdev.prg
#INCLUDE ffc\GDIplus.H
Error in line 10: File does not exist.

Compiling c:\program files (x86)\microsoft visual foxpro 9\tools\ab\abarray.prg
#INCLUDE ffc\GDIplus.H
Error in line 10: File does not exist.

Compiling c:\program files (x86)\microsoft visual foxpro 9\tools\ab\abdata.prg
#INCLUDE ffc\GDIplus.H
Error in line 10: File does not exist.

Compiling c:\program files (x86)\microsoft visual foxpro 9\tools\ab\abdate.prg
#INCLUDE ffc\GDIplus.H
Error in line 10: File does not exist.

Compiling c:\program files (x86)\microsoft visual foxpro 9\tools\ab\abfile.prg
#INCLUDE ffc\GDIplus.H
Error in line 10: File does not exist.

Compiling c:\program files (x86)\microsoft visual foxpro 9\tools\ab\aboffice.prg
#INCLUDE ffc\GDIplus.H
Error in line 10: File does not exist.

Compiling c:\program files (x86)\microsoft visual foxpro 9\tools\ab\aboop.prg
#INCLUDE ffc\GDIplus.H
Error in line 10: File does not exist.

Compiling c:\program files (x86)\microsoft visual foxpro 9\tools\ab\abtxt.prg
#INCLUDE ffc\GDIplus.H
Error in line 10: File does not exist.

Compiling c:\program files (x86)\microsoft visual foxpro 9\tools\ab\awpublic.prg
#INCLUDE ffc\GDIplus.H
Error in line 10: File does not exist.

Program c:\program files (x86)\microsoft visual foxpro 9\tools\ab\ab.prg has the following errors:
Visual Class Library _GDIPLUS - Undefined


I looked at the first build error listed and it appears that the Adaptation process has inserted a blank line into a SQL SELECT statement.

Current Code:

****************************************************************************************
*$METHOD$ cmdAdd.Click
*$CREATED$ 01/09/2008
*
*$PURPOSE$
* Processes to be performed when the "Add process" buton has been clicked
*$PURPOSE$
*
*$PARAMETERS$
*$PARAMETERS$
*
*$TIPS$
*$TIPS$
*
*$EXAMPLE$
*$EXAMPLE$
*
*$VARIABLES$
* lnSelect - Holds the work-area which was selected on entry to this function. The
* variable is used to restore the work-area immediately prior to exiting
* this function.
*
* llReturn - Holds the return value for the function. Indicates success or failure
* of the function.
* lcProcesstable - holds the alias of the process table
* lcSearchKey - holds the value of the serached expression
* lcNewProcessId - holds the id of the selected process
* loProc - reference to the process finder object
*$VARIABLES$
*
*$RETURNS$
* llReturn - .T. if function successful. | .F. if function failed.
*$RETURNS$
*
*$HISTORY$
*$HISTORY$
****************************************************************************************

LOCAL lnSelect, llReturn, lcProcesstable, lcSearchKey, lcNewProcessId, loProc AS Object

STORE 0 TO lnSelect
STORE .NULL. TO loProc
STORE .T. TO llReturn
STORE "" TO lcProcesstable, lcSearchKey, lcNewProcessId

*-- Save current alias.
lnSelect = SELECT()

WITH thisform.ocomplex
*-- Store the current value of the SearchKey property of the complex class as this will be changed by the process finder
lcSearchKey = .cSearchKey

lcProcesstable = .obusMiddleTier.ctblProcess
ENDWITH

*-- Create a cursor to store and display a list of existing Process Groups
SELECT Proc.ProcessId, ;
Proc.Description ;
FROM (m.lcProcesstable) AS Proc ;
WHERE Proc.ProcessId NOT IN (SELECT w_process.ProcessId FROM w_process) ;
INTO CURSOR w_ProcSrch NOFILTER READWRITE

INDEX ON ProcessId TAG PrimaryKey
INDEX ON UPPER(Description) TAG Descript

*-- Create an object reference to the Process Finder Form
loProc = CREATEOBJECT("cfrmProcExInfinder", .F., thisform.ocomplex.obusMiddleTier, thisform.ocomplex)

*-- Display the Process Finder Form.
IF VARTYPE(m.loProc) = "O"
m.loProc.SHOW()
ELSE
llReturn = .F.
ENDIF

WITH thisform.ocomplex
*-- the process id of the selected process is now stored in thisform.ocomplex.cSearchKey
* will store it into a variable and will set back the property of the complex class
lcNewProcessId = .cSearchKey

*-- Restore the original value of the SearchKey property of the complex class
.cSearchKey = lcSearchKey
ENDWITH

*-- If a new process was selected via the finder form add it. If the user chose
*-- to cancel from the finder form then there is no need to proceed any further.

IF NOT EMPTY(m.lcNewProcessId)

*-- get the description of the New process
SELECT (m.lcProcesstable)
LOCATE FOR EVALUATE(m.lcProcesstable + ".ProcessId") = m.lcNewProcessId
IF FOUND()
lcDescription = EVALUATE(m.lcProcesstable + ".Description")
ELSE
llReturn = .F.
ENDIF

*-- update the entity cursor too
INSERT INTO ("w_Process")(;
ProcessId, ;
Description, ;
ProcGrpId) ;
VALUES ( ;
m.lcNewProcessId, ;
m.lcDescription, ;
w_procgrp.ProcGrpId)

ENDIF

GO TOP IN w_process

*-- Restore previously saved alias.
SELECT(m.lnSelect)

*-- call the refresh method of the form
Thisform.RefreshCode()

RETURN m.llReturn


Adapted Code:

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.21.0-beta.9 (copy mode) on 02/17/2016 04:37:50 PM

#if .f. && {en} ========= IMPLEMENTATION DOCUMENTATION ========== {en}

Value returned indicates to FoxInCloud Application Server how browser should handle this event:
RETURN .T. && EXECUTE THIS VFP EVENT CODE on FoxInCloud server
RETURN <JavaScript code> && EXECUTE THIS JAVASCRIPT CODE (run in browser only, don't notify the FoxInCloud server automatically)
RETURN .F. && IGNORE EVENT

For more details and options, see code inherited from aw*

#endif && {en} ======= / IMPLEMENTATION DOCUMENTATION ========== {en}


RETURN .T. && Process event on server (your code after this IF ... ENDIF block)

ENDIF && Added by FoxInCloud Adaptation Assistant version 2.21.0-beta.9 (copy mode) on 02/17/2016 04:37:50 PM

LOCAL lnSelect, llReturn, lcProcesstable, lcSearchKey, lcNewProcessId, loProc AS Object

STORE 0 TO lnSelect
STORE .NULL. TO loProc
STORE .T. TO llReturn
STORE "" TO lcProcesstable, lcSearchKey, lcNewProcessId

*-- Save current alias.
lnSelect = SELECT()

WITH thisform.ocomplex
*-- Store the current value of the SearchKey property of the complex class as this will be changed by the process finder
lcSearchKey = .cSearchKey

lcProcesstable = .obusMiddleTier.ctblProcess
ENDWITH

*-- Create a cursor to store and display a list of existing Process Groups
SELECT Proc.ProcessId, ;

Proc.Description ;
FROM (m.lcProcesstable) AS Proc ;
WHERE Proc.ProcessId NOT IN (SELECT w_process.ProcessId FROM w_process) ;
INTO CURSOR w_ProcSrch NOFILTER READWRITE

INDEX ON ProcessId TAG PrimaryKey
INDEX ON UPPER(Description) TAG Descript

A couple of things to note from the above:

1. The existing comment block at the start of the method has been removed by the Adaptation process.
2. A blank line has been inserted into a multi-line SQL statement causing the first build error listed above.


In regard to the second build error:

Current Code:

********************************************************************
*$METHOD$ rightClick()
*
*$HISTORY$
* 17/05/2005 JG - Changed to display the address in an easier way.
*$HISTORY$
********************************************************************

IF DODEFAULT()
IF w_aspinfo.dest = "P"
WAIT ALLTRIM(w_aspinfo.address) WINDOW AT MROW(""),MCOL("")
ENDIF
ENDIF

RETURN


Adapted Code:

LPARAMETERS Useless_Parm && Implementation documentation: see code inherited from aw.vcx!aw???.Rightclick() (click 'View Parent Code')

IF (Type('m.thisForm.wlHTMLgen') == 'L' AND m.thisForm.wlHTMLgen) && Added by FoxInCloud Adaptation Assistant version 2.21.0-beta.9 (copy mode) on 02/17/2016 09:20:07 PM

#if .f. && {en} ========= IMPLEMENTATION DOCUMENTATION ========== {en}

Value returned indicates to FoxInCloud Application Server how browser should handle this event:
RETURN .T. && EXECUTE THIS VFP EVENT CODE on FoxInCloud server
RETURN <JavaScript code> && EXECUTE THIS JAVASCRIPT CODE (run in browser only, don't notify the FoxInCloud server automatically)
RETURN .F. && IGNORE EVENT

For more details and options, see code inherited from aw*

#endif && {en} ======= / IMPLEMENTATION DOCUMENTATION ========== {en}


RETURN .T. && Process event on server (your code after this IF ... ENDIF block)

ENDIF && Added by FoxInCloud Adaptation Assistant version 2.21.0-beta.9 (copy mode) on 02/17/2016 09:20:07 PM

IF DODEFAULT()
IF w_aspinfo.dest = "P"
*-FIC- Replaced by FoxInCloud Adaptation Assistant version 2.21.0-beta.9 (copy mode) on 02/17/2016 09:20:07 PM
*-FIC- WAIT ALLTRIM(w_aspinfo.address) WINDOW AT MROW(""),MCOL("")


wWAIT(ALLTRIM(w_aspinfo.address) AT MROW(""),MCOL(""), 'WINDOW')

ENDIF
ENDIF

RETURN


If you have some time to assist further that would be much appreciated.

Regards,

Martin


Hi Thierry,
As requested I have sent the "D:\Test\devspace\devspace\local projects\cars\2_69_0\COMMON\CLASSES\cmodecls.vc?" files to support@foxincloud.com.

Thanks, we could pinpoint and solve the issue.
Updated version will correctly identify procedures, even if an instruction starts with 'proc' not meant to be a 'procedure' key word.

Cheers

Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  FoxInCloud Support - Thierry N.
  Martin
  Feb 18, 2016 @ 12:15am
Hi Thierry,

Thanks to your always patient and kind assistance I have now successfully analyzed my project and posted the results on your web site.

Now, boldly on to step 2, Adaptation !
I successfully ran the Adaptation step and upon completion it was recommended that I ensure that my application continues to work as expected from the desktop.
So, I went to the copy of the project created by FAA and tried to build it.
The project didn't build successfully.
The errors determined are as follows:


Hi Martin,

You're welcome; our commitment to free on-line support is a top priority as real-life feedbacks are the best bricks for a better product.

If these are the only errors you get out of 500k instructions and at least 4k automated adaptations, that's close to amazing.

The 'File does not exist' errors are because you miss the FiC pathes -- starting the VFP IDE using the shortcut 'FoxinCloud Web Application Studio' on your desktop will fix all of these.

otherwise,

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\security.vcx
SELECT Proc.ProcessId,
Error in line 41 of cfrmprocessgrp.cmdAdd.Click (record 107): Command is missing required clause.
Proc.Description FROM (m.lcProcesstable) AS Proc WHERE Proc.ProcessId NOT IN (SELECT w_process.ProcessId FROM w_process) INTO CURSOR w_ProcSrch NOFILTER READWRITE
Error in line 45 of cfrmprocessgrp.cmdAdd.Click (record 107): Syntax error.

1. The existing comment block at the start of the method has been removed by the Adaptation process.

We'll fix that - might take a little time as a core method is concerned

2. A blank line has been inserted into a multi-line SQL statement.

Will investigate
If it's the only occurrence, better fix it manually after adapting your source code (in source mode)

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\cars\classes\instructionsmidtier.vcx
wWAIT(ALLTRIM(w_aspinfo.address) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 28 of cfrmaspmessenger.grdAspReport.grcOutTo.txtOutTo.RightClick (record 537): Function name is missing ).
wWAIT(ALLTRIM(lcString) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 43 of cfrmaspmessenger.grdAspReport.grcKeyRef.txtKeyRef.RightClick (record 539): Function name is missing ).

Same as above: parsing issues that could take a very long time to fix
If you only have a couple of occurrences, better fix manually

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\capplic.vcx
IF UPPER(wMenu(Textmerge("IF UPPER(PRMPAD('_msysmenu', wMenu(Textmerge("GETPAD('_msysmenu', )", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)
Error in line 1289 of capplication.hasmenupad (record 2): Function name is missing ).

same as above


-- thn (FoxInCloud)

Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  Martin
  Thierry Nivelet (FoxInCloud)
  Feb 18, 2016 @ 01:47pm
"The 'File does not exist' errors are because you miss the FiC pathes -- starting the VFP IDE using the shortcut 'FoxinCloud Web Application Studio' on your desktop will fix all of these."

Not sure I have that one?
The only Foxincloud icon I have is the Adaptation Assistant:

Is that the one you are referring to?

Regards,


Hi Thierry,

Thanks to your always patient and kind assistance I have now successfully analyzed my project and posted the results on your web site.

Now, boldly on to step 2, Adaptation !
I successfully ran the Adaptation step and upon completion it was recommended that I ensure that my application continues to work as expected from the desktop.
So, I went to the copy of the project created by FAA and tried to build it.
The project didn't build successfully.
The errors determined are as follows:


Hi Martin,

You're welcome; our commitment to free on-line support is a top priority as real-life feedbacks are the best bricks for a better product.

If these are the only errors you get out of 500k instructions and at least 4k automated adaptations, that's close to amazing.

The 'File does not exist' errors are because you miss the FiC pathes -- starting the VFP IDE using the shortcut 'FoxinCloud Web Application Studio' on your desktop will fix all of these.

otherwise,

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\security.vcx
SELECT Proc.ProcessId,
Error in line 41 of cfrmprocessgrp.cmdAdd.Click (record 107): Command is missing required clause.
Proc.Description FROM (m.lcProcesstable) AS Proc WHERE Proc.ProcessId NOT IN (SELECT w_process.ProcessId FROM w_process) INTO CURSOR w_ProcSrch NOFILTER READWRITE
Error in line 45 of cfrmprocessgrp.cmdAdd.Click (record 107): Syntax error.

1. The existing comment block at the start of the method has been removed by the Adaptation process.

We'll fix that - might take a little time as a core method is concerned

2. A blank line has been inserted into a multi-line SQL statement.

Will investigate
If it's the only occurrence, better fix it manually after adapting your source code (in source mode)

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\cars\classes\instructionsmidtier.vcx
wWAIT(ALLTRIM(w_aspinfo.address) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 28 of cfrmaspmessenger.grdAspReport.grcOutTo.txtOutTo.RightClick (record 537): Function name is missing ).
wWAIT(ALLTRIM(lcString) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 43 of cfrmaspmessenger.grdAspReport.grcKeyRef.txtKeyRef.RightClick (record 539): Function name is missing ).

Same as above: parsing issues that could take a very long time to fix
If you only have a couple of occurrences, better fix manually

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\capplic.vcx
IF UPPER(wMenu(Textmerge("IF UPPER(PRMPAD('_msysmenu', wMenu(Textmerge("GETPAD('_msysmenu', )", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)
Error in line 1289 of capplication.hasmenupad (record 2): Function name is missing ).

same as above


Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  FoxInCloud Support - Thierry N.
  Martin
  Feb 18, 2016 @ 10:29pm
oops, sorry, the shortcut I mentioned installs with FoxInCloud Application Server package.
We'll check out whether these paths are set on due time
Just in case, do you use a project hook?


"The 'File does not exist' errors are because you miss the FiC pathes -- starting the VFP IDE using the shortcut 'FoxinCloud Web Application Studio' on your desktop will fix all of these."

Not sure I have that one?
The only Foxincloud icon I have is the Adaptation Assistant:

Is that the one you are referring to?

Regards,


Hi Thierry,

Thanks to your always patient and kind assistance I have now successfully analyzed my project and posted the results on your web site.

Now, boldly on to step 2, Adaptation !
I successfully ran the Adaptation step and upon completion it was recommended that I ensure that my application continues to work as expected from the desktop.
So, I went to the copy of the project created by FAA and tried to build it.
The project didn't build successfully.
The errors determined are as follows:


Hi Martin,

You're welcome; our commitment to free on-line support is a top priority as real-life feedbacks are the best bricks for a better product.

If these are the only errors you get out of 500k instructions and at least 4k automated adaptations, that's close to amazing.

The 'File does not exist' errors are because you miss the FiC pathes -- starting the VFP IDE using the shortcut 'FoxinCloud Web Application Studio' on your desktop will fix all of these.

otherwise,

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\security.vcx
SELECT Proc.ProcessId,
Error in line 41 of cfrmprocessgrp.cmdAdd.Click (record 107): Command is missing required clause.
Proc.Description FROM (m.lcProcesstable) AS Proc WHERE Proc.ProcessId NOT IN (SELECT w_process.ProcessId FROM w_process) INTO CURSOR w_ProcSrch NOFILTER READWRITE
Error in line 45 of cfrmprocessgrp.cmdAdd.Click (record 107): Syntax error.

1. The existing comment block at the start of the method has been removed by the Adaptation process.

We'll fix that - might take a little time as a core method is concerned

2. A blank line has been inserted into a multi-line SQL statement.

Will investigate
If it's the only occurrence, better fix it manually after adapting your source code (in source mode)

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\cars\classes\instructionsmidtier.vcx
wWAIT(ALLTRIM(w_aspinfo.address) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 28 of cfrmaspmessenger.grdAspReport.grcOutTo.txtOutTo.RightClick (record 537): Function name is missing ).
wWAIT(ALLTRIM(lcString) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 43 of cfrmaspmessenger.grdAspReport.grcKeyRef.txtKeyRef.RightClick (record 539): Function name is missing ).

Same as above: parsing issues that could take a very long time to fix
If you only have a couple of occurrences, better fix manually

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\capplic.vcx
IF UPPER(wMenu(Textmerge("IF UPPER(PRMPAD('_msysmenu', wMenu(Textmerge("GETPAD('_msysmenu', )", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)
Error in line 1289 of capplication.hasmenupad (record 2): Function name is missing ).

same as above




-- thn (FoxInCloud)

Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  Martin
  Thierry Nivelet (FoxInCloud)
  Feb 21, 2016 @ 01:50pm
Hi Thierry,

We don't use a project hook.

I can also confirm that I have the _gdiplus class library and a gdiplus.h file in the "C:\Program Files (x86)\Microsoft Visual FoxPro 9\Ffc" directory.

It just seems that the various ab* programs can't see the .h file.

Regards,

Martin.


oops, sorry, the shortcut I mentioned installs with FoxInCloud Application Server package.
We'll check out whether these paths are set on due time
Just in case, do you use a project hook?


"The 'File does not exist' errors are because you miss the FiC pathes -- starting the VFP IDE using the shortcut 'FoxinCloud Web Application Studio' on your desktop will fix all of these."

Not sure I have that one?
The only Foxincloud icon I have is the Adaptation Assistant:

Is that the one you are referring to?

Regards,


Hi Thierry,

Thanks to your always patient and kind assistance I have now successfully analyzed my project and posted the results on your web site.

Now, boldly on to step 2, Adaptation !
I successfully ran the Adaptation step and upon completion it was recommended that I ensure that my application continues to work as expected from the desktop.
So, I went to the copy of the project created by FAA and tried to build it.
The project didn't build successfully.
The errors determined are as follows:


Hi Martin,

You're welcome; our commitment to free on-line support is a top priority as real-life feedbacks are the best bricks for a better product.

If these are the only errors you get out of 500k instructions and at least 4k automated adaptations, that's close to amazing.

The 'File does not exist' errors are because you miss the FiC pathes -- starting the VFP IDE using the shortcut 'FoxinCloud Web Application Studio' on your desktop will fix all of these.

otherwise,

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\security.vcx
SELECT Proc.ProcessId,
Error in line 41 of cfrmprocessgrp.cmdAdd.Click (record 107): Command is missing required clause.
Proc.Description FROM (m.lcProcesstable) AS Proc WHERE Proc.ProcessId NOT IN (SELECT w_process.ProcessId FROM w_process) INTO CURSOR w_ProcSrch NOFILTER READWRITE
Error in line 45 of cfrmprocessgrp.cmdAdd.Click (record 107): Syntax error.

1. The existing comment block at the start of the method has been removed by the Adaptation process.

We'll fix that - might take a little time as a core method is concerned

2. A blank line has been inserted into a multi-line SQL statement.

Will investigate
If it's the only occurrence, better fix it manually after adapting your source code (in source mode)

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\cars\classes\instructionsmidtier.vcx
wWAIT(ALLTRIM(w_aspinfo.address) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 28 of cfrmaspmessenger.grdAspReport.grcOutTo.txtOutTo.RightClick (record 537): Function name is missing ).
wWAIT(ALLTRIM(lcString) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 43 of cfrmaspmessenger.grdAspReport.grcKeyRef.txtKeyRef.RightClick (record 539): Function name is missing ).

Same as above: parsing issues that could take a very long time to fix
If you only have a couple of occurrences, better fix manually

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\capplic.vcx
IF UPPER(wMenu(Textmerge("IF UPPER(PRMPAD('_msysmenu', wMenu(Textmerge("GETPAD('_msysmenu', )", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)
Error in line 1289 of capplication.hasmenupad (record 2): Function name is missing ).

same as above




Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  FoxInCloud Support - Thierry N.
  Martin
  Feb 23, 2016 @ 01:03am
Hi Martin,

We've just uploaded a new version fixing these 2 issues:
- SET PATH to \tools\ab and \ffc when opening the adapted project
- during adaptation, preserve comments before the (l)parameters instruction

I hope it'll work fine on your side!


Hi Thierry,

We don't use a project hook.

I can also confirm that I have the _gdiplus class library and a gdiplus.h file in the "C:\Program Files (x86)\Microsoft Visual FoxPro 9\Ffc" directory.

It just seems that the various ab* programs can't see the .h file.

Regards,

Martin.


oops, sorry, the shortcut I mentioned installs with FoxInCloud Application Server package.
We'll check out whether these paths are set on due time
Just in case, do you use a project hook?


"The 'File does not exist' errors are because you miss the FiC pathes -- starting the VFP IDE using the shortcut 'FoxinCloud Web Application Studio' on your desktop will fix all of these."

Not sure I have that one?
The only Foxincloud icon I have is the Adaptation Assistant:

Is that the one you are referring to?

Regards,


Hi Thierry,

Thanks to your always patient and kind assistance I have now successfully analyzed my project and posted the results on your web site.

Now, boldly on to step 2, Adaptation !
I successfully ran the Adaptation step and upon completion it was recommended that I ensure that my application continues to work as expected from the desktop.
So, I went to the copy of the project created by FAA and tried to build it.
The project didn't build successfully.
The errors determined are as follows:


Hi Martin,

You're welcome; our commitment to free on-line support is a top priority as real-life feedbacks are the best bricks for a better product.

If these are the only errors you get out of 500k instructions and at least 4k automated adaptations, that's close to amazing.

The 'File does not exist' errors are because you miss the FiC pathes -- starting the VFP IDE using the shortcut 'FoxinCloud Web Application Studio' on your desktop will fix all of these.

otherwise,

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\security.vcx
SELECT Proc.ProcessId,
Error in line 41 of cfrmprocessgrp.cmdAdd.Click (record 107): Command is missing required clause.
Proc.Description FROM (m.lcProcesstable) AS Proc WHERE Proc.ProcessId NOT IN (SELECT w_process.ProcessId FROM w_process) INTO CURSOR w_ProcSrch NOFILTER READWRITE
Error in line 45 of cfrmprocessgrp.cmdAdd.Click (record 107): Syntax error.

1. The existing comment block at the start of the method has been removed by the Adaptation process.

We'll fix that - might take a little time as a core method is concerned

2. A blank line has been inserted into a multi-line SQL statement.

Will investigate
If it's the only occurrence, better fix it manually after adapting your source code (in source mode)

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\cars\classes\instructionsmidtier.vcx
wWAIT(ALLTRIM(w_aspinfo.address) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 28 of cfrmaspmessenger.grdAspReport.grcOutTo.txtOutTo.RightClick (record 537): Function name is missing ).
wWAIT(ALLTRIM(lcString) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 43 of cfrmaspmessenger.grdAspReport.grcKeyRef.txtKeyRef.RightClick (record 539): Function name is missing ).

Same as above: parsing issues that could take a very long time to fix
If you only have a couple of occurrences, better fix manually

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\capplic.vcx
IF UPPER(wMenu(Textmerge("IF UPPER(PRMPAD('_msysmenu', wMenu(Textmerge("GETPAD('_msysmenu', )", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)
Error in line 1289 of capplication.hasmenupad (record 2): Function name is missing ).

same as above





Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  Martin
  Thierry Nivelet (FoxInCloud)
  Feb 24, 2016 @ 07:19pm
Hi Thierry,

I've downloaded the new version of FAA and run through the analyse and adaptation processes from scratch again.

Unfortunately, when I subsequently try and build my application it still fails with messages specifying that gdiplus.h does not exist.

However, I was able to overcome this by changing the ab.h file to store the full path to that file:

i.e. Replacing:

#INCLUDE ffc\GDIplus.H

with:

#INCLUDE "C:\Program Files (x86)\Microsoft Visual FoxPro 9\Ffc\GDIplus.H"

A subsequent build attempt no longer complained about missing a GDIPLUS.h file.

This leaves me with one remaining build error:

This error appears to have been caused by the following change made by the Adaptation process which results in a syntactically incorrect statement.

I know that you previously advised that this relates to complex parsing and I should try and fix manually but given the complexity of the change made by the Adaptation process and my lack of knowledge regarding the intention of that change, that is easier said than done.

Also given the error is within menu code I'm reticent to just comment the line of code out and push ahead.

What would you recommend?


Regards,

Martin


Hi Martin,

We've just uploaded a new version fixing these 2 issues:
- SET PATH to \tools\ab and \ffc when opening the adapted project
- during adaptation, preserve comments before the (l)parameters instruction

I hope it'll work fine on your side!


Hi Thierry,

We don't use a project hook.

I can also confirm that I have the _gdiplus class library and a gdiplus.h file in the "C:\Program Files (x86)\Microsoft Visual FoxPro 9\Ffc" directory.

It just seems that the various ab* programs can't see the .h file.

Regards,

Martin.


oops, sorry, the shortcut I mentioned installs with FoxInCloud Application Server package.
We'll check out whether these paths are set on due time
Just in case, do you use a project hook?


"The 'File does not exist' errors are because you miss the FiC pathes -- starting the VFP IDE using the shortcut 'FoxinCloud Web Application Studio' on your desktop will fix all of these."

Not sure I have that one?
The only Foxincloud icon I have is the Adaptation Assistant:

Is that the one you are referring to?

Regards,


Hi Thierry,

Thanks to your always patient and kind assistance I have now successfully analyzed my project and posted the results on your web site.

Now, boldly on to step 2, Adaptation !
I successfully ran the Adaptation step and upon completion it was recommended that I ensure that my application continues to work as expected from the desktop.
So, I went to the copy of the project created by FAA and tried to build it.
The project didn't build successfully.
The errors determined are as follows:


Hi Martin,

You're welcome; our commitment to free on-line support is a top priority as real-life feedbacks are the best bricks for a better product.

If these are the only errors you get out of 500k instructions and at least 4k automated adaptations, that's close to amazing.

The 'File does not exist' errors are because you miss the FiC pathes -- starting the VFP IDE using the shortcut 'FoxinCloud Web Application Studio' on your desktop will fix all of these.

otherwise,

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\security.vcx
SELECT Proc.ProcessId,
Error in line 41 of cfrmprocessgrp.cmdAdd.Click (record 107): Command is missing required clause.
Proc.Description FROM (m.lcProcesstable) AS Proc WHERE Proc.ProcessId NOT IN (SELECT w_process.ProcessId FROM w_process) INTO CURSOR w_ProcSrch NOFILTER READWRITE
Error in line 45 of cfrmprocessgrp.cmdAdd.Click (record 107): Syntax error.

1. The existing comment block at the start of the method has been removed by the Adaptation process.

We'll fix that - might take a little time as a core method is concerned

2. A blank line has been inserted into a multi-line SQL statement.

Will investigate
If it's the only occurrence, better fix it manually after adapting your source code (in source mode)

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\cars\classes\instructionsmidtier.vcx
wWAIT(ALLTRIM(w_aspinfo.address) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 28 of cfrmaspmessenger.grdAspReport.grcOutTo.txtOutTo.RightClick (record 537): Function name is missing ).
wWAIT(ALLTRIM(lcString) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 43 of cfrmaspmessenger.grdAspReport.grcKeyRef.txtKeyRef.RightClick (record 539): Function name is missing ).

Same as above: parsing issues that could take a very long time to fix
If you only have a couple of occurrences, better fix manually

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\capplic.vcx
IF UPPER(wMenu(Textmerge("IF UPPER(PRMPAD('_msysmenu', wMenu(Textmerge("GETPAD('_msysmenu', )", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)
Error in line 1289 of capplication.hasmenupad (record 2): Function name is missing ).

same as above






Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  FoxInCloud Support - Thierry N.
  Martin
  Feb 24, 2016 @ 11:11pm
Hi Martin,

Glad to see you could workaround this path issue -- we'll dig into it so that you don't need to modify file ab.h at each FAA update.

The parsing issue is due to nested parenthesis, a pattern that regular expression can hardly cope with; we'll look for a workaround.
In between you can adapt manually to:

IF upper(wMenu(Textmerge([PrmPad('_msysmenu', getPad('_msysmenu', <%lnCount%>))]), .F., '<%', '%>')) = upper('vcPadName')

&& for more explanations:
modify command awPublic && see wMenu()



Hi Thierry,

I've downloaded the new version of FAA and run through the analyse and adaptation processes from scratch again.

Unfortunately, when I subsequently try and build my application it still fails with messages specifying that gdiplus.h does not exist.

However, I was able to overcome this by changing the ab.h file to store the full path to that file:

i.e. Replacing:

#INCLUDE ffc\GDIplus.H

with:

#INCLUDE "C:\Program Files (x86)\Microsoft Visual FoxPro 9\Ffc\GDIplus.H"

A subsequent build attempt no longer complained about missing a GDIPLUS.h file.

This leaves me with one remaining build error:

This error appears to have been caused by the following change made by the Adaptation process which results in a syntactically incorrect statement.

I know that you previously advised that this relates to complex parsing and I should try and fix manually but given the complexity of the change made by the Adaptation process and my lack of knowledge regarding the intention of that change, that is easier said than done.

Also given the error is within menu code I'm reticent to just comment the line of code out and push ahead.

What would you recommend?


Regards,

Martin


Hi Martin,

We've just uploaded a new version fixing these 2 issues:
- SET PATH to \tools\ab and \ffc when opening the adapted project
- during adaptation, preserve comments before the (l)parameters instruction

I hope it'll work fine on your side!


Hi Thierry,

We don't use a project hook.

I can also confirm that I have the _gdiplus class library and a gdiplus.h file in the "C:\Program Files (x86)\Microsoft Visual FoxPro 9\Ffc" directory.

It just seems that the various ab* programs can't see the .h file.

Regards,

Martin.


oops, sorry, the shortcut I mentioned installs with FoxInCloud Application Server package.
We'll check out whether these paths are set on due time
Just in case, do you use a project hook?


"The 'File does not exist' errors are because you miss the FiC pathes -- starting the VFP IDE using the shortcut 'FoxinCloud Web Application Studio' on your desktop will fix all of these."

Not sure I have that one?
The only Foxincloud icon I have is the Adaptation Assistant:

Is that the one you are referring to?

Regards,


Hi Thierry,

Thanks to your always patient and kind assistance I have now successfully analyzed my project and posted the results on your web site.

Now, boldly on to step 2, Adaptation !
I successfully ran the Adaptation step and upon completion it was recommended that I ensure that my application continues to work as expected from the desktop.
So, I went to the copy of the project created by FAA and tried to build it.
The project didn't build successfully.
The errors determined are as follows:


Hi Martin,

You're welcome; our commitment to free on-line support is a top priority as real-life feedbacks are the best bricks for a better product.

If these are the only errors you get out of 500k instructions and at least 4k automated adaptations, that's close to amazing.

The 'File does not exist' errors are because you miss the FiC pathes -- starting the VFP IDE using the shortcut 'FoxinCloud Web Application Studio' on your desktop will fix all of these.

otherwise,

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\security.vcx
SELECT Proc.ProcessId,
Error in line 41 of cfrmprocessgrp.cmdAdd.Click (record 107): Command is missing required clause.
Proc.Description FROM (m.lcProcesstable) AS Proc WHERE Proc.ProcessId NOT IN (SELECT w_process.ProcessId FROM w_process) INTO CURSOR w_ProcSrch NOFILTER READWRITE
Error in line 45 of cfrmprocessgrp.cmdAdd.Click (record 107): Syntax error.

1. The existing comment block at the start of the method has been removed by the Adaptation process.

We'll fix that - might take a little time as a core method is concerned

2. A blank line has been inserted into a multi-line SQL statement.

Will investigate
If it's the only occurrence, better fix it manually after adapting your source code (in source mode)

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\cars\classes\instructionsmidtier.vcx
wWAIT(ALLTRIM(w_aspinfo.address) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 28 of cfrmaspmessenger.grdAspReport.grcOutTo.txtOutTo.RightClick (record 537): Function name is missing ).
wWAIT(ALLTRIM(lcString) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 43 of cfrmaspmessenger.grdAspReport.grcKeyRef.txtKeyRef.RightClick (record 539): Function name is missing ).

Same as above: parsing issues that could take a very long time to fix
If you only have a couple of occurrences, better fix manually

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\capplic.vcx
IF UPPER(wMenu(Textmerge("IF UPPER(PRMPAD('_msysmenu', wMenu(Textmerge("GETPAD('_msysmenu', )", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)
Error in line 1289 of capplication.hasmenupad (record 2): Function name is missing ).

same as above








-- thn (FoxInCloud)

Gravatar is a globally recognized avatar based on your email address. Re: FoxInCloud Adapter Assistant
  FoxInCloud Support - Thierry N.
  Martin
  Feb 28, 2016 @ 11:32pm
update -- better break the instruction into 2 pieces:

<span style="{font-size: xx-small; color: red;}">Code parsing for language: "vfp" is not currently supported.<br></span>
lcPad = wMenu(Textmerge([PrmPad('_msysmenu', getPad('_msysmenu', <%lnCount%>))]), .F., '<%', '%>'))
IF upper(wMenu(Textmerge([PrmPad('_msysmenu', <%lcPad%>)]), .F., '<%', '%>')) = upper('vcPadName')



Hi Martin,

Glad to see you could workaround this path issue -- we'll dig into it so that you don't need to modify file ab.h at each FAA update.

The parsing issue is due to nested parenthesis, a pattern that regular expression can hardly cope with; we'll look for a workaround.
In between you can adapt manually to:

IF upper(wMenu(Textmerge([PrmPad('_msysmenu', getPad('_msysmenu', <%lnCount%>))]), .F., '<%', '%>')) = upper('vcPadName')

&& for more explanations:
modify command awPublic && see wMenu()



Hi Thierry,

I've downloaded the new version of FAA and run through the analyse and adaptation processes from scratch again.

Unfortunately, when I subsequently try and build my application it still fails with messages specifying that gdiplus.h does not exist.

However, I was able to overcome this by changing the ab.h file to store the full path to that file:

i.e. Replacing:

#INCLUDE ffc\GDIplus.H

with:

#INCLUDE "C:\Program Files (x86)\Microsoft Visual FoxPro 9\Ffc\GDIplus.H"

A subsequent build attempt no longer complained about missing a GDIPLUS.h file.

This leaves me with one remaining build error:

This error appears to have been caused by the following change made by the Adaptation process which results in a syntactically incorrect statement.

I know that you previously advised that this relates to complex parsing and I should try and fix manually but given the complexity of the change made by the Adaptation process and my lack of knowledge regarding the intention of that change, that is easier said than done.

Also given the error is within menu code I'm reticent to just comment the line of code out and push ahead.

What would you recommend?


Regards,

Martin


Hi Martin,

We've just uploaded a new version fixing these 2 issues:
- SET PATH to \tools\ab and \ffc when opening the adapted project
- during adaptation, preserve comments before the (l)parameters instruction

I hope it'll work fine on your side!


Hi Thierry,

We don't use a project hook.

I can also confirm that I have the _gdiplus class library and a gdiplus.h file in the "C:\Program Files (x86)\Microsoft Visual FoxPro 9\Ffc" directory.

It just seems that the various ab* programs can't see the .h file.

Regards,

Martin.


oops, sorry, the shortcut I mentioned installs with FoxInCloud Application Server package.
We'll check out whether these paths are set on due time
Just in case, do you use a project hook?


"The 'File does not exist' errors are because you miss the FiC pathes -- starting the VFP IDE using the shortcut 'FoxinCloud Web Application Studio' on your desktop will fix all of these."

Not sure I have that one?
The only Foxincloud icon I have is the Adaptation Assistant:

Is that the one you are referring to?

Regards,


Hi Thierry,

Thanks to your always patient and kind assistance I have now successfully analyzed my project and posted the results on your web site.

Now, boldly on to step 2, Adaptation !
I successfully ran the Adaptation step and upon completion it was recommended that I ensure that my application continues to work as expected from the desktop.
So, I went to the copy of the project created by FAA and tried to build it.
The project didn't build successfully.
The errors determined are as follows:


Hi Martin,

You're welcome; our commitment to free on-line support is a top priority as real-life feedbacks are the best bricks for a better product.

If these are the only errors you get out of 500k instructions and at least 4k automated adaptations, that's close to amazing.

The 'File does not exist' errors are because you miss the FiC pathes -- starting the VFP IDE using the shortcut 'FoxinCloud Web Application Studio' on your desktop will fix all of these.

otherwise,

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\security.vcx
SELECT Proc.ProcessId,
Error in line 41 of cfrmprocessgrp.cmdAdd.Click (record 107): Command is missing required clause.
Proc.Description FROM (m.lcProcesstable) AS Proc WHERE Proc.ProcessId NOT IN (SELECT w_process.ProcessId FROM w_process) INTO CURSOR w_ProcSrch NOFILTER READWRITE
Error in line 45 of cfrmprocessgrp.cmdAdd.Click (record 107): Syntax error.

1. The existing comment block at the start of the method has been removed by the Adaptation process.

We'll fix that - might take a little time as a core method is concerned

2. A blank line has been inserted into a multi-line SQL statement.

Will investigate
If it's the only occurrence, better fix it manually after adapting your source code (in source mode)

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\cars\classes\instructionsmidtier.vcx
wWAIT(ALLTRIM(w_aspinfo.address) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 28 of cfrmaspmessenger.grdAspReport.grcOutTo.txtOutTo.RightClick (record 537): Function name is missing ).
wWAIT(ALLTRIM(lcString) AT MROW(""),MCOL(""), 'WINDOW')
Error in line 43 of cfrmaspmessenger.grdAspReport.grcKeyRef.txtKeyRef.RightClick (record 539): Function name is missing ).

Same as above: parsing issues that could take a very long time to fix
If you only have a couple of occurrences, better fix manually

Compiling d:\test\devspace\devspace\local projects\cars\2_68_0\common\classes\capplic.vcx
IF UPPER(wMenu(Textmerge("IF UPPER(PRMPAD('_msysmenu', wMenu(Textmerge("GETPAD('_msysmenu', )", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)", .F., '<', '>'), @m.wMenuResult))) = UPPER(vcPadName)
Error in line 1289 of capplication.hasmenupad (record 2): Function name is missing ).

same as above









-- thn (FoxInCloud)

© 1996-2024