Bilder aus MIME-Repository anzeigen

Ich präsentiere: Das hässlichste Logo aller Zeiten:

Allerdings hat es auch einen Vorteil: Taucht dieses Bild irgendwo auf, weiß man sofort: Es handelt sich um ein Demo-Programm.
SAP-Web-Repository
Das Bild ist im SAP-Web Repository gespeichert. Dieses Repository wird mit Transaktion SMW0 aufgerufen. Zur Auswahl stehen “HTML-Schablonen” und “Binäre Daten”. Wähle “Binäre Daten” aus:

Wenn du weißt, wie der Name des Bildes lautet, kannst du diesen vorbelegen:

Die entsprechenden Dateien im Web-Repository werden angezeigt:

Einlesen eines Web-Repository-Objektes
Das Einlesen und des Bildes erfolgt mit Hilfe der Funktionsbausteine WWW_GET_MIME_OBJECT und DP_CREATE_URL. Das Beispielprogramm zeigt das Bild in einem Docking-Container auf dem Selektionsbild an:

Code
REPORT. PARAMETERS dummy. CLASS mime_picture DEFINITION. PUBLIC SECTION. CLASS-METHODS get IMPORTING name TYPE clike RETURNING VALUE(url) TYPE w3url. ENDCLASS. CLASS mime_picture IMPLEMENTATION. METHOD get. DATA query_table TYPE STANDARD TABLE OF w3query. DATA query_line TYPE w3query. DATA html_table TYPE STANDARD TABLE OF w3html . DATA html_line TYPE w3html . DATA return_code TYPE w3param-ret_code. DATA content_type TYPE w3param-cont_type. DATA content_length TYPE w3param-cont_len. DATA pic_data TYPE STANDARD TABLE OF w3mime . query_line-name = '_OBJECT_ID'. query_line-value = name. APPEND query_line TO query_table. CALL FUNCTION 'WWW_GET_MIME_OBJECT' TABLES query_string = query_table html = html_table mime = pic_data CHANGING return_code = return_code content_type = content_type content_length = content_length EXCEPTIONS object_not_found = 1 parameter_not_found = 2 OTHERS = 3. CALL FUNCTION 'DP_CREATE_URL' EXPORTING type = 'image' subtype = cndp_sap_tab_unknown size = content_length lifetime = cndp_lifetime_transaction TABLES data = pic_data CHANGING url = url EXCEPTIONS OTHERS = 1. ENDMETHOD. ENDCLASS. INITIALIZATION. DATA(go_pic) = NEW cl_gui_picture( parent = NEW cl_gui_docking_container( side = cl_gui_docking_container=>dock_at_bottom ratio = 80 ) ). go_pic->load_picture_from_url( mime_picture=>get( 'ENJOYSAP_LOGO' ) ). go_pic->set_display_mode( cl_gui_picture=>display_mode_fit ).
Obsoleter Baustein WWW_GET_MIME_OBJECT
Anstelle der beiden Funktionsbausteine WWW_GET_MIME_OBJECT (als obsolet gekennzeichnet) und DP_CREATE_URL kann auch der Funktionsbaustein DP_PUBLISH_WWW_URL verwendet werden. Das Coding wird hierdurch deutlich schlanker:
METHOD get.
CALL FUNCTION 'DP_PUBLISH_WWW_URL'
EXPORTING
objid = conv W3OBJID( name )
lifetime = cndp_lifetime_transaction
IMPORTING
url = url
EXCEPTIONS
OTHERS = 1.
ENDMETHOD.
- 7. December: Excel Racing Simulation – Root Vole Race - 7. Dezember 2024
- 5. December: ABAPConf - 5. Dezember 2024
- 4. December: Only a lazy developer is a good developer - 4. Dezember 2024