事务集成器(TI)运行时环境能够自动在来自主机系统的 COBOL 或报表程序生成器(RPG)数据类型与 Windows 系统编程语言(如 Visual Basic)所用的基于 COM 的自动化数据类型之间进行数据类型转换。 自动转换基于在 TI 项目中设计并创建 TI 组件(类型库)时定义的信息。 此信息与 TI 组件一起存储,由 TI 运行时用于将一个方法的参数从基于 COM 或 .NET 的编程语言的表示形式转换为主机事务程序(TP)能够理解的表示形式。
使用 TI 项目将每个自动化数据类型与主机 TP 中使用的每个 COBOL 或 RPG 数据类型相关联。 TI 提供标准自动化数据类型与 COBOL 或 RPG 数据类型之间的默认映射。 可以接受默认映射,也可以使用 TI 支持的其他映射替代默认值。 TI 项目将转换映射存储在 TI 组件类型库 (.tlb) 文件中。 此转换映射用于:
处理在 TP 和 TI 组件之间移动的数据。
将 TI 组件转换为 TP(导出主机定义)。
将 TP 转换为 TI 组件(导入主机定义)。
如果方法调用中使用的参数未严格类型化,TI 运行时环境会尝试将接收的数据类型强制转换为预期数据类型。 如果强制成功,调用将继续进行。 如果失败,则返回错误。
在运行时,当客户端应用程序使用 TI 自动化接口调用 TI 自动化服务器的方法时,TI 运行时环境使用转换映射来处理发送到大型机 TP 的 in 和 in/out 参数的实际数据转换。 TI 转换 Microsoft® Windows® 数据后,TI 会将方法调用重新格式化为主机系统 APPC/LU 6.2 或 TCP/IP 消息。 然后 TI 使用 Microsoft Host Integration Server SNA 或 TCP/IP 连接将消息转发到大型机。 当大型机 TP 返回 in/out 和 out 参数时,TI 将消息重新格式化以返回到 Windows,将主机数据转换为 Windows 数据,并将返回值和参数发送回客户端应用程序。
定义远程环境(RE)时在 TI 管理器中选择的语言或代码页决定了用于从 UNICODE(自动化端)转换为扩展二进制编码十进制交换代码(EBCDIC)(大型机端)的代码页。 在 TI 管理器中创建 RE 时,可以选择一种语言以接受该语言的默认代码页,或选择特定的代码页。
如果需要转换为不同的目标代码页(例如,在不同国家或地区有目标大型机),因此需要为每个目标代码页设置 RE,因为 TI 不支持依赖区域设置的转换。
可以使用 TI 项目导入 COBOL 或 RPG,或者手动输入方法说明来创建自动化方法。 导入 COBOL 或 RPG 时,每个受支持的 COBOL 数据类型都有默认的自动化类型。 手动创建方法时,每个自动化数据类型都有一个与之关联的默认主机数据类型。
如果不想使用默认的自动化数据类型,可以使用 TI 项目手动更改自动化数据类型。 如果新的自动化类型与现有主机数据类型兼容,则现有的 COBOL 或 RPG 数据类型保持不变。 如果它不兼容,则会更改主机数据类型,从而影响大型机程序。