Erscheinungsbild
Upload
Erlaubt dem Anwender, eine Datei vom Endgerät hochzuladen. Die Datei wird als Daten-URL im Base64-Format an die ABAP-Schicht übergeben und kann z.B. in einem Image angezeigt oder als XSTRING im SAP-System gespeichert werden.
Designer-Attribute
| Attribut | Beschreibung | Default |
|---|---|---|
controlId | Eindeutige ID | automatisch generiert |
width | Breite (CSS-Wert) | – |
placeholder | Platzhaltertext bei leerem Feld | – |
buttonOnly | Nur den Button anzeigen, kein Eingabefeld | false |
buttonText | Beschriftung des Buttons | – |
icon | SAP-Icon | – |
iconOnly | Nur das Icon anzeigen | false |
iconFirst | Icon vor (true) oder hinter (false) dem Text | true |
fileType | Erlaubte Dateiendungen (kommagetrennt, ohne Punkt) | – |
fileTypeErrorText | Meldung bei nicht erlaubter Dateiendung | This file type is not supported |
transferMode | Übertragung der Datei an das Backend. Werte: Base64 | Base64 |
visible | Sichtbar | true |
spanS / spanM / spanL / spanXL | Grid-Layout | 12 |
ABAP-API
Zugriff über me->get_upload( '<controlId>' ).
| Methode | Zweck |
|---|---|
GET_DATA | Liefert die hochgeladene Datei als data:<mime>;base64,... |
INIT | Daten leeren |
GET_FILE_TYPE_ERROR / SET_FILE_TYPE_ERROR | Meldung bei falschem Dateityp |
GET_FILENAME / SET_FILENAME | Dateiname |
GET_WIDTH / SET_WIDTH | Breite |
Geerbte Methoden: siehe Control.
Beispiel: /mobbuild/cl_ex_upload
Das Beispiel liest die hochgeladene Datei und zeigt sie in einer Image-Komponente an:
abap
METHOD on_pai.
DATA(lo_image) = me->get_image( 'image' ).
DATA(lo_upload) = me->get_upload( 'uploader' ).
DATA(lv_data_url_base_64) = lo_upload->get_data( ).
lo_image->set_src( lv_data_url_base_64 ).
ENDMETHOD.
METHOD on_pbo.
me->init_controls( ).
me->get_image( 'image' )->set_src( space ).
ENDMETHOD.Datei im SAP-System speichern
Der Rückgabewert von get_data() ist eine Daten-URL der Form data:<mime>;base64,.... Trennen Sie den Präfix ab und konvertieren Sie den Base64-Anteil mit cl_http_utility=>decode_x_base64() in ein XSTRING. Damit lässt sich die Datei z.B. in einer kundeneigenen Tabelle als BLOB ablegen.
Beispiel und Tipp gelten für On-Prem. In der S/4HANA Cloud tragen die Framework-Klassen das Präfix zmobbuild_ statt des Namensraums /mobbuild/, und es stehen nur freigegebene APIs zur Verfügung – siehe Unterschiede zu On-Prem und Mobile-Builder-API in der Cloud.
Größenlimit
Da die Datei als Base64-String im Request der App an das Backend transportiert wird, sollten Sie ein Limit setzen. Dateien > ~5 MB sind in der Regel nicht praktikabel und sollten alternativ über eine RFC-/OData-Schnittstelle hochgeladen werden.
Nächste Schritte
- Image – Anzeige hochgeladener Bilder
- SignaturePad – Bild aus Unterschrift erzeugen