File-Upload in SAP RAP: Anleitung für eine sichere & effiziente Implementierung

Der File-Upload ist ein essenzielles Feature in modernen Geschäftsanwendungen. In der ABAP RESTful Application Programming (RAP) Umgebung lässt sich der Upload von Dateien effizient und sicher implementieren. Dieser Artikel zeigt, wie ein Dateiupload in RAP realisiert werden kann.

Grundlagen des File-Uploads

Um den Upload von Dateien im RAP-Kontext zu ermöglichen, werden drei zentralen Felder benötigt:

  • Attachment – Speichert die eigentliche Datei
  • Mimetype – Speichert den Dateityp
  • Filename – Speichert den Dateinamen

Die Datei selbst wird im Attachment-Feld gespeichert, während die Attribute Mimetype und Filename den Dateityp bzw. den Namen der Datei enthalten. Diese Attribute werden durch semantische Annotationen miteinander verknüpft. Beim Hochladen einer Datei in das Attachment-Feld werden Mimetype und Filename automatisch ausgefüllt.

Umsetzungsmöglichkeiten

Es gibt zwei mögliche Ansätze zur Implementierung des File-Uploads in RAP:

  1. Upload in der Hauptentität: Diese Methode erlaubt das Hochladen einer einzelnen Datei pro Objekt.
  2. Separate Entität für Dateianhänge: Hierbei wird eine zusätzliche Entität erstellt, die über eine Composition mit der Hauptentität verknüpft ist. Dadurch können mehrere Dateien pro Objekt hochgeladen werden.

Nachfolgend ein Beispiel für die Umsetzung des File-Uploads direkt in der Hauptentität.

Beispiel: File-Upload in der Hauptentität

Datenbanktabelle

Um den File-Upload zu ermöglichen, sind die folgenden drei Datenelemente erforderlich:

  • zattachment – Datentyp: RAWSTRING (Länge: 0)
  • zmimetype – Datentyp: CHAR (Länge: 128)
  • zfilename – Datentyp: CHAR (Länge: 128)

Interface View

In der CDS-View-Definition kommen semantische Annotationen zum Einsatz, um die Verbindung zwischen den Dateiattributen herzustellen.

  • Die Annotation @Semantics.largeObject sorgt dafür, dass die Attribute Attachment, Mimetype und Filename korrekt miteinander verknüpft werden.
  • Mit der Annotation contentDispositionPreference kann festgelegt werden, ob der Dateianhang abhängig von den Browsereinstellungen mit #INLINE im Browser angezeigt wird oder mit #ATTACHMENT bei Auswahl heruntergeladen wird.
  • Die Annotation @Semantics.largeObject.acceptableMimeTypes ermöglicht das Einschränken des Upload-Typs.
  • Mit @Semantics.largeObject.acceptableMimeTypes: ['application/pdf'] können zum Beispiel nur PDF-Dateien hochgeladen werden.

Consumption View

Behavior Definition

In der Behavior Definition sind keine speziellen Anpassungen für den File-Upload erforderlich. Die Standardmechanismen von RAP reichen aus, um den Upload-Prozess zu ermöglichen.

File-Upload in Fiori Elements

Der File-Upload kann über eine Fiori Elements App realisiert werden. Das Attachment-Feld dient hierbei als Datei-Upload-Komponente, über die Nutzer Dateien auswählen, hochladen und innerhalb der Anwendung weiterverwenden können.

Fazit

Der File-Upload in SAP RAP ist eine leistungsfähige Funktion, die sich mit semantischen Annotationen und einer strukturierten Architektur effizient umsetzen lässt. Durch die flexible Gestaltungsmöglichkeiten – sei es als einzelnes Attachment oder über eine separate Entität – kann der Upload-Prozess optimal an die jeweiligen Geschäftsanforderungen angepasst werden.