Welcome to the IBM® Rational®
Application Developer Interim Fix 003 for Rational Application
Developer, Version 6.0.1. This interim fix should be installed by anyone who is
using Enterprise Generation Language (EGL). It is required
if you are installing WebSphere® Developer for zSeries 6.0.1.
1.0 Prerequisites
2.0 New in this release
3.0 Product fix history
4.0 Considerations for I4GL conversion to EGL
5.0 Considerations for VisualAge Generator migration to EGL
6.0 Customer support
7.0 Notices and trademarks
You must install IBM Rational Application Developer 6.0.1
before installing Interim Fix 003.
The EGL Page Designer has been enhanced to support EGL Web Services. An EGL Web Service object has been added to the EGL palette drawer. Wizards have been added to create an EGL Web Service from Page Designer, and to look up existing services.
The end-user formats for date-time data types involve characters and symbols that direct the formatting and/or parsing of date-time values. When EGL scans a string that contains date-time data, it uses the date-time end-user format to determine how to convert this string to the internal value of the date-time data types. When EGL prints date-time data, it uses the date-time end-user format to determine how to format the internal value of the date-time data type as a string. The end-user formats for date-time data types can also include the names of ERAS e.g., Japanese Imperial date system. Japanese Imperial-era dates are tied to the reign of the Japanese emperors as well as to the old-style Julian Calendar (which is several days behind the Gregorian). The following table shows Gregorian and Japanese era dates. It shows the Japanese era format in full, with abstract multi-byte characters for the Japanese characters.
Then you would change the Julian dates in the table to Gregorian as follows:
Julian Date | Gregorian |
---|---|
1868/09/08 | 1868/09/20 |
1912/07/30 | 1912/08/12 |
1912/07/31 | 1912/08/13 |
1926/12/25 | 1927/01/07 |
1926/12/26 | 1927/01/08 |
1989/01/07 | 1989/01/20 |
1989/01/08 | 1989/01/21 |
... | |
1995/01/01 | 1995/01/14 |
EGL supports ERA-based date-time values formatting or parsing with a slight extension of data-time end-user formats. EGL reserves two characters for specifying the calendar in the data-time end-user formats:
For example, assuming that strLib.defaultDateFormat = "JaGyyyy/MM/dd", then the following statement assigns 1995/01/01 to the date variable.
//assuming A1A2 and B1B2 represent multi-byte Japanese characters for some specific Japanese era.
dateVariableName date = "A1A2B1B207/01/01"
This interim fix contains fixes for problems in the EGL
component. APAR numbers are in parentheses:
Interim Fix 003 contains numerous additional fixes in the following areas:
The following are considerations for converting applications from Informix 4GL to EGL
With this interim fix it is no longer necessary to set the build descriptor for each converted project. Instead, you can set a default build descriptor for a given workspace by selecting from the main menu Window > Preferences > EGL > Default Build Descriptor. When doing this, make sure you do not have "genProject" or "genDirectory" set in the default build descriptor. For additional information of Build descriptor file refer to Help > Help Contents.
The order of the screen array OnEvent actions is slightly different between I4GL and that which is execute for EGL. These differences only exist when the BEFORE_DELETE, AFTER_DELETE, and AFTER_INSERT OnEvent actions invoke the function "gotoField".
The following table lists the order of the actions for I4GL and EGL. Note again that this action difference only occurs when the Screen Array Action executes the "gotoField" function.
Screen Array Action | I4GL Action Order | EGL Action Order |
---|---|---|
BEFORE DELETE | BEFORE_DELETE AFTER_DELETE AFTER_ROW BEFORE_FIELD |
BEFORE_DELETE AFTER_FIELD BEFORE_FIELD AFTER_DELETE AFTER_ROW BEFORE_ROW BEFORE_FIELD |
AFTER DELETE | AFTER_DELETE AFTER_ROW BEFORE_FIELD |
AFTER_DELETE AFTER_ROW BEFORE_ROW BEFORE_FIELD |
AFTER INSERT | AFTER_INSERT AFTER_ROW BEFORE_FIELD |
AFTER_INSERT BEFORE_FIELD |
Informix 4GL message files conversion strategy has changed in 6.0.1 interim fix 003.
Prior to 6.0.1 interim fix 003, the I4GL conversion tool used a default mapping of Informix Locale to Java encoding; this was totally hidden. Every release of the JDK has been supporting more encoding for a given locale, but you could not take advantage of this enhancement to JDK in the conversion tool.
The configuration file now supports an additional attribute, "encoding", for element "msgfiles". This is a optional attribute which gets automatically populated by the wizard with the default mapping used by the conversion tool. You can change this based on the character sets supported by the JDK, and this changed value will be used during conversion of native messages into Unicode.
Note that not all Informix locales are supported in Java and any unsupported locales will be ignored by the conversion tool. The Conversion Tool Wizard will generate the following
encoding="UNKNOWN"
for all Informix locales that do not have any equivalent Java encoding.
For example, Informix locale "zh_tw.sbig5" is Informix GLS specific and does not have any mapping in JAVA. You will have to either ignore this or rewrite these messages in "zh_tw.big5" to run through the conversion tool.
Given a 4GL message file the conversion tool will now do the following:
For example: Given a configuration file with message elements for conversion project is
....
<msgfiles locale="en_us.8859-1" encoding="ISO8859_1">
<file>english/4gl.msg</file>
</msgfiles>
<msgfiles locale="ja_jp.sjis-s" encoding="Cp943C">
<file>japanese/4gl.msg</file>
</msgfiles>
.....
This says there are two message files in the project both with same name "4gl.msg" but in different directories and are in different locales. After conversion the following files will be created by the conversion tool:
<EGL ROOT DIR>/MessageSource/en_us/8859-1/4gl.properties
<EGL ROOT DIR>/MessageSource/ja_jp/sjis-s/4gl_ja.properties
If the converted application is executed in a Japanese environment,
make sure that "
Unlike 4GL, EGL does not support a variable number of arguments to be passed to EGL function calls. The Conversion tool could manufacture dummy variables to overcome this problem at the time of the conversion, but the result can cause serious problems with the business logic of the application. Therefore, the Conversion tool will not do this at the time of conversion. You are required to resolve this as a POST CONVERSION process.
For example, the following code snippet in 4GL is a valid construct that is not supported by the Conversion tool:
MAIN
DEFINE ret INT
CALL foo(1,2) returning ret
# ^
#---------------| After conversion fix the missing argument for this CALL() statement
CALL foo(1,2,3) returning ret
END MAIN
FUNCTION foo(var1, var2, var3)
DEFINE var1 INT, var2 INT, var3 INT
RETURN var3
END FUNCTION
When a report file is first converted from 4GL to EGL, the .jrxml file shows a validation error. This problems stems from the EGL Generation phase not being done during an Eclipse build, while a Jasper report is built during an Eclipse build. When you import an EGL Report Handler and a Jasper report that relies on the generated report, the EGL Report handler is compiled and queued up for generation, and the Jasper Report is compiled. The Jasper report compilation results in an error because the generated Java for the report has not yet been produced. After the Eclipse build, the EGL Report Handler is generated, but the Jasper Report is not re-compiled.
For the 6.0.1 interim Fix 003 release, a dependency graph for the Jasper Report builder has been added, which records which Java classes are depended on by which Jasper Reports. When one of these classes changes in any way, the dependent Jasper Reports are now re-compiled.
When auto-build is on, the Jasper Reports are now compiled, giving an error. The EGL Report is then generated, which produces the .java and .class file for the report. The Jasper report is then recompiled because of the changed .class file based on the dependency graph information. If you delete the .class file, changes the EGL Report, etc., the Jasper report will be compiled again. If you change the Jasper Report, it will also be compiled.
Informix 4GL uses "MDY4/" as the default date behavior, which a 4GL user can override by setting the DBDATE environment variable at compile run time. For the converted 4GL programs to get the same behavior in EGL, you need to set the "vgj.default.dateFormat" property as "MM/dd/yyyy" (or whatever the appropriate value is for the current application).
You can also set the EGL system variable strlib.defaultDateFormat to get nearly the same effect. For this solution, though, EGL System variables have limited scope. Thus, setting the variable in a library does not allow the same value to be visible in another library or main program.
The property "defaultDateFormat" in the EGL build descriptor file is not currently being handled during the EGL generation process. In the future this value will be handled and processed, but for the current interim Fix 003 release its effect is null and void.
EGL requires the values given in "validValues[]" properties of the form specification to be same as binding variable of the EGL function. At the time of conversion, the Conversion tool cannot accurately predict the data type of the binding variable.
If the valid values are not type compatible with the binding variable, a runtime form validation error - "Error In Field xxx" - will terminate the program. In such cases you will have to manually change the type of values given in "validValues[]" properties to the appropriate binding variable type.
In addition, a form field in Informix I4GL that does not have an explicit type specification will, by default, have a runtime type of CHAR. Dynamic type binding still cannot occur if the EGL function variable is of an incompatible type.
The stage 1 tools for VAGen migration have been updated in this interim fix. You will need to refresh your VA Generator installation with the most recent version, which is at the following location:
d:\rad601\egl\eclipse\plugins\com.ibm.etools.egl.vagenmigration_6.0.1.003\database
where d:\rad601 indicates the location where Rational Application Developer 6.0.1 is installed.
The following changes apply to the VAGen to EGL Migration Guide, Version 6, Release 0 (page numbers are for the English version):
Setting DB2 performance information: After you have created your migration database in Stage 1, you should use the DB2 runstats command to evaluate and set performance information for the DB2 tables. To set the performance information, do the following:
If you have previously created a migration database from Stage 1 and want to take advantage of the performance improvements from this APAR, you must do the following:
For numeric fields on a form, the documented default values are sign=leading and align=right.. However, generated COBOL and Java code were treating the default values as sign=none and align=none. For numeric fields on a form, the documented default values are sign=leading and align=right.. However, generated COBOL and Java code were treating the default values as sign=none and align=none. COBOL generation and Java generation have been changed to honor the documented defaults.
For migrating VAGen customers,
For existing EGL text or print programs or migrated VAGen programs, the behavior of numeric fields that use the default values for the sign or align properties will differ the next time you generate the program. For example, a negative value for a numeric field that previously defaulted to sign=none now behaves as follows for sign=leading:
The product home page for Rational Application Developer is
www.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.
© Copyright IBM Corporation 2000, 2005. All Rights
Reserved.
The XDoclet Documentation included in this IBM product is used with
permission and is covered under the following copyright attribution
statement: Copyright © 2000-2005, XDoclet Team. All rights
reserved.
Portions based on Design Patterns: Elements of Reusable
Object-Oriented Software, by Erich Gamma, Richard Helm,
Ralph Johnson and John Vlissides, Copyright © 1995 by
Addison-Wesley Publishing Company, Inc. All rights reserved.
U.S. Government Users Restricted Rights - Use, duplication or
disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
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.
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.
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.
Each copy or any portion of these sample programs or any derivative work, must include a copyright notice as follows:
© (your company name) (year). Portions of this code are derived from IBM Corp. Sample Programs. © Copyright IBM Corp. 2000, 2005. All rights reserved.
If you are viewing a soft copy of this information, 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.