Comsoft7 Legacy to
ABC Conversion Process
BoTXA Legacy to ABC Conversion
Service

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
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
|