设置 FileOutputFTEOutput 节点的 记录定义 属性

在节点的记录和元素选项卡上设置属性以使用不同的格式写文件。

以下示例基于 将文件写入本地文件系统将文件写入远程 FTP , FTPS 或 SFTP 服务器中描述的示例。 FTEOutput 不进行归档,文件传输使用的是 IBM® MQ 文件传输版 ,而非FTP、FTPS或SFTP。 在所有示例中,均假设向“ FileOutput ”节点发送相同的消息;其中三条发送至“In”终端,一条发送至“Finish File”终端:
  • 按此顺序发送到 FileOutput 节点的 In 终端的三条输入消息:
    • 消息 1:
      <Message>test1</Message>
    • 消息 2:
      <Message>testtwo</Message>
    • 消息 3:
      <Message>testthree</Message>
    例如,这些消息可以由带有消息集的 XMLNSC 域生成,此消息集用于识别使用以下格式的 XML:
    <Message>...</Message>
  • 在发送前三条消息之后发送到 FileOutput 节点的 Finish File 终端的最终消息。 这与此消息中所包含的内容无关。
以下示例描述了生成的一个或多个文件的内容; 创建的文件的处置方式与 将文件写入本地文件系统将文件写入远程 FTP , FTPS 或 SFTP 服务器 主题中相同。

示例 1. 写入的记录由 DOS 或 UNIX 行结束符分隔

此示例与 将文件写入本地文件系统将文件写入远程 FTP , FTPS 或 SFTP 服务器中描述的示例相同。 指定节点的属性,如 将文件写入本地文件系统将文件写入远程 FTP , FTPS 或 SFTP 服务器中所述。

这些属性将导致写一个文件。 此文件包含三条记录,每条记录均以本地系统行终止符终止。 在 Windows 系统中,这是一对回车(X'0D')换行(X'0A')字符;在 UNIX 系统中,这是 X'0A'。
<Message>test1</Message>
<Message>testtwo</Message>
<Message>testthree</Message>

示例 2: 写入的记录由定制定界符来分隔

除了 将文件写入本地文件系统将文件写入远程 FTP , FTPS 或 SFTP 服务器中描述的属性设置外,请在 记录和元素 选项卡上设置以下属性:
属性
记录定义 记录是定界数据
定界符 定制定界符
定制定界符 0D0A
定界符类型 后缀
十六进制的 X'0D0A' 表示一个后跟换行符的回车字符。 在 Windows 系统上,这将生成与示例 1 中创建的文件相同的文件。 在其他系统上,结果可能与示例 1 中的结果不同;示例 1 使用本地系统行结束字符,而示例 2 始终将 X'0D0A' 序列放在每行的末尾。

示例 3: 将写入的记录填充到固定长度

除了 将文件写入本地文件系统将文件写入远程 FTP , FTPS 或 SFTP 服务器中描述的属性设置外,请在 记录和元素 选项卡上设置以下属性:
属性
记录定义 记录是固定长度数据
长度(字节) 30
填充字节(十六进制) 2A
十六进制字符 X'2A' 在 ASCII 中表示星号字符。

各条入局消息的长度分别为 24 字节、26 字节和 28 字节。 每条记录所需的固定长度是 30 字节。 因此各条记录将另外使用 6 个字节、4 个字节或 2 个字节的十六进制字符 X'2A' 来填充。

将写入一个文件。 该文件只包含一行内容:
<Message>test1</Message>******<Message>testtwo</Message>****<Message>testthree</Message>**

示例 4: 写入的记录未由定界符或填充字符分隔

除了 将文件写入本地文件系统将文件写入远程 FTP , FTPS 或 SFTP 服务器中描述的属性设置外,请在 记录和元素 选项卡上设置此属性:
属性
记录定义 记录是未修改的数据

记录没有连接任何填充字符或定界符。

将写入一个内容如下的文件:
<Message>test1</Message><Message>testtwo</Message><Message>testthree</Message>
无任何尾随字节或行结束符。

示例 5: 记录作为整个文件写入

除了 将文件写入本地文件系统将文件写入远程 FTP , FTPS 或 SFTP 服务器中描述的属性设置外,请在 记录和元素 选项卡上设置此属性:
属性
记录定义 记录是整个文件
将创建三个文件,每个文件中包含一条记录:
  • 文件 1:
    <Message>test1</Message>
  • 文件 2:
    <Message>testtwo</Message>
  • 文件 3:
    <Message>testthree</Message>
这些文件在 mqsitransit 目录中使用相 同名称逐个创建。 如果您遵循 将文件写入远程 FTP , FTPS 或 SFTP 服务器中的示例,那么每个文件都将传输到远程 FTP 服务器。 但是,由于每个文件会覆盖前一个文件,因此当任务完成时,只有第三个文件会保留下来。

完成可选传送后,如果保留了副本,所有文件将移入输出目录 C:\FileOutput\TestDir。 根据 FileOutput 节点上的属性 (如 将文件写入本地文件系统将文件写入远程 FTP , FTPS 或 SFTP 服务器中所述) ,移动的第二个文件将替换输出目录中的第一个文件,该文件将在添加到文件名的时间戳记的情况下移动到 mqsiarchive 子目录中。 当第三个文件移入输出目录中时,会使第二个文件转移到 mqsiarchive 子目录,并得到重新命名。 最终的结果是类似于以下的文件:

C:\FileOutput\TestDir\mqsiarchive\20071101_165346_312030_test_output1.xml
C:\FileOutput\TestDir\mqsiarchive\20071101_165347_312030_test_output1.xml
C:\FileOutput\TestDir\test_output1.xml
,它们分别是文件 1、文件 2 和文件 3。 如果启用了 FTP 处理,文件 3 也将放入远程 FTP 服务器目录,文件名为 test_output1.xml