SAP ABAP-嵌套的ZIP文件

2020-09-12 04:11发布

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

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


嗨,我的要求是压缩文件,然后将其压缩到包含更多文件的另一个文件夹中,并将其放置在App Server上。 我可以做第一个zip,但不知道如何做嵌套zip。 如果有人做过,请提供帮助。

示例:

1。 将文件A,B,C压缩到Zipper1.zip

2。 将Zipper1.zip,D,E,F压缩为Zipper2.zip

3。 将Zipper2.zip写入App Server

谢谢,
Murali。

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

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


嗨,我的要求是压缩文件,然后将其压缩到包含更多文件的另一个文件夹中,并将其放置在App Server上。 我可以做第一个zip,但不知道如何做嵌套zip。 如果有人做过,请提供帮助。

示例:

1。 将文件A,B,C压缩到Zipper1.zip

2。 将Zipper1.zip,D,E,F压缩为Zipper2.zip

3。 将Zipper2.zip写入App Server

谢谢,
Murali。

付费偷看设置
发送
7条回答
愤怒的猪头君
1楼 · 2020-09-12 04:28.采纳回答

您可以v_zip-> add()将任何xstring数据(内容)添加到ZIP。 甚至是您从v_zip-> save()获得的v_zipcontent。 只要确保您不使用相同的cl_abap_zip对象实例(基本OOP)即可。

Nir深蓝
2楼-- · 2020-09-12 04:45

开发完成后,我将分享如何压缩(包括嵌套zip)。

谢谢,
Murali

派大星 ヾ
3楼-- · 2020-09-12 04:52

嗨,

不确定为什么压缩2次。 我认为第一个zip的逻辑仅适用于文件,并且不能与其他文件一起使用zip-压缩文件。

从技术上讲,您正在为A,B,C,D,E,F做zip。那么为什么不为所有这些单独压缩?

谢谢

Mohan

三十六小时_GS
4楼-- · 2020-09-12 04:36

"开发完成后,我将分享如何压缩(包括嵌套的zip)。"

您说您已经完成了第一个 压缩。 我想看到它的原因是,它可能会提示您为什么很难进行第二次拉链。 Tomas Buryanek指出-有什么要找出的?

吹牛啤
5楼-- · 2020-09-12 04:30

这是第一个zip的代码。 它在应用服务器上生成了Test.zip。

* >>>>>>

报告ztest_zip。

参数:p_file TYPE本地文件。

类型:type_ekpo的开始,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
结束type_ekpo 。

类型:type_ekpo的类型标准表,
type_t_rec类型sdokcntasc的标准表。

数据:t_ekpo类型type_t_ekpo,
t_rec类型type_t_rec,
x255表,
w_ekpo类型type_ekpo,
w_rec类型sdokcntasc,
w_zipdata类型x255。

数据:v_date类型sy-datum,
v_zipcontent类型xstring,
v_zipcontent1 TYPE xstring,
v_zipfile TYPE字符串值'Test.zip',
v_content TYPE xstring,
v_xstr TYPE xstring,
v_name TYPE字符串,
v_filelength TYPE i,
v_zip TYPE REF 转到cl_abap_zip。

v_date = sy-datum-7。

从ekpo中选择ebeln
ebelp
从INTO TABLE t_ekpo
中,eded> = v_date。< br>
清除:w_rec。
合并'购买订单号'
'商品号'
放入w_rec-line
用','分隔。
追加w_rec TO t _rec。

清除w_rec。

将t_ekpo插入到w_ekpo中。
CONCATENATE w_ekpo-ebeln
w_ekpo-ebelp
插入w_rec-line
中,' '。
APPEND w_rec到t_rec。
CLEAR w_rec。
ENDLOOP。

CLEAR v_content。
CREATE OBJECT v_zip。
通话功能'SCMS_TEXT_TO_XSTRING'
导入< br>缓冲区= v_xstr

text_tab = t_rec
异常
失败= 1
其他=2。
如果sy-subrc =0。
刷新:t_rec。< br> FREE:t_rec。
ENDIF。

v_name ='Test.csv'。
v_zip-> add(name = v_name content = v_xstr)。
v_zipcontent = v_zip->保存 ()。

调用功能'SCMS_XSTRING_TO_BINARY'
导出
缓冲区= v_zipcontent
导入
output_length = v_filelength

binary_tab = t_zipdata。

>合并p_file
v_zipfile
插入到v_zipfile
中,用'/'分隔。
打开数据集v_zipfile以二进制模式输出。
将t_zipdata循环到w_zipdata中。
ENDLOOP。
CLOSE DATASET v_zipfile。

* <<<<<<

南山jay
6楼-- · 2020-09-12 04:38

谢谢Tomas。 解决了。

半个程序猿
7楼-- · 2020-09-12 04:45

对不起,我没有在单个zip中处理所有文件。

我对第三方的要求是生成一个zip文件,其中包含" 1个zip文件,其中n个文件+一些文件"。

这是必要条件。 如果我必须将所有拉链都拉链在一起,那么我可以做到。

谢谢

Murali。

一周热门 更多>