您可以在 Compute 节点中使用 ESQL 转换数据,用于对代码页和消息进行编码。如果您的消息流正在处理 WebSphere MQ 消息,则您可以使用 WebSphere MQ 工具(包括取出和放入选项和 WebSphere MQ 数据转换出口)以提供这些转换。如果您不在处理 WebSphere MQ 消息,或者选择不使用 WebSphere MQ 工具,则可以通过在消息流中的 Compute 节点上编写合适的 ESQL 代码来使用 WebSphere Message Broker 工具。
MQMD、MQRFH2 的内容和已用 CWF 物理格式构建模型的 MRM 域中的消息的消息体服从代码页和编码转换。XML、XMLNS 和 JMS 域中的消息和在已用 XML 或 TDS 物理格式构建模型的 MRM 域中的消息的消息体的内容被作为字符串对待。仅代码页转换适用,不需要进行编码转换。
对于以 CWF 物理格式建模的 MRM 域中的消息,可以将输出消息的 MQMD CCSID 和 Encoding 字段以及任何其他头的 CCSID 和 Encoding 字段设置为所需的目标值。
对于用 XML 或 TDS 物理格式构建模型的 MRM 域中的消息,您可以设置输出消息的 MQMD CCSID 字段以及任何其他头的 CCSID 字段。XML 和 TDS 数据作为字符串处理,因此仅取决于 CCSID 转换。
示例 WebSphere MQ 消息有 MQMD 头、MQRFH2 头和消息体。要将此消息转换为大型机 CodedCharSetId 和 Encoding,请在 Compute 节点中对以下 ESQL 进行编码:
SET OutputRoot.MQMD.CodedCharSetId = 500; SET OutputRoot.MQMD.Encoding = 785; SET OutputRoot.MQRFH2.CodedCharSetId = 500; SET OutputRoot.MQRFH2.Encoding = 785;
以下示例说明了修改 CWF 消息,以便可以将其从 WebSphere Message Broker 传递到 z/OS 上的 IMS™ 的必需操作。
您无须为 MQInput1 节点属性设置任何具体值,因为在 MQRFH2 头中消息和消息集是确定的,不需要任何转换。
您必须为入站消息流(MQInput2)的 MQInput 节点中的消息域、集、类型和格式设置值。您不需要设置转换参数。
一个特定的您可能需要将数据从一个代码页转换到另一个的情况是当消息包含新行指示符且正在 EBCDIC 和 ASCII 系统之间传递的时候。在将 EBCDIC NL 转换为 ASCII CR LF中描述了针对此情况必需的转换。