核心功能
- 支持 CSV/XML 双向转换,具有可配置的分隔符和编码
- 具有标头检测和自定义列映射能力
- 支持各种字符编码和特殊字符处理
概览
端口配置
本节包含所有可配置的端口属性。设置
配置
与端口 Id 和描述相关的设置。| 设置 | 描述 |
|---|---|
| 端口 Id | 端口的静态、唯一标识符。 |
| 端口类型 | 显示端口类型及其用途的描述。 |
| 端口描述 | 一个可选字段,用于提供端口及其在流中的角色的自由格式描述。 |
端口设置
与端口核心操作相关的设置。其他设置
未包含在先前类别中的设置。| 设置 | 描述 |
|---|---|
| 本地文件方案 | 用于为端口输出的消息分配文件名的方案。可以在文件名中动态使用宏来包含标识符和时间戳等信息。有关更多信息,请参阅 宏。 |
| 行分隔符 | 用于表示行结束的字符序列。默认情况下,这由系统决定,但可以使用此设置覆盖系统行为。使用 CR 或 \r 表示回车符,使用 LF 或 \n 表示换行符。 |
示例文件选项卡
上传示例文件可以方便地在任何连接的 CSV Map 或 XML Map 端口中进行映射。
使用 示例文件 选项卡生成用于 CSV Map 或 XML Map 端口的源或目标 XML 模板。单击 添加示例文件。
- 如果您已有反映数据预期格式和结构的示例文件,请选择 文件上传 并浏览到您的文件。或者,选择 手动创建 直接在应用程序中创建文件。如果您选择 手动创建,请为示例文件命名。单击 下一步。
- 如果您浏览到现有文件,查看文件 选项卡将填充其内容。如果您选择手动创建文件,请在此选项卡上输入示例数据。单击 下一步。
- 翻译和预览 选项卡显示将示例数据转换为 XML 的预览。当您对示例满意时,单击 添加。
高级页面 (Advanced Tab)
| 设置 | 描述 |
|---|---|
| 延迟处理 | 放置在交易选项卡中的文件的处理被延迟的时间量(以秒为单位)。这是一个遗留设置。最佳实践是使用 File 端口来管理本地文件系统,而不是此设置。 |
消息
消息设置确定端口如何搜索消息并在处理后管理它们。
注意:以下设置已弃用,默认处于隐藏状态。只有先前已启用这些设置或将其配置为非默认值的端口才会显示它们。若要保留成功处理的文件副本,请在工作流中右键单击该端口,选择显示成功路径,然后将成功路径连接到 File 端口。
| 设置 | 描述 |
|---|---|
| 保存到已发送文件夹(已弃用) | 将端口处理的文件复制到 Sent 文件夹。默认禁用。保存到 Sent 文件夹中的文件不受静态加密保护。 |
| 已发送文件夹方案(已弃用) | 按所选时间间隔对 Sent 文件夹中的文件进行分组。仅在启用保存到已发送文件夹时适用。 |
日志
用于管理日志创建和存储的设置。
| 设置 | 描述 |
|---|---|
| 日志级别 | 指定要记录在端口日志目录中的信息类型:
|
| 日志文件夹结构 | 指示端口根据选定的时间间隔将日志文件夹中的文件分组。例如,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。例如:
- 根元素的子元素在结果文件中被视为记录(行)
- 每个记录元素的子元素被视为每行中的值
title、year 和 runtime 组成。
打印视图
CSV 转换:使用 XML Map 端口
CSV 运算器
除了知行之桥提供的操作之外,端口还可以提供将功能扩展到 ArcScript 中的操作。 这些端口操作可以像任何其他 ArcScript 操作一样调用,但有两个细节除外:- 它们必须通过
connector.rsc端点调用。 - 它们必须包含认证令牌。
csvListRecords
循环遍历指定 CSV 文件或字符串中的每条记录。有关更多详细信息,请参阅函数。必需参数
- file: CSV 文件的路径。
可选参数
- data: 如果 CSV 数据以字符串形式存在,而不是存储在 CSV 文件中,请使用此参数代替 file。
- columns: 输出中要包含的列的逗号分隔列表(如果未指定,将包含所有列)。
- requireheader: 默认情况下,数据的第一行会被解释为列标题;向此参数传入 false 时,将使用通用列名(例如 c1、c2、c3)。
输出
csvListRecords 操作中的任何脚本都会执行多次:对输入 CSV 文件/数据中的每条记录/行执行一次。在操作中,可以使用 csv 格式化器访问各个 CSV 值。此格式化器将列名作为参数,并输出当前记录中该列的值。 例如,假设 CSV 输入数据包含订单中购买的一组商品,商品名称保存在ItemName 列中。以下脚本生成 XML,在 Item 元素中包含每个 ItemName 值: