用 COMTIContext 自定义 TRM 和 ELM

事务集成商 (TI) 开发人员可以将自定义格式化事务请求消息 (TRM) 或增强的侦听器消息 (ELM 从客户端程序) 传递到 CICS 系统,并接收自定义格式化的 TRM 或 ELM。

自定义 TRM 或 ELM 通过上下文数据传递。 上下文数据包含在客户端应用程序代码中定义的可选 COMTIContext 参数中,并且必须是方法调用中的最终参数。 必须将发往主机的 TRM 定义为 COM 模型的用户定义类型 (UDT) ,或.NET Framework模型的结构。 UDT 的名称必须以字符 TRMIN 开头。 还必须将主机的 TRM 回复定义为 UDT。 UDT 的名称必须以字符 TRMOUT 开头。 有效 TRM 名称的示例包括:TRMINMyVeryOwn、TRMINStandard、TRMOUTMyVeryOwn 和 TRMOUTStandard。

类型库或结构可以包含多个 TRM 定义,但对于每个方向 (只应包含一个 TRM,即在单个方法调用的 COMTIContext 参数中,一个 TRMIN 和一个 TRMOUT) 。 例如,在 Visual Basic 中,每个 COMTIContext 数组都声明为变体 (单个维度动态数组,即未) 指定出现次数。

如果为同一方向定义多个 TRM,则 TI 运行时仅使用它在上下文数组中遇到的第一个 TRM。 (在某些情况下,遇到的第一个 TRM 可能并不总是添加到上下文数组) 的第一个 TRM。 TI 运行时会忽略数组中剩余的 TRM,直到销毁正在使用的 TRM。 若要确保 TI 运行时使用正确的 TRM,请不要将多个用于同一方向的 TRM 添加到上下文数组。

注意

操作上下文数组的客户端应用程序必须能够在运行时访问相应的文件。 如果使用 Visual Basic6.0,则应用程序必须能够访问 COMTIContext.dll。 如果使用 Visual Basic .NET,则应用程序必须能够访问 Microsoft.HostIntegration.TI.ClientContext.dll。

注意

使用 Visual Basic .NET 时,用作自定义 TRM 的数据结构必须与程序集中的参数相关联。 因此,必须在程序集中创建虚拟方法、分配给 方法的参数以及要用作 TRM 的数据结构。 否则,将无法在 Visual Basic .NET 应用程序中引用 结构。 Visual Basic 6.0 中不需要将 UDT 关联到方法,因为 Visual Basic 6.0 允许引用与方法无关的 UDT。

另请参阅

事务请求消息
如何传递自定义 TRM