ABAP 自定义附件上传和下载

自定义附件上传和下载

上传附件

事务码:SMW0

image-20241202201548715

image-20241202201606954

image-20241202202028778

image-20241202202044228

报错

如SMW0配置中没有上传的文件的类型会报出如下错误:

image-20241202201701659

通过配置对应文件的类型解决:

image-20241202201823173

image-20241202201843472

image-20241202201920913

下载附件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
TABLES: sscrfields.

DATA:lv_rc TYPE i,
lv_filename TYPE string,
lv_path TYPE string,
lv_fullpath TYPE string,
lv_objdata TYPE wwwdatatab.

lv_filename = |SMW0附件下载|.
cl_gui_frontend_services=>file_save_dialog(
EXPORTING
window_title = 'SMW0附件下载'
default_extension = 'XLSX' "默认保存文件格式
default_file_name = lv_filename "默认文件名称
CHANGING
filename = lv_filename "默认文件名称
path = lv_path "文件路径
fullpath = lv_fullpath "文件路径
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4
).

CHECK lv_fullpath IS NOT INITIAL.

FREE:lv_objdata,lv_rc.

SELECT SINGLE relid objid
INTO CORRESPONDING FIELDS OF lv_objdata
FROM wwwdata
WHERE srtf2 = 0
AND relid = 'MI'
AND objid = 'ZTEST_EXCEL'.
IF sy-subrc EQ 0.
TRANSLATE lv_fullpath TO UPPER CASE.
REPLACE 'XLS' WITH 'XLSX' INTO lv_fullpath.
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
key = lv_objdata
destination = CONV localfile( lv_fullpath )
IMPORTING
rc = lv_rc.
IF lv_rc EQ 0.
MESSAGE '模板下载成功' TYPE if_mmpur_constants_general=>msg_success.
ELSE.
MESSAGE '模板下载失败' TYPE if_mmpur_constants_general=>msg_success DISPLAY LIKE if_mmpur_constants_general=>msg_error.
ENDIF.
ELSE.
ENDIF.

ABAP 自定义附件上传和下载
https://claudechan1228.github.io/2024/12/02/030-ABAP 自定义附件上传和下载/
作者
Claude Chan
发布于
2024年12月2日
许可协议