从SFTP解压缩文件,并需要使用.txt扩展名发送相同的文件名

2020-09-13 14:43发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我有一个要求:在S...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我有一个要求:在SFTP服务器中,我有3个目录,带有3个文件名:

目录1:Bank_Server01_001 * .zip(zip包含10或20个txt文件)

目录2:Bank1_server02_002 * .zip(zip包含10或20个txt文件)

目录3:Bank2_server03_003 * .zip(zip包含10或20个txt文件)

我需要从这些目录中选择文件并解压缩文件,为此,我使用了Java映射来实现此要求。

我拿了一个Zip文件和(三个测试文件)。

Ramu.zip(ramu1.txt,ramu2.txt,ramu3.txt)使用下面的映射,我可以解压缩并读取文件,但是在放置文件时,我得到一个包含所有内容的文件(ramu2.txt作为输出文件) )

代码:

导入com.sap.aii.mapping.api。*; 公共类unzipFiles扩展AbstractTransformation { java.io.OutputStream outputstream = TransformationOutput.getOutputPayload()。getOutputStream(); zis = new java.util.zip.ZipInputStream(inputstream); java.util.zip.ZipEntry ze; while((ze = zis.getNextEntry())!= null){int len; 字节b [] =新字节[2048]; while((len = zis.read(b,0,2048))!= -1){outputstream.write(b,0,len);复制代码 } java.util.Map mapParameters = TransformationInput.getInputHeader()。getAll(); mapParameters.put(DynamicConfigurationKey.create(" http://sap.com/xi/XI/Dynamic ",StreamTransformationConstants.DYNAMIC_CONFIGURATION),""); DynamicConfiguration conf =(DynamicConfiguration)mapParameters.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION); conf.put(DynamicConfigurationKey.create(" http://sap.com/xi/XI/System/File "," FileName"),ze.getName()); }} catch(Exception exception){getTrace()。addDebugMessage(exception.getMessage()); 抛出新的StreamTransformationException(exception.toString()); }}}

这是我的问题,我需要在两个通道(发送方和接收方)中使用相同的文件名(即使使用了ASMA选项)也要发送到目标系统,但文件仍未到达接收方目录中?

6条回答
暮风yp
2020-09-13 15:23

嗨,

如果仅要求将所有文件解压缩并将其放置在接收方SFTP服务器中,并且文件名与压缩文件中的文件名相同,则可以使用PayloadZipBean和SFTP适配器参数" retain.attachment.name"来实现。 请参阅SAP注释#

2670297-在SFTP接收器中保留PayloadZipBean的未压缩文件中的文件名

此致

Priyanka

一周热门 更多>