SOAP 示例

您可以使用 CICS® TS SOAP 应用程序从套接字或 IBM® MQ 消息队列中检索 UTF-8 或 UTF-16 消息,将消息以 UTF-8 格式放入容器中,将 EBCDIC 数据结构放入同一通道上的其他容器中,或者通过传递通道对后端 AOR 上的处理程序进行分布式程序链接 (DPL) 调用。

同样在 CICS TS 上运行的后端处理程序可以使用 EXEC CICS GET CONTAINER 命令来检索 EBCDIC 数据结构或消息。 它可以获取 UTF-8 或 UTF-16中的消息,也可以获取其自己的或区域的 EBCDIC 代码页中的消息。 同样,它可以使用 EXEC CICS PUT CONTAINER 命令将数据以 UTF-8, UTF-16或 EBCDIC 格式放入容器中。

要在区域的 EBCDIC 代码页中检索其中一条消息,处理程序可以发出以下命令:

EXEC CICS GET CONTAINER(
input_msg
) INTO(
msg
)
由于未指定 INTOCCSID 和 INTOCODEPAGE 选项 ,因此消息数据将自动转换为区域的 EBCDIC 代码页。 (这假定用于在通道中存储消息数据的 PUT CONTAINER 命令指定了 DATATYPE CHAR; 如果它指定了 DATATYPE BIT ,那么缺省情况下不可能进行转换。)
要在区域的 EBCDIC 代码页中返回一些输出,处理程序可以发出以下命令:

EXEC CICS PUT CONTAINER(
output
) FROM(
output_msg
)
由于未指定 CHAR ,因此不允许进行数据转换。 因为未指定 FROMCCSID 和 FROMCODEPAGE 选项 ,所以消息数据将采用区域的 EBCDIC 代码页。
要以 UTF-8格式检索其中一条消息,必须指定 INTOCCSID 或 INTOCODEPAGE 选项以标识代码页并防止数据自动转换为区域的 EBCDIC 代码页。 处理程序可以发出以下命令:

EXEC CICS GET CONTAINER(
input_msg
) INTO(
msg
) INTOCCSID(utf8)
在这种情况下, utf8 是定义为全字的变量,并且初始化为 1208 ,即 UTF-8的编码字符集标识或 CCSID。 如果您希望将 IANA 字符集名称用于代码页,那么可以使用 INTOCODEPAGE 选项而不是 INTOCCSID 选项:

EXEC CICS GET CONTAINER(
input_msg
) INTO(
msg
) INTOCODEPAGE(utf8)
在这种情况下, utf8 是一个变量,定义为长度为 56 的字符串,并初始化为 "utf-8"。
要以 UTF-8返回某些输出,服务器程序可以发出以下命令:

EXEC CICS PUT CONTAINER(
output
) FROM(
output_msg
) FROMCCSID(utf8)
或者:

EXEC CICS PUT CONTAINER(
output
) FROM(
output_msg
) FROMCODEPAGE(utf8)
其中变量 utf8 的定义和初始化方式与 INTOCCSID 和 INTOCODEPAGE 的定义和初始化方式相同。 FROMCCSID 或 FROMCODEPAGE 选项指定消息数据当前为 UTF-8 格式。 因为指定了 FROMCCSID 或 FROMCODEPAGE ,所以隐含了 CHAR 的 DATATYPE ,所以允许数据转换。