Map 端口

Map端口使用脚本语言将XML文件转换为任意平面文件格式。

概览

Map端口有两种操作模式,可视化设计器和以脚本为中心的代码视图。设计器支持在文档类型之间可视化地建立简单的关系。更复杂的翻译需要代码视图,它利用强大的脚本语言来创建一个在XML和平面文件结构之间的映射模板。

首先,在“配置”选项卡中上传一个示例源文件和目标文件。如果两个示例文件的结构都允许设计器驱动的映射,那么可视化设计器将填充源和目标字段。该应用程序还将尝试用尽可能多的目标结构填充代码视图窗口。

端口配置

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

配置

端口配置

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

源文件 表示输入文档的XML结构的文件。端口处理的任何文件都应该具有匹配的XML结构。为了支持设计器驱动的映射,该文件必须是简单的XML或CSV结构。
目标文件 表示输出文档结构的文件。要使用设计器驱动的映射,该文件必须是简单的XML或CSV结构。

映射

定义输入和输出文件之间的映射关系。设计器视图可以映射简单的XML和CSV结构,代码视图可以映射更复杂的XML结构。有关更多详细信息,请参见使用设计器和使用代码视图。

自动

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

发送 是否自动处理该端口的消息。
高级配置

本地文件夹

确定文件将从磁盘上的哪个文件夹进行处理,以及文件处理后将放在何处的设置。

输入文件夹(Send) 端口可以发送/上传放在此文件夹中的文件。如果启用了自动发送,端口将自动轮询处理此文件夹中的文件。
输出文件夹(Receive) 端口会将接收/下载的文件放在此文件夹中。如果端口连接到工作流中的另一个端口,文件将不会保留在这里,而是传递到已连接端口的输入/Send文件夹。
已处理文件夹(Sent) 处理文件后,如果启用了保存到已发送文件夹,端口将在此文件夹中放置已发送/已上传文件的副本。

性能

与端口获得的分配资源有关的设置。

最大线程数 线程池在此端口上处理文件所使用的最大工作线程数。 如果设置,则覆盖“配置文件”选项卡中的默认设置。
最大文件数 每次将工作线程分配给端口时,端口将处理的最大文件数。 如果设置,则覆盖“配置文件”选项卡中的默认设置。

其他配置

先前类别中未包含的配置。

发送过滤器 全局模式过滤器,以确定端口将处理Send文件夹中的哪些文件(例如* .txt)。 负模式可用于指示不处理的文件(例如-*.tmp)。 多个模式可以用逗号分隔,除非找到完全匹配的内容,否则后面的过滤器优先。
本地文件映射 用于确定本地文件名(由端口处理)的文件名称。 以下宏可用于引用上下文信息:%ConnectorId%, %Filename%, %FilenameNoExt%, %Ext%, %ShortDate%, %LongDate%, %RegexFilename:%, %DateFormat:%, %ControlNumber%, %TransactionControlNumber%, %TransactionCode%, %StandardVersion%. As an example: %FilenameNoExt%_%ControlNumber%%Ext%
父端口 除非应在现有端口配置中明确覆盖设置,否则应从中继承设置的端口。 必须将其设置为与当前端口相同类型的端口。
日志信息 已处理文件的日志是否将包括文件本身的副本。
保存至Sent文件夹 端口已处理的文件是否应复制到端口的“Sent”文件夹。

使用设计器

可视化设计器仅适用于CSV和简单的XML文件。下面是一个简单的XML文档作为源文件的例子:

此示例源文件可能与以下CSV文档配对作为目标文件:

id,first name,last name,time

124455,Bob,Smith,2017-07-18T17:38:53-04:00

当这些文件配置为源文件和目标文件时,设计器显示源文件中每个源字段的行(actor_id, first_name, and last_name)。对于源中的每个字段,应通过下拉菜单选择适当的目标列。应用程序将根据列的名称自动尝试匹配源和目标字段。在上面的例子中,actor_id行将自动与id列匹配。

使用代码视图

代码视图提供了使用脚本手动生成映射模板的能力。这允许对可能的输入和输出格式进行更精细的控制。代码视图定义了目标文件呈现后的外观,脚本使用来自源文档的值动态填充模板。脚本都以“rsb”前缀开头,例如:。代码视图中非脚本的任何内容都将作为输出文件的一部分。

导航XML输入

脚本支持导航复杂的XML结构,以便从源文件中解析出值。xmlDOMSearch操作以xpath作为输入,并在给定路径上加载XML结构。此操作针对源文档中找到的xpath的每个实例循环;要加载整个文档并避免循环,请将XML源的根元素作为xmlDOMSearch的输入。例如:

一旦加载了XML文档,xpath格式化程序就支持从指定xpath处的XML中读取值。此格式化程序接受绝对XPath以及相对于xmlDOMSearch加载的路径的XPath。xpath格式化程序和所有格式化程序一样,只能在方括号内使用[]。例如:

将以下简单的XML作为上述脚本的示例输入:

在本例中,xmlDOMSearch操作将循环遍历“root”中的每个“author”元素。在每个“author”循环中,“name”元素的值作为输出文件中的内容读取。这种情况下的输出文件如下所示:

Stephen King Kurt Vonnegut

模板输出数据

代码视图用作输出文件的模板,ArcScript将值填入定义的模板。举个简单的例子,如果数据应该格式化为逗号分隔值,这些逗号可以作为代码视图的一部分,为脚本函数提供结构。因此,CSV文件可以从比设计器模式允许的更复杂的XML结构中生成。

以下面的XML为例,它包含阻止使用设计器模式的嵌套元素:

通过将适当的路径传递给脚本的xpath格式化程序,可以轻松检索嵌套元素。这些格式化程序可以放在逗号内和标题名之后,以提供所需的CSV结构,另外一个csvescape格式化程序确保这些值被正确引用:

通过不断的模板数据和脚本调用的混合,可以生成各种文本文件。

附加脚本功能

由于完整的脚本在代码视图中可用,因此可能需要在模板中利用脚本操作。例如,如果源文件只包含数据库中某个项的标识,但需要该项的实际名称,则可以使用数据库查询操作来查找相应标识的名称。

脚本还支持映射模板中的条件逻辑。rsb:if关键字是可用于帮助在模板中执行条件逻辑的许多关键字之一。例如,如果源文件包含有关QuickBooks中客户的信息,可能需要为余额未清的客户执行不同的业务逻辑,而不是全额支付的客户。这个用例的一个简单例子可能如下所示:

了解更多EDI信息,请您电话 150-0298-3180 / 177-8250-8152 或邮件 edi@kasoftware.cn 联系我们。点击下方蓝色按钮,即可免费试用EDI软件。

注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。

标签: , , , , , ,
文章分类 EDI, 解决方案