Comsoft7 Legacy to ABC Conversion Process

 

BoTXA Legacy to ABC Conversion Service                                      Back to Leg2ABC

If you have a Legacy app to convert, do a "save as".  This will help clean up any potential garbage in the app.  Try exporting to a TXA and importing again, as this also adds additional cleanup to your app.  Make sure it still compiles OK.

Export the app to a TXA, and send to me along with a list of the ASCII, BASIC, DOS, and MEMORY files in the dictionary. I prefer the INI list created by one of the utilities below.  The Conversion File list used by BoTXA is built at runtime from within the TXA, and has no knowledge of the dictionary, File drivers, Fields, or relationships.  This is necessary to be able to change file handling syntax on embed hand code to ABC FileManager type Syntax.
The service is also available over Terminal server, so your code never has to leave your computer.  Please inquire for details.

The zip File contains a utility Application(GetFiles.exe) and it creates a text file showing all the files declared in your Global Module, along with their drivers and NAME attributes.  It also creates an INI file with list of ASCII, BASIC, DOS, and MEMORY files in your dictionary.  Run it and select the Global module from your app (usually %application.clw ) .  It should create an INI file named  %ApplicationBoTXA.INI


The zip File contains a utility template (BoTXA.tpl) to create an INI file with list of ASCII, BASIC, DOS, and MEMORY files in your dictionary.  Unzip it into your 3rdParty or Accessory template directory and register the template.  Load your app and run the utility.  It should create an INI file named  %ApplicationBoTXA.INI

When you get the TXA back.

Create a new empty ABC app with the same dictionary. Import text from the converted TXA. Do a "Replace all" when asked about procedure name clash.

You will also get a log file back with major changes made.  See Log File Example Below.

Potential problems after a conversion.

Problem:
In legacy all procedures are "Declared Globally" in the sense that they're in the MAP in the root module.  In ABC they're only declared there if the "Declare Globally" option is ticked. In ABC this will throw errors when Global templates call procedures, or from procedures called from hand-code, and not noted in the call tree.
Solution:
BoTXA has checked the "Declare Globally" for all procedures in the conversion app, and notes them in the log file. This mimics the Legacy app, and has you up and running until corrections are made.

Problem:
If you don't have matching 3rdParty templates registered, or they are a different chain name, and have not supplied the data to Comsoft7, they will be stripped out when the TXA is loaded, and the stored prompts lost.
Solution:
Acquire and register the necessary templates. Reload TXA.

Problem:
"In ABC the Dictionary initial values are set globally. Thus code is generated for every file in the app. In Legacy initial values are only set in the FORM so only Files with Forms have the "Initial Value" code generated. So, if your dictionary any files not associated with a FORM in the app, AND it has an incorrect "Initial Value" then ABC will spit out a compile error - Legacy won't."
Solution:
Correct the initial value in the dict, adding quotes if it is a constant value.

You may still get an occasion spooky problem from some legacy code being generated in some spots after the conversion by the SV templates.  Such as an ?OK button generating a do procedure return mixed with ABC code.
In this case, you need to remove the button and replace it again.
 

Other Resources
 

CW4 Had a Document CW2ABC.PDF     CW55 Had a Document LearnABC.PDF

Capesoft Has an excellent ABC Book authored by Bruce Johnson for sale at their site.  Capesoft Link 


Privacy Statement.
 

Your privacy is of the utmost concern to Comsoft7.  You app will never be shared with anyone, or expose any of the code contained inside the TXA.  I will be happy to sign a non-disclosure agreement with you if that is a concern.  When you are a satisfied customer, your TXA will be deleted from the hard drive here.  The TXA can be held here short term in case you need another run.

Log File Example                 Download a real Log File from larger conversion app 

 January 24, 2012 7:08AM
**** BoTXA Process Time 0:00:56 ****

E:\Test\Bruce\faswin3.txa
Procedures in Application = 151
File Size = 6,814,055
Lines in TXA 216,542

29 FILES TO SEARCH FOR TO CHANGE FILE SYNTAX
AppIsOpen
AssetMaster
CAssetMaster
CFG
Company
Control
<SNIP>

10 FILES TO IGNORE - ASCII AND BASIC
Cullnn
Cullnn2
Export
IMPAssetMaster
ImportTmp
Infile
Metafiles
Outfile
Register
TCash

CHANGES AND NOTES:

PROCEDURE NAME UpdateDepr
 ADD DECLARE GLOBALLY !!!
 FROM Clarion Process
   REMOVED UNUSED VARIABLES
   CHANGED FILE SYNTAX IN EMBEDS
   ADD REPORT Progress:Thermometer Variable
   ADD PROCESS PROGRESS WINDOW

PROCEDURE NAME SetFileNames
 was already Declared Globally
 FROM Clarion Source
   REMOVED UNUSED VARIABLES
   CHANGED FILE SYNTAX IN EMBEDS

PROCEDURE NAME Main
 ADD DECLARE GLOBALLY !!!
 FROM Clarion Frame
   REMOVED UNUSED VARIABLES
   CHANGED FILE SYNTAX IN EMBEDS
   REPLACE BAD EMBED NAME EMBED %DeclarationSection
   REPLACE BAD EMBED NAME EMBED %ProcRoutines

PROCEDURE NAME BookValueDep
 ADD DECLARE GLOBALLY !!!
 FROM Clarion Report
   REMOVED UNUSED VARIABLES
   CHANGED FILE SYNTAX IN EMBEDS
   ADD REPORT Progress:Thermometer Variable
   REPLACE BAD EMBED NAME EMBED %ProcRoutines
   REPLACE BAD EMBED NAME EMBED %DeclarationSection
   ADD REPORT PROGRESS WINDOW
   ADDED REPORT Detail Use Variable ,USE(?SubUndLine)
   ADDED REPORT Detail Use Variable ,USE(?DblUndLine)

PROCEDURE NAME SetupEmail
 ADD DECLARE GLOBALLY !!!
 FROM Clarion Form
   REMOVED UNUSED VARIABLES
   CHANGED FILE SYNTAX IN EMBEDS
   REPAIR WINDOW RESIZER !!!

 

3rd Party Known Compatible or rules added

CapeSoft
ClarCom
Comsoft7
CPCS
IceTips
Mike Hanson Super Templates
RPM