© Copyright IBM Corporation 2000, 2005. All Rights Reserved.
Welcome to the IBM® Informix® 4GL to EGL Conversion
Utility, for Rational® Application Developer Version 6.0.0.1
1.0 About this feature
2.0 Documentation
3.0 Known limitations
4.0 Tips
5.0 Contacting customer support
6.0 Notices and trademarks
This
release contains the Conversion Utility that would assist an application
conversion from InformixTM 4GL to
Enterprise Generation Language (EGL). This conversion utility requires
the installation of Rational Application Developer (or Rational Web Developer)
Version 6.0.0.1.
This Conversion
Utility provides the following capabilities:
Note: Converting
an I4GL application to EGL requires many pre-conversion and post-conversion
steps. Conversion Utility users are strongly encouraged to read the IBM
Informix 4GL to EGL Conversion Utility Users' Guide (User's Guide) before
converting their applications with the Conversion Utility. The User's
Guide provides a list of conversion limitations. For a complete list of
temporary Conversion Utility limitations, see Section 3.0 Known Limitations
below.
IBM Informix 4GL to EGL
Conversion Utility Users' Guide leads I4GL users through the Conversion Path to
EGL. This documentation is available at the root directory of this iFeature: <RAD_HOME>/egl/eclipse/plugins/com.ibm.etools.i4gl.conversion_<version>/
The information
center contains extensive documentation on how to use both EGL and the full
range of product features. Access the information center from the main menu by
selecting Help>Rational Help.
This
section lists the current known limitations
for EGL that are key to the 4GL support and the 4GL to
EGL conversion support.
Description
This
version of EGL does not allow
expressions in subscripts or substrings when there are function calls in
expressions.
Workaround
After ensuring that your converted application is imported into the EGL
perspective, make a Post-Conversion change by creating temporary variables and
assigning the result of the expressions to the temporary variables, and then
using these temporary variables instead.
Description
Although
I4GL supports the assignment of character and numeric data types to each other,
EGL does not.
Workaround
The EGL formatNumber function can be used in assignment statements between
numeric and Strings. This is a post migration effort. e.g.
charval
= intval;
needs to be replaced with
charval = formatNumber(intval,”#####”);
However, the reverse cannot be worked around:
intval = charval
Documentation for formatNumber is available in
the formatNumber and Assignments online
help topic.
Description
iFix004
release of EGL allows variable declarations anywhere in the code except within
IF/WHILE/FOR and OpenUI blocks. During conversion the
Conversion Utility creates inline temporary variables for forms/windows etc. If
there is a NESTED input statement, EGL validation will return an error
explaining that variable declarations are not allowed within the certain
statement blocks.
Workaround
Make a Post-Conversion change by moving the variables outside of the loop.
Description
The IF conditions in "IF
! xxx" or "IF xxx" throw
validation errors. Boolean expressions are not supported in EGL and
generate validation errors.
Workaround
The Conversion
Utility automatically converts these IF functions depending upon the context in
which they are used; this limitation does not impact I4GL application
conversion. It's documented here so that I4GL users may know the support
level of IF conditions when writing new applications in EGL.
For Boolean
expressions, convert the Boolean result of a condition to a numeric value of 0
or 1.
Description
The I4GL
VALIDATE statements is not supported in EGL.
Convert the validate statements to individual assignments where
possible. Validate currently is being commented out with a FIXME comment
around it since there is currently no provision in EGL for it.
Description
If
an openUI statement is encapsulated by a for statement, while statement, if statement, or case
statement, an OnEvent action in an openUI statement cannot exit those statements.
For
example:
Program WORK_1
FUNCTION main()
x string;
while (1==1)
openUI new PROMPT {message="press J to exit this
loop:", ischar=yes}
bind x
OnEvent(ON_KEY:"J")
while (1==1)
exit while; // ß- This is valid as the
program is exiting the while statement inside the OnEvent
block
end
exit while; // <-- This is invalid as
the while statement being terminated is outside the scope of the OnEvent action
end;
end
END
END
Workaround
The work around solution to change the program logic. One simple way is to change the
“exit” statement to “exit openUI”
after setting a Boolean flag. The
Boolean flag is then check by the outer most statement. For example, taking the above example,
Program WORK_1
FUNCTION main()
x string;
exitFlag
int = 0;
while (1==1
&& exitFlag==0 )
openUI new PROMPT {message="press J to exit this
loop:", ischar=yes}
bind x
OnEvent(ON_KEY:"J")
while (1==1)
exit while;
end
exitFlag = 1; // ß
set a flag that the outer while loop can check against
exit openUI; // <--
Change the “exit while” to “exit openUI”
end;
end
END
END
There
are some programming tips related to the I4GL to EGL Conversion Utility:
4.1 Screen
Record vs. Screen Array
In I4GL, the SCREEN RECORD keywords defined in the form file could also be
referred to as SCREEN ARRAY. This is not supported in EGL, and results in
a runtime error.
4.2 Locale Settings
On Microsoft Windows machines for any non-English locale the Standards and
Formats and the Languages for non-Unicode Programs tabs must be set with the
appropriate locale information.
4.3 Default
locale assumption by Conversion Utility
For the default locale, no locale suffix is required at runtime for the EGL message
property files. The conversion tool will
assume US English to be the default locale.
Hence, en_us is never added as a suffix to the
converted message property files.
However, if US English is not the preferred default at runtime,
you need to rename the converted message file that is your locale by removing
the locale information. For example, if
your default locale is Chinese and your message property file is called “myMsg.properties”, rename the myMsg.properties
to myMsg_en_us.properties, and rename the myMsg_BIG5.properties
file to myMsg.properties,
The
product home page for Rational Application Developer is http://www-306.ibm.com/software/awdtools/developer/application/index.html.
For FAQs, lists of known problems and fixes, and
other support information, visit the Support page on the product home page. You can also
post questions through Rational Application Developer Forum.
This information was developed for products and services offered in the U.S.A.
IBM may not offer the products, services, or features discussed in this
documentation in other countries. Consult your local IBM representative for
information on the products and services currently available in your area. Any
reference to an IBM product, program, or service is not intended to state or
imply that only that IBM product, program, or service may be used. Any
functionally equivalent product, program, or service that does not infringe any
IBM intellectual property right may be used instead. However, it is the user's
responsibility to evaluate and verify the operation of any non-IBM product,
program, or service.
IBM may have patents or pending patent applications covering subject matter
described in this documentation. The furnishing of this documentation does not
give you any license to these patents. You can send license inquiries, in
writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
U.S.A.
For license inquiries regarding double-byte (DBCS) information, contact the
IBM Intellectual Property Department in your country or send inquiries, in
writing, to:
IBM World
Trade Asia Corporation
Licensing
2-31 Roppongi 3-chome, Minato-ku
Tokyo 106, Japan
The following
paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES
CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OR CONDITIONS OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied
warranties in certain transactions, therefore, this statement may not apply to
you.
This information
could include technical inaccuracies or typographical errors. Changes are
periodically made to the information herein; these changes will be incorporated
in new editions of the publication. IBM may make improvements and/or changes in
the product(s) and/or the program(s) described in this publication at any time
without notice.
Any references
in this information to non-IBM Web sites are provided for convenience only and
do not in any manner serve as an endorsement of those Web sites. The materials
at those Web sites are not part of the materials for this IBM product and use
of those Web sites is at your own risk.
IBM may use or
distribute any of the information you supply in any way it believes appropriate
without incurring any obligation to you.
Licensees of
this program who wish to have information about it for the purpose of enabling:
(i) the exchange of information between independently
created programs and other programs (including this one) and (ii) the mutual
use of the information which has been exchanged, should contact:
Intellectual
Property Dept. for Rational Software
IBM Corporation
3600 Steeles Avenue East
Markham, Ontario
Canada L3R 9Z7
Such information
may be available, subject to appropriate terms and conditions, including in
some cases, payment of a fee.
The licensed
program described in this documentation and all licensed material available for
it are provided by IBM under terms of the IBM Customer Agreement, IBM
International Program License Agreement or any equivalent agreement between us.
Any performance
data contained herein was determined in a controlled environment. Therefore,
the results obtained in other operating environments may vary significantly.
Some measurements may have been made on development-level systems and there is
no guarantee that these measurements will be the same on generally available
systems. Furthermore, some measurements may have been estimated through extrapolation.
Actual results may vary. Users of this document should verify the applicable
data for their specific environment.
Information
concerning non-IBM products was obtained from the suppliers of those products,
their published announcements or other publicly available sources. IBM has not
tested those products and cannot confirm the accuracy of performance,
compatibility or any other claims related to non-IBM products. Questions on the
capabilities of non-IBM products should be addressed to the suppliers of those
products.
All statements
regarding IBM's future direction or intent are subject to change or withdrawal
without notice, and represent goals and objectives only.
This information
contains examples of data and reports used in daily business operations. To
illustrate them as completely as possible, the examples may include the names
of individuals, companies, brands, and products. All of these names are
fictitious and any similarity to the names and addresses used by an actual
business enterprise is entirely coincidental.
COPYRIGHT
LICENSE:
This information
contains sample application programs in source language, which illustrates
programming techniques on various operating platforms. You may copy, modify,
and distribute these sample programs in any form without payment to IBM, for
the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating
platform for which the sample programs are written. These examples have not
been thoroughly tested under all conditions. IBM, therefore, cannot guarantee
or imply reliability, serviceability, or function of these programs. You may
copy, modify, and distribute these sample programs in any form without payment
to IBM for the purposes of developing, using, marketing, or distributing
application programs conforming to IBM's application programming interfaces.
Each copy or any
portion of these sample programs or any derivative work,
must include a copyright notice as follows:
(C) (your company name) (year). Portions of this code are derived
from IBM Corp. Sample Programs. (C) Copyright IBM Corp. 2000, 2005. All rights
reserved.
If you are
viewing this information softcopy, the photographs and color illustrations may
not appear.
Programming
interface information is intended to help you create application software using
this program.
General-use
programming interfaces allow you to write application software that obtain the services of this program's tools.
However, this
information may also contain diagnosis, modification, and tuning information.
Diagnosis, modification and tuning information is provided to help you debug
your application software.
Warning: Do not use this diagnosis, modification, and tuning information
as a programming interface because it is subject to change.
The following
terms are trademarks of International Business Machines Corporation in the
United States, other countries, or both:
Java and all
Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United
States, other countries, or both.
Linux is a
trademark of Linus Torvalds
in the United States, other countries, or both.
Other company,
product or service names, may trademarks or service
marks of others.