EGL - release notes


1.0 Supported software and specifications
2.0 Limitations
   2.1 I4GL to EGL Conversion Utility: 'null' values are not set to the bound variables when reading from a Console Form
   2.2 I4GL to EGL Conversion Utility: Runtime difference between I4GL and EGL 'FOR' loop statements
   2.3 I4GL to EGL Conversion Utility: Screen records referenced with .* notation are not converted appropriately
   2.4 I4GL to EGL Conversion Utility: the I4GL IF conditions (IF ! xxx or IF xxx) and Boolean expressions are not fully supported in EGL
   2.5 TUI Forms: Use of "validValuesMsgKey" property with non-numeric Form fields
   2.6 Web Services Support: XSD Annotations in data items, records, or record items only apply to Interfaces
   2.7 Web Services Support: WSDL file types supported
   2.8 Web Services Support: Location of Service Binding Library created by wizard
   2.9 EGL debugger
3.0 Known problems
   3.1 Web Services Support: Errors when using multi-dimensional arrays as parameters for J2EE 1.3 projects
   3.2 Web Services Support: Errors when using fixed records with substructures as parameters for J2EE 1.3 projects
   3.3 Web Services Support: Errors when using time or interval data types as parameters for J2EE 1.3 projects
   3.4 Web Services Support: Errors when generating duplicate EGL data Items from multiple WSDL files
   3.5 Host variables for Oracle database access
   3.6 Compiling Jasper files (.jrxml) in EG
   3.7 Migration issues

1.0 Supported software and specifications

The Build Options editor indicates that WebSphere Application Server 5.1 is a supported serverType. However, only WebSphere Application Server versions 5.1.1 or higher are supported.

2.0 Limitations

2.1 I4GL to EGL Conversion Utility: 'null' values are not set to the bound variables when reading from a Console Form

Description: During an openUI statement execution of a console form, the returning values in the bound variables will never contain a ?null? value. In I4GL if no value is entered into a form field, a null value is returned.

Workaround: If your application specifically checks for a ?null? value during or after an openUI statement on a form, the logic will need to be modified to check for an empty string value, rather than null.

2.2 I4GL to EGL Conversion Utility: Runtime difference between I4GL and EGL 'FOR' loop statements

Description: In I4GL, the statement ?for I = 0 to 1 by -1 ? resulted in the for loop code block to be executed zero (0) times. In EGL, this same code block will result in an infinite loop eventually causing an integer out of bounds exception or a stack overflow exception.

Workaround: Rework the EGL for statement so that the for loop code block is executed the number of times you desire. Alternatively, the for loop could be changed into a while statement that executes the code block the desired number of times.

2.3 I4GL to EGL Conversion Utility: Screen records referenced with .* notation are not converted appropriately

Description: At times, the conversion utility expands the screen records for all columns in the table even though only a subset of columns are used to define the screen records.

Workaround: Removing the extraneous column names from the converted EGL statements.

2.4 I4GL to EGL Conversion Utility: the I4GL IF conditions (IF ! xxx or IF xxx) and Boolean expressions are not fully supported in EGL

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.

2.5 TUI Forms: Use of "validValuesMsgKey" property with non-numeric Form fields

When using the EGL Form Editor or editing EGL source by hand for a Form part, the following validation message will be issued when the property "validValuesMsgKey" is used with a form field whose primitive type is non-numeric, for example char or db char:

IWN.VAL.5381.e 76/0 Property: validValuesMsgKey. The value for this property for field ... in form ... is invalid. The property is a numeric item property.

To use this property with a non-numeric primitive, the following workaround is suggested:

  1. Open the file containing the form with the EGL Editor. Right-click the file and select Open with > EGL Editor in the Project Explorer view.
  2. Instead of specifying a primitive type on the declaration of the field for which validValuesMsgKey is set, specify a dataItem part on the field declaration. The dataItem part should specify the same primitive type as the field did.

For example, if the original field was defined as:

ACTION char(1) {inputRequiredMsgKey = "0003", validValues = ["I","S","U","D"], ..., validValuesMsgKey = "0004"}; //This line should have IWN.VAL.5381 error Change the definition of the field to:

ACTION charOneItem {inputRequiredMsgKey = "0003", validValues = ["I","S","U","D"], ..., validValuesMsgKey = "0004"}; //This line should have no error

In the same file, outside of the formGroup, type the following:
DataItem charOneItem char(1) { validValuesMsgKey="1000" } end

