跳转到主要内容
CSV 端口可以将逗号分隔值 (CSV) 文件转换为 XML,也可以从 XML 生成 CSV 文件。

核心功能

  • 支持 CSV/XML 双向转换,具有可配置的分隔符和编码
  • 具有标头检测和自定义列映射能力
  • 支持各种字符编码和特殊字符处理

概览

端口配置

本节包含所有可配置的端口属性。

设置

配置

与端口 Id 和描述相关的设置。
设置描述
端口 Id端口的静态、唯一标识符。
端口类型显示端口类型及其用途的描述。
端口描述一个可选字段,用于提供端口及其在流中的角色的自由格式描述。

端口设置

与端口核心操作相关的设置。

其他设置

未包含在先前类别中的设置。
设置描述
本地文件方案用于为端口输出的消息分配文件名的方案。可以在文件名中动态使用宏来包含标识符和时间戳等信息。有关更多信息,请参阅 宏。
行分隔符用于表示行结束的字符序列。默认情况下,这由系统决定,但可以使用此设置覆盖系统行为。使用 CR 或 \r 表示回车符,使用 LF 或 \n 表示换行符。

示例文件选项卡

上传示例文件可以方便地在任何连接的 CSV Map 或 XML Map 端口中进行映射。

使用 示例文件 选项卡生成用于 CSV Map 或 XML Map 端口的源或目标 XML 模板。单击 添加示例文件。

  1. 如果您已有反映数据预期格式和结构的示例文件,请选择 文件上传 并浏览到您的文件。或者,选择 手动创建 直接在应用程序中创建文件。如果您选择 手动创建,请为示例文件命名。单击 下一步。
  2. 如果您浏览到现有文件,查看文件 选项卡将填充其内容。如果您选择手动创建文件,请在此选项卡上输入示例数据。单击 下一步。
  3. 翻译和预览 选项卡显示将示例数据转换为 XML 的预览。当您对示例满意时,单击 添加。

高级页面 (Advanced Tab)

设置描述
延迟处理放置在交易选项卡中的文件的处理被延迟的时间量(以秒为单位)。这是一个遗留设置。最佳实践是使用 File 端口来管理本地文件系统,而不是此设置。

消息

消息设置确定端口如何搜索消息并在处理后管理它们。

设置描述
保存到已发送文件夹选中此项可将端口处理的文件复制到该端口的“已发送”文件夹中。
已发送文件夹方案端口根据选定的时间间隔对 已发送 文件夹中的文件进行分组。例如,Weekly 选项指示端口每周创建一个新的子文件夹,并将本周发送的所有文件存储在该文件夹中。空白设置告诉端口将所有文件直接保存在 已发送 文件夹中。对于处理许多事务的端口,使用子文件夹可以帮助保持文件有序并提高性能。

日志

用于管理日志创建和存储的设置。

设置描述
日志级别指定要记录在端口日志目录中的信息类型:
  • None - 不创建任何日志。
  • Error - 仅当端口遇到错误时才创建日志。
  • Warning - 仅当端口发出警告时才创建日志。
  • Info - 记录工作流的一般信息,包括任何错误和警告(如果适用)。
  • Debug - 记录成功和失败工作流的详细调试信息。
  • Trace - 记录成功和失败工作流的详细跟踪信息。
请注意:Debug 和 Trace 级别的日志可能会记录敏感信息,包括消息内容和 SSL 证书。尽管连接属性(例如密码)被屏蔽了,但在与您的组织外部共享它们之前,请查看此级别的日志以避免泄漏敏感信息。
日志文件夹结构指示端口根据选定的时间间隔将日志文件夹中的文件分组。例如,Weekly 选项指示端口每周创建一个新的子文件夹,并将该周的所有日志存储在该文件夹中。空白设置告诉端口将所有日志直接保存在日志文件夹中。对于处理许多事务的端口,使用子文件夹有助于保持日志的有序性并提高性能。
保留消息副本指示端口在日志目录中保存最新消息副本的切换。请注意,端口每个子文件夹只保留一个消息,并且端口在再次运行时会覆盖以前保存的消息。

其他设置

特殊设置适用于特定用例。

设置描述
其他设置允许在以分号分隔的列表中配置隐藏的端口设置,例如 setting1=value1;setting2=value2。正常的端口用例和功能不需要使用这些设置。

自动化页面 (Automation Tab)

自动化设置

与端口自动处理文件相关的设置。

设置描述
发送 (Send)到达端口的消息是否自动进行处理。

性能

与端口资源分配相关的设置。

设置描述
最大工作线程数此端口上处理文件时从线程池中消耗的最大工作线程数。如果设置,则会覆盖 高级设置 页面的 性能设置 部分的默认设置。
最大文件数分配给端口的每个线程发送的最大文件数。如果设置,则会覆盖 高级设置 页面的 性能设置 部分的默认设置。

通知选项卡

SLA 选项卡

将 CSV 转换为 XML

当 CSV 文件转换为 XML,得到的 XML 将包含以下结构:
原始文件中的每一行(记录)都成为根元素 Items 的子元素。所有记录元素的名称由端口设置中设置的 记录名称 选项确定。每个记录元素都有与输入文件每行中的值相对应的子元素。 某些 CSV 文件包含一行消息头信息,为文件中的值提供上下文。当启用 存在列标题 设置时,将解析此标题行,并将解析后的标题用作值元素(记录元素的子元素)的元素名称。否则,值元素将被赋予通用名称,例如 field_0、field_1 等。

将 XML 转换为 CSV

要将 XML 转换为 CSV 文件,输入 XML 必须具有“平面”结构。这意味着,忽略 Items 根元素,XML 结构的深度为 2。例如:
XML 解释如下:
  • 根元素的子元素在结果文件中被视为记录(行)
  • 每个记录元素的子元素被视为每行中的值
如果启用 存在列标题 选项,则会将标题行插入到生成的 CSV 文件中,其中包含每个值元素的名称,以提供值的上下文。在上面的示例中,此标题行将由 title、year 和 runtime 组成。

打印视图

CSV 转换:使用 XML Map 端口

CSV 运算器

除了知行之桥提供的操作之外,端口还可以提供将功能扩展到 ArcScript 中的操作。 这些端口操作可以像任何其他 ArcScript 操作一样调用,但有两个细节除外:
  1. 它们必须通过 connector.rsc 端点调用。
  2. 它们必须包含认证令牌。
例如,使用这两条规则调用端口操作可能如下所示:
下面列出了 CSV 端口功能特定的操作。

csvListRecords

循环遍历指定 CSV 文件或字符串中的每条记录。有关更多详细信息,请参阅函数。

必需参数

  • file: CSV 文件的路径。

可选参数

  • data: 如果 CSV 数据以字符串形式存在,而不是存储在 CSV 文件中,请使用此参数代替 file。
  • columns: 输出中要包含的列的逗号分隔列表(如果未指定,将包含所有列)。
  • requireheader: 默认情况下,数据的第一行会被解释为列标题;向此参数传入 false 时,将使用通用列名(例如 c1、c2、c3)。

输出

csvListRecords 操作中的任何脚本都会执行多次:对输入 CSV 文件/数据中的每条记录/行执行一次。在操作中,可以使用 csv 格式化器访问各个 CSV 值。此格式化器将列名作为参数,并输出当前记录中该列的值。 例如,假设 CSV 输入数据包含订单中购买的一组商品,商品名称保存在 ItemName 列中。以下脚本生成 XML,在 Item 元素中包含每个 ItemName 值:

宏

示例