
Die Web Dynpro UI-Elemente sind Schnittstellen zu den grafischen Benutzungsoberflächen von Web-Dynpro-Anwendungen. Für die verschiedenen Anwendungen werden die vorgegebenen UI-Elemente je nach Bedarf zusammengestellt. Es gibt zur Zeit keine Infrastruktur für die Entwicklung kundeneigener UI-Elemente. Um hier Spielraum für die Integration verschiedener Technologien und eigener UI-Blöcke zu schaffen, steht neben dem SilverlightIsland das FlashIsland zur Verfügung. Dadurch können Adobe Flex- bzw. Adobe Flash-basierte Anwendungen in Web Dynpro integriert werden.
Adobe Flash ist eine Technologie für die Entwicklung von Multimedia-Inhalten. Adobe Flash-Filme werden mit der Creative Suite Entwicklungsumgebung von Adobe entwickelt. Adobe Flex ist eine Plattform für Rich Internet Anwendungen (RIA). Adobe Flash- und Flex-Anwendungen werden zu ShockWave Flash (SWF) Dateien kompiliert, die mit dem FlashPlayer von Adobe ausgeführt werden können. Der Adobe FlashPlayer ist als Web Browser Plugin für verschiedene Browser-Versionen und Plattformen verfügbar.
Um eine selbst entwickelte Adobe Flash/Flex-Komponente innerhalb von Web Dynpro zu verwenden, muss diese die von SAP NetWeaver zur Verfügung gestellte Library verwenden. Dies ermöglicht die Kommunikation zwischen der Adobe-Flash-Anwendung und dem Web-Dynpro-Framework.
In Web Dynpro wird ein FlashIsland-UI-Element innerhalb einer View erzeugt. Das UI-Element enthält den Pfad zu der Adobe-Flash-Anwendung (SWF-Datei). Diese Datei muss im MIME-Repository abgelegt sein, damit sie zusammen mit der Web-Dynpro-Anwendung ausgeliefert werden kann.
Legen Sie zusätzlich zur auszuführenden SWF-Datei im gleichen Verzeichnis die zugehörige Debug-Version der Adobe-Flash-Anwendung ab. Beachten Sie hierbei die Namensgebung und benennen die Debug-Version der Adobe-Flash-Anwendung mit dem Suffix -debug.swf. Beispiel: die auszuführenden SWF-Datei heißt: MyFlashApplication.swf. Dann sollte zu Debugging-Zwecken eine SWF-Datei im gleichen Verzeichnis liegen, die MyFlashApplication-debug.swf heißt.
Die wichtigsten Eigenschaften sind swfFile, height und width (siehe unten).
Für die Caching-Optimierung müssen Sie die Cache-Verweildauer des MIME-Objekts maximal hoch einstellen. Wählen Sie dazu auf dem MIME-Objekt den Eintrag Verfallsdauer Client-Cache.
Context-Attribute werden im FlashIsland über die Aggregationen PROPERTIES und DATA_SOURCES zur Verfügung gestellt. Außerdem ist es möglich, EVENTS zu deklarieren, die in der Anwendung verarbeitet werden sollen.
Die Adobe-Flash-Anwendung kann beispielsweise mit der Adobe FlexBuilder Entwicklungsumgebung erstellt werden. Ein solches Projekt besteht aus drei Teilen:
Eine Adobe Flex library, die von SAP NetWeaver zur Verfügung gestellt wird und zur Kommunikation zwischen der Adobe Flash Anwendung und dem Web-Dynpro-Framework benötigt wird.
Die selbst entwickelte Adobe Flash/Flex-Komponente
Der Anwendungsentwickler muss die selbst entwickelte Adobe Flash/Flex-Komponente in der FlashIsland-Verschalung aufrufen. Die FlashIsland Component stellt Methoden bereit, um auf die Daten des UI-Elements zuzugreifen und um Events auszulösen.
Weitere Informationen finden Sie unter Adobe Flash Islands Integration.
Hinweise
Barrierefreiheit
Beachten Sie, dass beim Einsatz eines FlashIsland-UI-Elements die Barrierefreiheit nicht gewährleistet ist. Wenn Sie eine barrierefreie Anwendung erstellen möchten, raten wir vom Einsatz des FlashIsland ab.
Übersetzung
Für Texte innerhalb der Adobe Flash Anwendung (SWF-Datei) gibt es keinen Übersetzungsanschluss. Die Übersetzung von Texten ist nur dann möglich, wenn diese von außen, d.h. über den Context (also GACDataSource bzw. GACProperty), mitgegeben werden. Achten Sie dabei darauf, die Texte nicht bei jedem Roundtrip zu übertragen, sondern nur einmal.
Bidirektionaler Text
Der Anwendungsentwickler ist selbst verantwortlich für die Gewährleistung der Right-to-Left-Unterstützung (RTL).
Personalisierung
Die Personalisierung für FlashIsland UI-Elemente wird nicht unterstützt.
Rechteckiger Bildschirmbereich
Ein FlashIsland UI-Element läuft immer in einem rechteckigen Bildschirmbereich ab. Andere Formen warden zur Zeit nicht unterstützt.
Keine Mehrfach-Anzeige
Das FlashIsland UI-Element kann immer nur einmal auf einem Bildschirm dargestellt werden. Es ist nicht möglich, es via DataSource mehrfach anzuzeigen. Daher kann es auch nicht in einem RowRepeater, einer MultiPane oder in einem TablePopin (wenn es zu einem Zeitpunkt mehr als ein offenes Popin geben soll) verwendet werden.
Kurz, pro View gibt es immer nur ein FlashIsland-UI-Element, da es RootUIElementContainer ist. Sie können jedoch pro "Page" mehrere FlashIslands gleichzeitig anzeigen.
Debugging
Um die Adobe Flash-Anwendung debuggen zu können, muss das Debug-File (s.o.) im gleichen MIME-Verzeichnis wie das .swf-File liegen und die Web-Dynpro-Anwendung muss mit dem URL-Parameter sap-wd-flashDebug=X gestartet werden. Dadurch wird automatisch das Debug-File anstatt des .swf-Files für das FlashIsland verwendet.
Dialogfenster
Beachten Sie, dass die Integration von FlashIsland in Web-Dynpro-ABAP-Dialogfenster (Popups) nicht unterstützt wird.
Implementierungsdetails
|
Laufzeit-Klasse |
CL_WD_FLASH_ISLAND |
|
Name |
Typ |
Anfangswert |
Bindbar |
|---|---|---|---|
|
STRING |
(automatisch) |
nein |
|
|
WDY_BOOLEAN |
true |
ja |
|
|
STRING |
ja |
||
|
WDUI_LIFE_TIME |
whenVisible |
ja |
|
|
STRING |
ja |
||
|
übersetzbarer Text |
ja |
||
|
WDUI_VISIBILITY |
visible |
ja |
|
|
STRING |
ja |
|
Name |
Kardinalität |
Typ |
|---|---|---|
|
0..n |
||
|
0..n |
||
|
0..n |
Weitere Eigenschaften, die über Vererbung zur Verfügung stehen, sind in den dazugehörigen übergeordneten Klassen definiert. Die dazugehörigen Oberflächenelemente sind:
Dynamische Programmierung
Für die dynamische Programmierung stehen dieselben Eigenschaften, Ereignisse und Aggregationen zur Verfügung wie im View Designer. Beachten Sie dabei die unterschiedlichen Schreibweisen.
|
View Designer Name |
Laufzeit-Name |
Typ |
|---|---|---|
|
WDY_BOOLEAN |
WDY_BOOLEAN |
|
|
HEIGHT |
STRING |
|
|
LIFE_TIME |
WDUI_LIFE_TIME |
|
|
lifeTime: whenAlive |
CL_WD_FLASH_ISLAND=>E_LIFE_TIME-WHEN_ALIVE |
|
|
lifeTime: whenVisible |
CL_WD_FLASH_ISLAND=>E_LIFE_TIME-WHEN_VISIBLE |
|
|
SWF_FILE |
STRING |
|
|
TOOLTIP |
WDY_MD_TRANSLATABLE_TEXT |
|
|
VISIBLE |
visible |
|
|
visible: none |
CL_WD_FLASH_ISLAND=>E_VISIBLE-NONE |
|
|
visible: visible |
CL_WD_FLASH_ISLAND=>E_VISIBLE-VISIBLE |
|
|
WIDTH |
STRING |
|
Name |
Laufzeitname |
Kardinalität |
|---|---|---|
|
DATA_SOURCES |
0..n |
|
|
EVENTS |
0..n |
|
|
PROPERTIES |
0..n |
Es wird keine Beispiel-Component für FlashIsland im System ausgeliefert, für Tests steht jedoch die Component WDR_TEST_FLASH_ISLAND im System zur Verfügung.