将文件下载并上传到服务器目录(AL11)

2020-08-17 09:02发布

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

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


你好

我有一个自定义程序,该程序将从应用程序服务器目录(它们就像模板)下载文件到用户本地PC。 然后,用户正在修改这些文件,最后将它们上传到另一个AS目录中。

该程序当前正在使用FM的C13Z_FILE_DOWNLOAD_BINARY和C13Z_FILE_UPLOAD_BINARY。

在实施热包之前没有问题:现在这样的FM正在返回错误消息:

内部程序错误; (YDOWNLOAD SAPLC13Z 0 C13Z_RAWDATA_WRITE)

在调试时,似乎FM C13Z_RAWDATA_WRITE(由上述FM调用)正在检查调用程序(sy-cprog),如果该程序不在标准程序列表(硬编码)中,则错误 被抛出。

我的问题是:是否存在另一种下载和上传文件且没有这种错误的方式? 您能否分享代码?

非常感谢您的帮助和建议!

最诚挚的问候,

JFlanders

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

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


你好

我有一个自定义程序,该程序将从应用程序服务器目录(它们就像模板)下载文件到用户本地PC。 然后,用户正在修改这些文件,最后将它们上传到另一个AS目录中。

该程序当前正在使用FM的C13Z_FILE_DOWNLOAD_BINARY和C13Z_FILE_UPLOAD_BINARY。

在实施热包之前没有问题:现在这样的FM正在返回错误消息:

内部程序错误; (YDOWNLOAD SAPLC13Z 0 C13Z_RAWDATA_WRITE)

在调试时,似乎FM C13Z_RAWDATA_WRITE(由上述FM调用)正在检查调用程序(sy-cprog),如果该程序不在标准程序列表(硬编码)中,则错误 被抛出。

我的问题是:是否存在另一种下载和上传文件且没有这种错误的方式? 您能否分享代码?

非常感谢您的帮助和建议!

最诚挚的问候,

JFlanders

付费偷看设置
发送
6条回答
spaceman01
1楼 · 2020-08-17 09:26.采纳回答

你好,


请参阅注释1809258-内部程序错误; (<程序名称> SAPLC13Z 0 C13Z_RAWDATA_READ)


一种可行的解决方案是使用cl_gui_frontend_services类方法,例如gui_download和gui_upload,例如:


类型:t_line(1)类型x。
数据:i_tab类型标准表t_line,i_wa(1)类型x。

OPEN DATASET lv_file_appl用于以二进制模式输入。
DO 。
清除i_wa。
读取数据集lv_file_appl INTO i_wa。
如果SY-SUBRC <> 0.
退出。
ELSE。
附录i_wa到i_tab。
ENDIF。
ENDDO。
关闭数据集lv_file_appl。
数据:lv_fn TYPE字符串。

lv_fn = lv_file_name。
调用方法cl_gui_frontend_services => gui_download
导出
文件名= lv_fn
filetype ='BIN'
append =''
CHANGING
data_tab = i_tab
例外
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
spacer_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 1 8
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 24.


*旧功能
*通话功能'C13Z_FILE_DOWNLOAD_BINARY'
* EXPORTING
* i_file_front_end = lv_file_name
* i_file_appl = lv_file_appl
* i_file_overwrite ='X'
** IMPORTING
** E_FLG_OPEN_ERROR =假
** E_OS_MESSAGE = lv_message
* EXCEPTIONS
* fe_file_open_error = 1
* fe_file_exists = 2
* fe_file_write_error = 3
* ap_no_authority = 4
* ap_file_open_error = 5
* ap_file_empty = 6
*其他= 7
*。

这是供下载的,同样也应进行上传。

希望这会有所帮助。 让我知道是否需要更多详细信息。

谢谢你,再见

Flavio

SAP砖家
2楼-- · 2020-08-17 09:23

您好 Jepi Flanders
我也需要这种方式,

您可以使用数据集显示您的代码上传/下载文件吗?

谢谢

半个程序猿
3楼-- · 2020-08-17 09:09

嗨,

您可以使用Dataset语句来上传和下载文件。

me_for_i
4楼-- · 2020-08-17 09:24

谢谢,它可以正常工作!

最诚挚的问候。

JF

Aaron 3364
5楼-- · 2020-08-17 09:05

嗨,

您是否尝试过使用CG3Z事务上传文件? 如果不尝试,请注意

Nan4612
6楼-- · 2020-08-17 09:09

,重点是这些事务带有默认路径的默认值,而文件路径/名称不能由自定义程序(ABAP)控制 ,至少据我所见。

因此,用户应对其进行管理,而我们不希望如此。

还是谢谢。

最诚挚的问候

一周热门 更多>