知行之桥的File端口能够实现从指定目录下载文件,也可以向指定目录上传文件。
在传统方案中,如果要对指定目录下的多个子目录进行操作,通常需要配置多个File端口,分别配置不同的子目录。而知行之桥新推出 单端口多目录访问方案,仅需一个 File 端口即可灵活访问指定目录上的多个子目录,大幅简化配置与管理流程,同时保证数据传输安全与高效。
假设需要从指定目录执行以下文件操作:
下载文件:
-
DELFOR 长期交货预测 → 位于 D:\test\download\DELFOR 文件夹
-
DELJIT 短期交货计划 → 位于 D:\test\download\DELJIT 文件夹
上传文件:
-
DESADV 发货通知 → 上传至 D:\test\upload\DESADV 文件夹
-
INVOIC 发票 → 上传至 D:\test\upload\INVOIC 文件夹
观察发现,所有下载操作均针对 D:\test\download文件夹下的子目录。所有上传操作均针对 D:\test\upload文件夹下的子目录。
下载子目录中的文件
1.创建 File 端口
我们先在知行之桥上新建一个File端口。

并将其命名为FileDownload,因为该端口功能是为了实现下载文件,所以在“操作”中只需勾选“接收”,点击“创建端口”。

2.配置目录路径
在端口的“路径”中,配置D:\test\download文件夹,并勾选“删除文件(下载后)”,以避免重复下载,提高数据处理效率。

3.启用递归子目录
在 下载操作 中,如需获取子目录下的文件,需要File端口的“高级设置”,勾选 递归远程子目录 选项,并保存设置。
此功能可确保系统自动遍历 D:\test\download 目录下的所有子目录,完整获取所需文件,无需单独配置每个子目录。

4.测试下载
在D:\test\download\DELFOR文件夹中,放入名为“DELFOR_20251113.xml”的测试文件,在D:\test\download\DELJIT文件夹中,放入名为“DELJIT_20251113.xml”的测试文件。
在File端口的“输出”中,手动点击“接收”按钮,进行测试下载;
通过此操作,可验证端口配置及目录路径是否正确,并确保文件能够顺利从 D:\test\download 目录及其子目录获取。

执行下载测试后,可确认系统已成功获取 DELFOR 与 DELJIT 两个子目录下的所有文件,验证了递归下载设置的有效性。

5.文件分流处理
在File端口的“输出”的消息列表,点击左侧加号,展开消息详细信息,可在消息头中,看到 “SubFolder” 属性名,其值对应文件所在的子目录。知行之桥系统可根据该属性实现自动分流处理。

可以在File端口之后,创建并连接Branch端口,对消息头中的SubFolder属性进行判断,从而对不同类型的文件进行分流处理。

向子目录中上传文件
正如前文所示,File端口实际上是通过SubFolder的属性,实现对子目录的操作。因此,若要向特定子目录中上传文件,只需要在消息头中添加SubFolder的属性名,其属性值则对应目标子目录路径。
1.创建 File 端口
我们先在知行之桥上新建一个File端口。

并将其命名为FileUpload,因为该端口功能是为了实现上传文件,所以在“操作”中只需勾选“发送”,点击“创建端口”。

2.配置目录路径
在端口的“路径”中,配置D:\test\upload文件夹。

3.创建并配置Script端口
在File端口前,添加一个Script端口,根据文件名称,为其赋予SubFolder的属性名和对应的属性值,并将Script端口和File 端口连接。
示例脚本逻辑:
- 文件名以DESADV开头 -> Subfolder=DESADV
- 文件名以INVOIC开头-> Subfolder=INVOIC
其脚本信息如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<arc:set attr="output.fileName" value="[Filename]" /> <arc:set attr="output.filePath" value="[FilePath]" /> <!-- 判断文件名是否以DESADV开头 --> <arc:if exp="[output.fileName | startswith('DESADV')]"> <!-- 为文件设置SubFolder --> <rsb:set attr="output.Header:SubFolder" value="DESADV" /> <arc:else> <!-- 判断文件名是否以INVOIC开头 --> <arc:if exp="[output.fileName | startswith('INVOIC')]"> <!-- 为文件设置SubFolder --> <rsb:set attr="output.Header:SubFolder" value="INVOIC" /> <arc:else> <!-- 若文件名不符合要求,抛出异常 --> <arc:throw code="myerror" desc="Error Filename, can not set SubFolder" /> </arc:else> </arc:if> </arc:else> </arc:if> <arc:push item="output" /> |

完成后的工作流如图所示:

4.工作流验证
在Script端口上传一个名为INVOIC_INV12345.xml的文件, 系统将根据文件名自动识别类型,并为其赋予相应的 SubFolder 属性值(此处为 INVOIC),确保文件后续通过 File 端口上传至 D:\test\upload\INVOIC 子目录。

进入File端口的“输入”界面,检查文件状态是否显示Success。
并点击左侧展开箭头,可在消息头中看到subfolder属性,其值为INVOIC,说明文件已经上传到D:\test\upload\INVOIC目录,完成分流处理。

在 D:\test\upload\INVOIC 目录下即可确认文件已成功上传并存在。

总结
以上介绍了在 知行之桥 中,通过单一 File 端口 实现对子目录的上传与下载的最佳实践。
该方案充分利用 SubFolder 属性 与 Script/Branch 端口,实现文件的智能分流和自动化处理,操作简便、高效可靠。
立即动手体验,让你的 File 文件传输更灵活、更高效!
如在实操过程中遇到问题,或希望了解有关EDI对接的相关信息,欢迎联系我们。
注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。

AS2 认证信息
OFTP 证书
SAP 证书
知行之桥®
