adesso orange🍊Stellenangebote:
Software Engineer Trainee · Senior
| (Senior) Cloud Software Engineer BTP
(Senior) Consultant Technologie · Consultant ABAP
Werkstudent Softwareentwicklung · Fiori / UI5 · Consulting · Application Management
Bildupload vom lokalen Rechner ins MIME-Repository: Unterschied zwischen den Versionen
Aus SAP Wiki ツ
Zeile 4: | Zeile 4: | ||
<syntaxhighlight lang="abap" line start="1"> | <syntaxhighlight lang="abap" line start="1"> | ||
"Dateiname der Bilddatei zum hochladen | |||
PARAMETERS: p_fname TYPE file_table-filename OBLIGATORY. | PARAMETERS: p_fname TYPE file_table-filename OBLIGATORY. | ||
"Speicherpfad im MIME-Repository, muss vorhanden sein, andernfalls mit o_mime_rep->create_folder( ) erzeugen | |||
PARAMETERS: p_mpath TYPE string DEFAULT '/SAP/PUBLIC/Test123.jpg' OBLIGATORY. | PARAMETERS: p_mpath TYPE string DEFAULT '/SAP/PUBLIC/Test123.jpg' OBLIGATORY. | ||
"wenn die F4-Hilfe für den Dateinamen aufgerufen wird | |||
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname. | AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname. | ||
Zeile 16: | Zeile 16: | ||
DATA: lv_action TYPE i. | DATA: lv_action TYPE i. | ||
"File-Tabelle leeren, da hier noch alte Einträge von vorherigen Aufrufen drin stehen können | |||
CLEAR it_files. | CLEAR it_files. | ||
"FileOpen-Dialog aufrufen | |||
TRY. | TRY. | ||
cl_gui_frontend_services=>file_open_dialog( EXPORTING | cl_gui_frontend_services=>file_open_dialog( EXPORTING | ||
Zeile 29: | Zeile 29: | ||
IF lv_action = cl_gui_frontend_services=>action_ok. | IF lv_action = cl_gui_frontend_services=>action_ok. | ||
"wenn Datei ausgewählt wurde | |||
IF lines( it_files ) > 0. | IF lines( it_files ) > 0. | ||
"ersten Tabelleneintrag lesen | |||
p_fname = it_files[ 1 ]-filename. | p_fname = it_files[ 1 ]-filename. | ||
ENDIF. | ENDIF. | ||
Zeile 44: | Zeile 44: | ||
DATA: it_bin_data TYPE STANDARD TABLE OF raw255. | DATA: it_bin_data TYPE STANDARD TABLE OF raw255. | ||
"Bild auf Appl. Server hochladen (binary) | |||
cl_gui_frontend_services=>gui_upload( EXPORTING | cl_gui_frontend_services=>gui_upload( EXPORTING | ||
filename = |{ p_fname }| | filename = |{ p_fname }| | ||
Zeile 55: | Zeile 55: | ||
DATA: lv_xstr TYPE xstring. | DATA: lv_xstr TYPE xstring. | ||
"RAW (binary) nach xstring | |||
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING' | CALL FUNCTION 'SCMS_BINARY_TO_XSTRING' | ||
EXPORTING | EXPORTING | ||
Zeile 67: | Zeile 67: | ||
OTHERS = 2. | OTHERS = 2. | ||
"MIME-API holen | |||
DATA(o_mime_rep) = cl_mime_repository_api=>get_api( ). | DATA(o_mime_rep) = cl_mime_repository_api=>get_api( ). | ||
"Bild im MIME-Repository speichern | |||
"Objektkatalogeintrag wird erstellt, evtl. bestehende Dateien werden überschrieben | |||
o_mime_rep->put( i_url = p_mpath | o_mime_rep->put( i_url = p_mpath | ||
i_content = lv_xstr | i_content = lv_xstr |
Version vom 12. August 2021, 07:58 Uhr
Codeschnipsel
"Dateiname der Bilddatei zum hochladen
PARAMETERS: p_fname TYPE file_table-filename OBLIGATORY.
"Speicherpfad im MIME-Repository, muss vorhanden sein, andernfalls mit o_mime_rep->create_folder( ) erzeugen
PARAMETERS: p_mpath TYPE string DEFAULT '/SAP/PUBLIC/Test123.jpg' OBLIGATORY.
"wenn die F4-Hilfe für den Dateinamen aufgerufen wird
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
DATA: lv_rc TYPE i.
DATA: it_files TYPE filetable.
DATA: lv_action TYPE i.
"File-Tabelle leeren, da hier noch alte Einträge von vorherigen Aufrufen drin stehen können
CLEAR it_files.
"FileOpen-Dialog aufrufen
TRY.
cl_gui_frontend_services=>file_open_dialog( EXPORTING
file_filter = |jpg (*.jpg)\|*.jpg\|{ cl_gui_frontend_services=>filetype_all }|
CHANGING
file_table = it_files
rc = lv_rc
user_action = lv_action ).
IF lv_action = cl_gui_frontend_services=>action_ok.
"wenn Datei ausgewählt wurde
IF lines( it_files ) > 0.
"ersten Tabelleneintrag lesen
p_fname = it_files[ 1 ]-filename.
ENDIF.
ENDIF.
CATCH cx_root INTO DATA(e_text).
MESSAGE e_text->get_text( ) TYPE 'S' DISPLAY LIKE 'E'.
ENDTRY.
START-OF-SELECTION.
DATA: lv_filesize TYPE i.
DATA: it_bin_data TYPE STANDARD TABLE OF raw255.
"Bild auf Appl. Server hochladen (binary)
cl_gui_frontend_services=>gui_upload( EXPORTING
filename = |{ p_fname }|
filetype = 'BIN'
IMPORTING
filelength = lv_filesize
CHANGING
data_tab = it_bin_data ).
DATA: lv_xstr TYPE xstring.
"RAW (binary) nach xstring
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
EXPORTING
input_length = lv_filesize
IMPORTING
buffer = lv_xstr
TABLES
binary_tab = it_bin_data
EXCEPTIONS
failed = 1
OTHERS = 2.
"MIME-API holen
DATA(o_mime_rep) = cl_mime_repository_api=>get_api( ).
"Bild im MIME-Repository speichern
"Objektkatalogeintrag wird erstellt, evtl. bestehende Dateien werden überschrieben
o_mime_rep->put( i_url = p_mpath
i_content = lv_xstr
i_check_authority = abap_false ).