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

2.配置目录路径
上传操作:在“上传-远程目录”中,填写/upload文件夹,作为所有上传文件的统一根目录;
下载操作:在“下载-远程目录”中,填写/download文件夹,并勾选“删除文件(下载后)”,以避免重复下载,提高数据处理效率。

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

2.测试下载
在SFTP端口的“输出”中,手动点击“接收”按钮,进行测试下载;
通过此操作,可验证端口配置及目录路径是否正确,并确保文件能够顺利从 /download 目录及其子目录获取。

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

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

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

向子目录中上传文件
正如前文所示,SFTP端口实际上是通过SubFolder的属性,实现对子目录的操作。因此,若要向特定子目录中上传文件,只需要在消息头中添加SubFolder的属性名,其属性值则对应目标子目录路径。
配置 Script 端口
在SFTP端口前,可添加一个Script端口,根据文件名称,为其赋予SubFolder的属性名和对应的属性值,并将Script端口和SFTP 端口连接。
示例脚本逻辑:
- 文件名以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" /> |

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

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

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

登录 SFTP 服务器,在 /upload/INVOIC 目录下即可确认文件已成功上传并存在。

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

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