1-) SE80'i açın. Eğer ekranda MIME object açık değilse aşağıdaki örnekteki gibi ekranda aktif hale getirebilirsiniz.
2-) Ardından SAP -> PUBLIC -> IMPORT MIME OBJECT seçilir.
DATA VE SCREEN TANIMLAMALARI:
CONSTANTS: iv_url TYPE string VALUE 'SAP/PUBLIC/EXAM.xlsx', "YÜKLEDİĞİMİZ EXCEL'İN DOSYA YOLU
iv_file_name TYPE string VALUE 'EXAM.xlsx'. "YÜKLEDİĞİMİZ EXCEL'İN ADI
DATA: byte_count TYPE i,
file_table TYPE solix_tab,
filename TYPE string,
path TYPE string,
fullpath TYPE string.
SELECTION-SCREEN:
PUSHBUTTON /2(45) but_ex USER-COMMAND b_exam MODIF ID mi1.
INITIALIZATION.
but_ex = 'Excel Download'.
AT SELECTION-SCREEN.
IF sy-ucomm EQ 'B_EXAM'.
PERFORM sample_excel_upload.
ENDIF.
MIME İÇİN GEREKEN KODLAR:
cl_mime_repository_api=>get_api( )->get(
EXPORTING
i_url = iv_url
IMPORTING
e_content = DATA(file)
EXCEPTIONS
parameter_missing = 1
error_occured = 2
not_found = 3
permission_failure = 4
OTHERS = 5
).
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = file
IMPORTING
output_length = byte_count
TABLES
binary_tab = file_table.
cl_gui_frontend_services=>file_save_dialog(
EXPORTING
default_file_name = iv_file_name
default_extension = 'XLS'
CHANGING
filename = filename
path = path
fullpath = fullpath
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
invalid_default_file_name = 4
OTHERS = 5
).
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF fullpath IS NOT INITIAL.
cl_gui_frontend_services=>gui_download(
EXPORTING
bin_filesize = byte_count
filename = fullpath
filetype = 'BIN'
CHANGING
data_tab = file_table
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_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 = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24
).
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDFORM.
Yorumlar
Yorum Gönder