By exxsens GmbH on Montag, 27. März 2017
Category: Developer Blog

Tipps für die sap.m.UploadCollection

An verschiedenen Stellen wurde schon über die Schwierigkeiten geschrieben, die einen erwarten, wenn man in SAPUI5 die sap.m.UploadCollection (und somit auch den eingebetteten FileUploader) korrekt einbinden möchte. Dank geht also vor allem an diese hilfreichen Hinweise:

https://blogs.sap.com/2014/07/24/uploading-files-to-sap-gw-downloading-files-from-sap-gw-new-techniques/

https://blogs.sap.com/2016/03/29/using-the-uploadcollection-to-uploaddownload-archivelink-files-via-gateway/

https://stackoverflow.com/questions/38701392/unable-to-upload-files-using-uploadcollection-in-sapui5

https://help.sap.com/saphelp_nw75/helpdata/en/b4/fd2651c294256ee10000000a445394/frameset.htm

https://blogs.sap.com/2014/09/23/file-uploaddownload-through-netweaver-gateway/

Spezielle Umsetzung bei uns

In den meisten Entwicklungsumsetzungen gibt es gewisse Anpassungen entweder aufgrund der Anforderungen oder des jeweiligen Umfeldes, in dem die finale Lösung läuft. Daher folgen hier einige Anmerkungen und aus unserer Sicht zu beachtende Punkte, die teilweise in den oben genannten Einträgen genauer erklärt werden, teilweise aber auch anders umgesetzt wurden.

​Die Beschaffung des Tokens ist in der Tat ungewöhnlich, wenn man an die Smart-Controls in UI5 gewöhnt ist, da diese einen Großteil der Kommunikation mit dem OData-Service/Backend übernehmen und man eben gerade nicht mehr "typische" Parameter für den HTTP-Header setzen muss. Wir beschaffen uns im onUploadCollectionChange-Event diesen Token über die praktische getSecurityToken-Methode des relevanten Models, wodurch wir diesen dann bequem als HeaderParameter anhängen können.

Selbst mit einem gültigen Token gab es noch Probleme beim Service-Request und diese hatten mit dem Profil für den Virusscan zu tun. Prüfen Sie also die Einstellungen im IMG (SAP Netweaver -> SAP Gateway -> OData Channel -> Administration -> Allgemeine Einstellungen -> Virenscanprofile festlegen) (Anleitung zur Deaktivierung: https://blogs.sap.com/2014/12/31/setting-up-virus-scan-profile-scetguiupload-in-gateway/)

Für die Umsetzung sind also einige Punkte zu beachten und dann vermutlich in den allermeisten Anwendungsfällen auch noch die CRUD-Methoden der Entität korrekt zu implementieren. Als Ergebnis erhält man aber ein Control für den Endanwender, das den Dialog für den Upload einer Datei mitbringt und daraufhin automatisch den Upload zur spezifizierten URL startet und gleichzeitig als Liste für die zugehörigen Dateien fungiert, so dass man nicht auf zwei getrennte UI-Elemente zurückgreifen muss. Abschließend noch ein Bild einer ganz schmalen Umsetzung mit Plus-Knopf zum hochladen/hinzufügen einer neuen Datei und "X" zum löschen.

Related Posts