Lookup 端口支持从数据源获取值并将其插入到现有文件中。
总览
Lookup端口使用知行EDI系统工作流中另一个端口的连接配置连接到数据源。 当端口处理输入文件时,端口通过已配置的连接发出自定义查询,并将结果存储在已处理的文件中。 这些响应值将作为标头值或已配置的XPath中的XML元素插入输入文件中。
当重复从数据源中查找值时,Lookup端口利用缓存来提高性能。
端口配置
本节包含所有可配置的端口的属性。
配置
端口配置
与端口核心操作相关的设置。
数据源 | 用于建立到数据源连接的端口。 Lookup端口将使用该端口的配置来确定要连接到的数据源,如何连接到它以及在连接时需要使用的凭证。 |
查找设置
与查询语句以及如何解释响应有关的设置。
目标类型 | 是将查询响应作为标头值插入到已处理的文件中,还是在指定的XPath处插入XML元素。 |
目标 | 如果“目标类型”设置为XPath,则此值为XPath,查找响应值将在该XPath处插入到输入XML文档中。 如果“目标类型”设置为“Header”,则此值为标题的名称,其值将设置为响应值。 |
查询语句 | 针对数据源执行的查询。 该查询应获取要插入到输入文件中的值。 可以使用以下语法在此查询中引用输入文件中的值: ${XPATH:/path/to/element} OR ${HEADER:HeaderName} |
使用第一个结果 | 当从查询查询返回多个结果时,查询连接器可以引发错误或使用第一个结果。 启用此字段可以使用第一个结果,而不是引发错误。 |
缓存
与端口维护的缓存有关的设置。
其用缓存 | 端口是否应维护缓存以减少对数据源执行的查询数量。 |
缓存容限 | 针对数据源刷新缓存之前,缓存将使用的持续时间。 此字段的时间单位由缓存容限单位控制。 |
缓存容限单位 | 缓存容限字段的时间单位。 |
重置缓存 | 通过查询数据源自动刷新缓存。 |
自动
与端口自动处理文件有关的设置。
发送 | 到达端口的消息是否将被自动处理。 |
高级配置
本地文件夹
以下设置可以选择要处理的文件所在的文件夹以及在处理后将放置的文件夹。
输入文件夹(Send) | 端口可以处理放置在此文件夹中的文件。 如果启用了“发送自动化”,则端口将自动轮询此位置的文件以进行处理。 |
输出文件夹(Receive) | 端口完成文件处理后,结果将放置在此文件夹中。 如果端口已连接到流程中的另一个端口,则文件将不会保留在此处,而是会转发到所连接端口的“输入/发送”文件夹中。 |
已处理的文件夹(Sent) | 处理文件后,如果启用了“保存到已发送文件夹”,端口会将已处理文件的副本放置在此文件夹中,该文件的副本将不会转发到工作流中的下一个端口。 |
性能
与向端口分配资源有关的设置。
最大线程数 | 线程池在此端口上处理文件所使用的最大工作线程数。 此设置将覆盖“配置文件”选项卡中的默认设置。 |
最大文件数 | 每次将工作线程分配给端口时,端口将处理的最大文件数。 此设置将覆盖“配置文件”选项卡中的默认设置。 |
其他配置
先前类别中未包含的设置。
本地文件名称 | 用于确定本地文件名的文件名,该本地文件名由端口处理。 以下宏可用于引用上下文信息: %ConnectorId%, %Filename%, %FilenameNoExt%, %Ext%, %ShortDate%, %LongDate%, %RegexFilename:%, %DateFormat:%, %ControlNumber%, %TransactionControlNumber%, %TransactionCode%, %StandardVersion%. As an example: %FilenameNoExt%_%ControlNumber%%Ext% |
日志消息 | 已处理文件的日志是否将包括文件本身的副本。 |
保存到已发送文件夹 | 端口处理的文件是否应复制到端口的“已发送(Sent)”文件夹。 |
发送过滤器 | 全局模式过滤器,用于确定端口将处理发送文件夹中的文件类型(例如* .edi)。 反向模式可以用于指定端口不应该处理的文件类型(例如-*。tmp)。 多个模式可以用逗号分隔,除非找到完全匹配的内容,否则后面的过滤器优先。 |
示例
用例
假设需要将特定客户的发票输入QuickBooks。 QuickBooks要求包含一个内部CustomerID字段才能插入发票,但是只有客户名是已知的。Lookup端口可用于在QuickBooks中查询特定客户名称的CustomerID,并将其插入发票数据中。然后可以将带有客户ID的发票发到QuickBooks端口进行插入操作。
输入文件
QuickBooks端口接收格式化为XML的发票数据。在这种情况下,由Lookup端口处理的发票文件已经转换为XML。此XML的结构应扁平化,以便应插入QuickBooks的每个值都是单个插入单元的子元素,如下所示:
1 2 3 4 5 6 7 8 |
<Items> <Invoices> <InvoiceNumber>123 </InvoiceNumber> <Date>01012019</Date> <Amount>921.22</Amount> <Customer>Marshall Rosenberg</Customer> </Invoices> </Items> |
配置
QuickBooks端口必须是已经正确的连接到QuickBooks,并且该端口应设置为Lookup端口的数据源。
由于输入文件是XML,且目标响应数据应插入此XML中,因此目标类型(Data Source)应设置为“ XPath”。
目标(Destination Type)字段应设置为XPath,在其中将在QuickBooks插入中适当包含查找值(CustomerID)。对于此示例,假设应将Customer元素中的当前客户名称替换为CustomerID。在这种情况下,目标(Destination Type)应设置为:/Items/Invoices/Customer 查询语句(Lookup Query)应该设置为返回给定客户名的CustomerID,例如:SELECT CustomerID FROM Customers WHERE CustomerName = ${XPATH:/Items/Invoices/Customer}
结果
通过上述配置,Lookup端口将处理示例输入文件,并在QuickBooks中查询“ Marshall Rosenberg”的CustomerID。此查询返回的ID将替换XML的Customer元素中的“ Marshall Rosenberg”,然后将生成的XML推送到QuickBooks 端口的Output/Receive文件夹中。
注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。