由于在不同运行时环境中解释数据的方式存在差别,因此,程序可能需要对从一种环境传递到另一种环境的数据进行转换。数据转换是在 Java™ 运行时发生的。
在这种情况下,可以在引用被调用程序的 callLink 元素中指定转换表。另外,也可以(在该 callLink 元素中)指示系统变量 sysVar.callConversionTable 在运行时标识转换表。
在这种情况下,可以在引用得到控制权的程序的 asynchLink 元素中指定转换表。另外,也可以(在该 asynchLink 元素中)指示系统变量 sysVar.callConversionTable 在运行时标识转换表。
在这些情况下,在系统变量 sysVar.formConversionTable 中指定双向转换表。
例如,如果代码将值放在两个重新定义的记录的其中一条记录中,每个记录都与被传递给另一程序的记录引用同一个内存区,则将使用运行时转换。假定传递的数据的特征根据被赋值的重新定义的记录的不同而有所不同。在这种情况下,在生成时不能了解数据转换的需求。
在这种情况下,表名是一个指示在运行时所需要的转换类型的符号。
语言 | 被调用程序的平台 | ||
---|---|---|---|
UNIX® | Windows® 2000/NT/XP | z/OS UNIX System Services 或 iSeries™ Java | |
阿拉伯语 | CSOJ1046 | CSOJ1256 | CSOJ420 |
简体中文 | CSOJ1381 | CSOJ1386 | CSOJ1388 |
繁体中文 | CSOJ950 | CSOJ950 | CSOJ1371 |
Cyrillic | CSOJ866 | CSOJ1251 | CSOJ1025 |
丹麦语 | CSOJ850 | CSOJ850 | CSOJ277 |
东欧语系 | CSOJ852 | CSOJ1250 | CSOJ870 |
英国英语 | CSOJ850 | CSOJ1252 | CSOJ285 |
美国英语 | CSOJ850 | CSOJ1252 | CSOJ037 |
法语 | CSOJ850 | CSOJ1252 | CSOJ297 |
德语 | CSOJ850 | CSOJ1252 | CSOJ273 |
希腊语 | CSOJ813 | CSOJ1253 | CSOJ875 |
希伯莱语 | CSOJ856 | CSOJ1255 | CSOJ424 |
日语 | CSOJ943 | CSOJ943 | CSOJ1390(片假名 SBCS)和 CSOJ1399(拉丁语 SBCS) |
韩国语 | CSOJ949 | CSOJ949 | CSOJ1364 |
葡萄牙语 | CSOJ850 | CSOJ1252 | CSOJ037 |
西班牙语 | CSOJ850 | CSOJ1252 | CSOJ284 |
瑞典语 | CSOJ850 | CSOJ1252 | CSOJ278 |
瑞士德语 | CSOJ850 | CSOJ1252 | CSOJ500 |
土耳其语 | CSOJ920 | CSOJ1254 | CSOJ1026 |
如果从 Java 中调用程序时未在链接选项部件中指定转换表值,则缺省转换表是用于英语(美国)的转换表。
记录和结构的数据转换是根据缺少子结构的结构项的声明来进行的。
类型为 CHAR、DBCHAR 或 MBCHAR 的数据是根据 Java 转换表(用于在 EGL 生成的调用程序中进行的转换)来转换的。
不会对填充符数据项(没有名称的数据项)或类型为 DECIMAL、PACF、HEX 或 UNICODE 的数据项执行任何转换。
在对 MBCHAR 数据进行的从 EBCDIC 至 ASCII 的转换中,转换例程将删除 Shift-out/Shift-in(SO/SI)字符,并在数据项末尾插入相同数目的空格。在从 ASCII 至 EBCDIC 的转换中,转换例程在双字节字符串两边插入 SO/SI 字符,并在可填写到字段中的最后一个有效字符处截断值。如果 MBCHAR 字段在变长记录中并且当前记录结尾位于 MBCHAR 字段中,则会调整记录长度以反映插入或删除 SO/SI 字符。记录长度指示当前记录在何处结束。
如果调用程序或被调用程序的平台使用 Intel™ 二进制格式而其它平台不使用该格式,则对于类型为 BIN 的数据项,转换例程会使项的字节顺序相反。
对于类型为 NUM 或 NUMC 的数据项,转换例程会使用 CHAR 算法来转换除了最后一个字节之外的所有字节。根据下表中显示的十六进制值来转换符号半字节(字段中最后一个字节的前半个字节)。
类型为 NUM 的 EBCDIC | 类型为 NUMC 的 EBCDIC | ASCII |
---|---|---|
F(正号) | C | 3 |
D(负号) | D | 7 |