2.6 Web Services Support: XSD Annotations in data items, records, or record items only apply to Interfaces

XSD annotations applied to data item definitions, record definitions, and record item declarations that reflect XML schema data type facets found in a Web Service WSDL file only have meaning when used on Interface function parameters and return values derived from a WSDL file.

Example:

DataItem weekend string {@xsd {enumeration=["Saturday", "Sunday"] }} end // this reflects the WSDL restriction on values for weekend

Interface calander

public function weekendPlanner (weekendDay weekend in, . . .); // only argument values Saturday and Sunday can be sent to this Web service function

end

2.7 Web Services Support: WSDL file types supported

The Create EGL Interfaces wizard only supports WSDL files that are RPC/Encoded, RPC/Literal, and Document/Literal (Wrapped). WSDL files that are Document/Literal (Unwrapped) are not supported.

2.8 Web Services Support: Location of Service Binding Library created by wizard

The Create Service Binding Library from a EGL Service wizard does not copy any WSDL files to a different project. If the Service Binding Library is created in a different project than where the service is generated to, the user must manually place a copy of any generated WSDL files referred to by the Service Binding Library in the location indicated by the Web binding.

2.9 EGL debugger

You cannot use the EGL debugger for programs that contain reports. Support for this function will be provided in a future update.

3.0 Known problems

3.1 Web Services Support: Errors when using multi-dimensional arrays as parameters for J2EE 1.3 projects

Services generated as a Web Service or Service Binding Libraries with Web Bindings will generate Java code with compilation errors if multidimensional arrays are used as parameters or defined within records used as parameters in service or interface functions when generated to a Web project with a J2EE 1.3 level.

Service myService

function f1(param string[][][] in) // causes compilation errors when generated as a Web Service to a Web Project with J2EE 1.3

. . .

end

end

Service myService

function f1(param string[] in) // generates OK to a Web Project with J2EE 1.3

. . .

end

end

3.2 Web Services Support: Errors when using fixed records with substructures as parameters for J2EE 1.3 projects

Services generated as a Web Service or Service Binding Libraries with Web Bindings will generate Java code with compilation errors if fixed records that contain substructed data items or data items with occurs > 1 are used as parameters or defined within records used as parameters in service or interface functions when generated to a Web project with a J2EE 1.3 level.

Example:

Record mySubstructuredRecord 10 item1 char(10); 20 item 2 char(10); end

Service myService public function f1(param mySubstructuredRecord in) // causes compilation errors when generated as a Web Service to a Web Project with J2EE 1.3 . . . end end

Record myFlatRecord 10 item1 char(10); 10 item2 char(10); end

Service myService public function f1(param myFlatRecord in) // generates OK to a Web Project with J2EE 1.3 . . . end end

3.3 Web Services Support: Errors when using time or interval data types as parameters for J2EE 1.3 projects

Services generated as a Web Service or Service Binding Libraries with Web Bindings with time or interval data types used as parameters or defined within records used as parameters in service or interface functions generated to a Web project with a J2EE 1.3 level will throw a Java exception during runtime.

3.4 Web Services Support: Errors when generating duplicate EGL data Items from multiple WSDL files

Using the Create EGL Interfaces wizard with two or more WSDL files that contain the same XML schema definition types in the same EGL project will cause duplicate EGL data defintions to be created resulting in EGL validation errors.

3.5 Host variables for Oracle database access

If your EGL program accesses an Oracle database and uses an OPEN statement to open a result set, the SELECT clause of the OPEN statement cannot use host variable names. If host variable names are specified, no values are set in the corresponding element of the using clause of the OPEN statement.

3.6 Compiling Jasper files (.jrxml) in EG

EGL provides a builder that compiles JasperReport files each time they are saved. If your EGL applications include report handlers, make sure that Java SDK 1.3.1 (or a higher level) is on your development machine, and that the SDK bin directory is listed as part of the system PATH Environment Variable. (i.e. C:\jdk1.3.1_14\bin). If you do not have the Java SDK installed, you will get the following type of error when building a .jrxml file: Error compiling report java source file.

3.7 Migration issues

This refresh pack includes several changes to previous EGL syntax. If you have created EGL parts using Version 5.1.2 or Version 6.0 of this product, you will probably see validation errors for these parts after you install this refresh pack. A simple migration tool is provided to update the syntax in your source files. See the EGL help documentation for more information on the EGL V6.0 Migration tool.

Return to the main readme file