“构建选项”编辑器指示 WebSphere Application Server 5.1 是受支持的服务器类型。但是,仅支持 WebSphere Application Server V5.1.1 或更高版本。
描述:在执行控制台表单的 openUI 语句期间,有界变量中的返回值将决不会包含 ?null? 值。在 I4GL 中,如果未向表单字段中输入任何值,则会返回 null 值。
变通方法:如果执行表单上的 openUI 语句期间或之后,应用程序特地检查 ?null? 值,则将需要修改逻辑以检查是否存在空字符串值而不是检查字符串是否为 null。
描述:在 I4GL 中,语句 ?for I = 0 to 1 by -1 ? 导致 for 循环代码块执行零(0)次。在 EGL 中,此代码块最终将导致无限循环,从而导致整数超出范围异常或者导致堆栈溢出异常。
变通方法:修改 EGL for 语句,以便 for 循环代码块的执行次数满足您的期望。或者,可以将 for 循环更改为一个 while 语句,而该 while 语句将对该代码块执行期望的次数。
描述:有时,尽管只使用一部分列来定义屏幕记录,但是转换实用程序会展开表中所有列的屏幕记录。
变通方法:从已转换的 EGL 语句中除去额外的列名。
描述:“IF ! xxx”或“IF xxx”中的 IF 条件抛出验证错误。布尔表达式在 EGL 中不受支持并且生成验证错误。
变通方法:“转换实用程序”会根据使用这些 IF 函数的上下文来自动转换这些函数;这种局限性不会影响 I4GL 应用程序转换。在此对它进行了说明,以便 I4GL 用户在使用 EGL 编写新的应用程序时可以知道 IF 条件的支持级别。
对于布尔表达式,将一个条件的布尔值结果转换为数值 0 或 1。
当使用“EGL 表单编辑器”或者手工编辑“表单”部件的 EGL 源代码时,当对基本类型为非数字(例如,char 或 db char)的表单字段使用“validValuesMsgKey”属性时,将发出以下验证消息:
IWN.VAL.5381.e 76/0 属性:validValuesMsgKey。表单...中字段...的此属性的值无效。属性是数字项属性。
要对非数字基本类型使用此属性,建议使用以下变通方法:
- 使用 EGL 编辑器打开包含表单的文件。右键单击该文件并在“项目资源管理器”视图中选择打开方式 > EGL 编辑器。
- 不要在设置了 validValuesMsgKey 的字段声明中指定基本类型,而是在字段声明中指定 dataItem 部件。dataItem 部件应该与字段指定相同的基本类型。
例如,如果原始字段定义为:
ACTION char(1) {inputRequiredMsgKey = "0003", validValues = ["I","S","U","D"], ..., validValuesMsgKey = "0004"}; //This line should have IWN.VAL.5381 error 将该字段的定义更改为:
ACTION charOneItem {inputRequiredMsgKey = "0003", validValues = ["I","S","U","D"], ..., validValuesMsgKey = "0004"}; //This line should have no error
在同一文件中,在 formGroup 外部,输入以下内容:
DataItem charOneItem char(1) { validValuesMsgKey="1000" } end
在 Web Service WSDL 文件中,对于那些应用于数据项定义、记录定义和记录项声明并且反映了 XML 模式数据类型方面的 XSD 注释,只有在接口函数参数上使用这些 XSD 注释时才有意义,并且返回值是从 WSDL 文件中派生出来的。
示例:
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
“创建 EGL 接口”向导仅支持属于“RPC/编码”、“RPC/文字”和“文档/文字”(封装)类型的 WSDL 文件。不支持属于“文档/文字(未封装)”类型的 WSDL 文件。
“从 EGL 服务创建服务绑定库”向导不会将任何 WSDL 文件复制到另一个项目。如果创建“服务绑定库”的项目与将生成服务的项目不同,则用户必须将“服务绑定库”引用的任何已生成 WSDL 文件的副本手工放置到由 Web 绑定指示的位置。
您不能对包含报告的程序使用 EGL 调试器。将来更新中将提供对此功能的支持。
当使用 J2EE 1.3 级别生成 Web 项目时,如果将多维数组用作参数,或者在用于服务或接口函数参数的记录中定义了多维数组,则对于生成为 Web Service 的服务,或者生成为带有 Web 绑定的服务绑定库的服务,在生成 Java 代码时将会有编译错误。
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
当使用 J2EE 1.3 级别生成 Web 项目时,如果将包含具有子结构的数据项或者出现次数大于 1 的数据项的固定记录用作参数,或者在用于服务或接口函数参数的记录中定义了多维数组,则对于生成为 Web Service 的服务,或者生成为带有 Web 绑定的服务绑定库的服务,在生成 Java 代码时将会有编译错误。
示例:
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
当使用 J2EE 1.3 级别生成 Web 项目时,如果将时间或时间间隔数据类型用作参数,或者在用于服务或接口函数参数的记录中定义了时间或时间间隔数据类型,则生成为 Web Service 的服务,或者生成为带有 Web 绑定的服务绑定库的服务,在运行时将抛出 Java 异常。
当对同一 EGL 项目中包含相同 XML 模式定义的两个或多个 WSDL 文件使用“创建 EGL 接口”向导时,将创建相同的 EGL 数据定义,从而产生 EGL 验证错误。
如果 EGL 程序访问 Oracle 数据库并使用 OPEN 语句来打开结果集,那么 OPEN 语句的 SELECT 子句不能使用主机变量名称。如果指定了主机变量名称,那么在 OPEN 语句所使用的子句的相应元素中将不设置值。
EGL 提供了一个构建器,该构建器在每次保存 JasperReport 文件时编译它们。如果 EGL 应用程序包括报告处理程序,那么确保 Java SDK 1.3.1(或更高级别)在开发机器上并且 SDK bin 目录列示为系统 PATH 环境变量的一部分。(即,C:\jdk1.3.1_14\bin)。如果未安装 Java SDK,在构建 .jrxml 文件时将获得下列类型的错误:编译报告 java 源文件时出错。
此更新包包含对先前 EGL 语法的一些更改。如果使用此产品的 V5.1.2 或 V6.0 创建了 EGL 部件,在安装此更新包时您可能会看到有关这些部件的验证错误。提供了一个简单的迁移工具来更新源文件中的语法。有关 EGL V6.0 迁移工具的更多信息,请参阅 EGL 帮助文档。
©Copyright IBM Corporation 2000, 2005. All Rights Reserved.