web dynpro for java - edv-buchversand

41
13 Einleitung 1 Einleitung Praxisnähe Wir waren uns von Anfang an einig, dass wir kein weiteres Referenzhand- buch zu Web Dynpro for Java schreiben wollten. Stattdessen werden wir in diesem Buch anhand eingängiger Beispiele die vielfältigen Möglichkeiten aufzeigen, die Ihnen bei und mit der Verwendung von Web Dynpro for Java zur Verfügung stehen. Vielleicht überrascht Sie das eine oder andere Beispiel auf den ersten Blick – denn normalerweise werden Sie mithilfe von Web Dynpro keine Spiele oder CD-Verwaltungen entwickeln. Nichts- destotrotz veranschaulichen die Beispiele aber sehr viele Best Practices, die Ihnen in Ihrer täglichen Arbeit mit Web Dynpro hilfreich sein werden. Und obwohl wir statt der ursprünglich geplanten 350 Seiten mit nun rund 500 Seiten einen »echten Wälzer« geschaffen haben, haben wir während der Arbeit an diesem Buch sehr schnell erkannt, dass wir keines- falls alle Möglichkeiten beschreiben können. Zum einen ist dies für uns ein Zeichen für den enormen Leistungsumfang von Web Dynpro, zum an- deren ist dies vielleicht auch Motivation für einen zweiten Band. Einführung Bevor wir in den folgenden Kapiteln anhand vieler Beispiele die unter- schiedlichen Möglichkeiten von Web Dynpro diskutieren, geben wir Ih- nen in Kapitel 2 einen grundsätzlichen Einstieg in das Web-Dynpro-Pro- grammiermodel. Wir befassen uns dabei insbesondere mit der internen Strukturierung der Web-Dynpro-Laufzeitumgebung sowie deren Einbet- tung in SAP NetWeaver. Komponenti- sierung Ein wesentliches Anliegen war uns die konsequente Komponentisierung der Web-Dynpro-Beispielanwendungen. Gerade im Zusammenspiel mit der SAP NetWeaver Development Infrastructure (NWDI) erhalten Sie eine sehr mächtige Funktionalität, Ihre Web-Dynpro-Anwendung aus wieder- verwendbaren Einheiten zusammenzubauen. Wir beschreiben die Ver- wendung von Web-Dynpro-Komponenten vor allem anhand der Web- Dynpro-GameStation (siehe Kapitel 3) und der Web-Dynpro-MusicBox (siehe Kapitel 8). In Kapitel 9 gehen wir zudem auf diejenigen generi- schen Web-Dynpro-Entwicklungskomponenten ein, die wir in den Bei- spielen im Buch an mehreren Stellen wiederverwenden. Da spätestens mit Einführung der Enterprise Services Architecture (ESA) serviceorientierte Anwendungen en vogue sind, gehen wir anhand der Web-Dynpro-Google-Suche (siehe Kapitel 4) ausführlich auf die Verwen- dung von Webservices innerhalb Ihrer Web-Dynpro-Applikation ein. Dar- über hinaus diskutieren wir anhand der Visualisierung der Suchergebnisse

Upload: others

Post on 29-Dec-2021

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Web Dynpro for Java - EDV-BUCHVERSAND

13Einleitung

1 Einleitung

PraxisnäheWir waren uns von Anfang an einig, dass wir kein weiteres Referenzhand-buch zu Web Dynpro for Java schreiben wollten. Stattdessen werden wir indiesem Buch anhand eingängiger Beispiele die vielfältigen Möglichkeitenaufzeigen, die Ihnen bei und mit der Verwendung von Web Dynpro forJava zur Verfügung stehen. Vielleicht überrascht Sie das eine oder andereBeispiel auf den ersten Blick – denn normalerweise werden Sie mithilfevon Web Dynpro keine Spiele oder CD-Verwaltungen entwickeln. Nichts-destotrotz veranschaulichen die Beispiele aber sehr viele Best Practices,die Ihnen in Ihrer täglichen Arbeit mit Web Dynpro hilfreich sein werden.

Und obwohl wir statt der ursprünglich geplanten 350 Seiten mit nunrund 500 Seiten einen »echten Wälzer« geschaffen haben, haben wirwährend der Arbeit an diesem Buch sehr schnell erkannt, dass wir keines-falls alle Möglichkeiten beschreiben können. Zum einen ist dies für unsein Zeichen für den enormen Leistungsumfang von Web Dynpro, zum an-deren ist dies vielleicht auch Motivation für einen zweiten Band.

EinführungBevor wir in den folgenden Kapiteln anhand vieler Beispiele die unter-schiedlichen Möglichkeiten von Web Dynpro diskutieren, geben wir Ih-nen in Kapitel 2 einen grundsätzlichen Einstieg in das Web-Dynpro-Pro-grammiermodel. Wir befassen uns dabei insbesondere mit der internenStrukturierung der Web-Dynpro-Laufzeitumgebung sowie deren Einbet-tung in SAP NetWeaver.

Komponenti-sierung

Ein wesentliches Anliegen war uns die konsequente Komponentisierungder Web-Dynpro-Beispielanwendungen. Gerade im Zusammenspiel mitder SAP NetWeaver Development Infrastructure (NWDI) erhalten Sie einesehr mächtige Funktionalität, Ihre Web-Dynpro-Anwendung aus wieder-verwendbaren Einheiten zusammenzubauen. Wir beschreiben die Ver-wendung von Web-Dynpro-Komponenten vor allem anhand der Web-Dynpro-GameStation (siehe Kapitel 3) und der Web-Dynpro-MusicBox(siehe Kapitel 8). In Kapitel 9 gehen wir zudem auf diejenigen generi-schen Web-Dynpro-Entwicklungskomponenten ein, die wir in den Bei-spielen im Buch an mehreren Stellen wiederverwenden.

Da spätestens mit Einführung der Enterprise Services Architecture (ESA)serviceorientierte Anwendungen en vogue sind, gehen wir anhand derWeb-Dynpro-Google-Suche (siehe Kapitel 4) ausführlich auf die Verwen-dung von Webservices innerhalb Ihrer Web-Dynpro-Applikation ein. Dar-über hinaus diskutieren wir anhand der Visualisierung der Suchergebnisse

Page 2: Web Dynpro for Java - EDV-BUCHVERSAND

Einleitung14

die Unterschiede von deklarativer und dynamischer Erstellung von Web-Dynpro-UIs.

Ein weiterer Schwerpunkt liegt in der Beschreibung des Zusammenspielszwischen Ihren Web-Dynpro-Anwendungen und dem SAP NetWeaverPortal. Obwohl Web-Dynpro-Applikationen grundsätzlich auch außer-halb des SAP NetWeaver Portal lauffähig sind, ergibt sich eine Vielzahlneuer Möglichkeiten, sobald Sie Ihre Web-Dynpro-Anwendungen inner-halb des SAP NetWeaver Portal starten. Erweiterte Navigationsmöglich-keiten (siehe Kapitel 6 und Kapitel 7) oder die Möglichkeiten der Perso-nalisierung (siehe Kapitel 8) sind nur zwei Beispiele, die wir vor allem beider Web-Dynpro-MusicBox in – wie wir finden – sehr anschaulicher Artund Weise einsetzen. Neben der Beschreibung dieser Funktionalitätenbeschreiben wir in Kapitel 5 ganz allgemein die nötigen Schritte, wie SieIhre Web-Dynpro-Anwendung innerhalb des SAP NetWeaver Portal star-ten können.

Beispiele Alle Beispiele haben wir auf Basis von SAP NetWeaver 2004 (SP14) er-stellt und nach bestem Wissen und Gewissen getestet. Wir haben uns da-bei sehr um Konsistenz bezüglich der Strukturierung und Namenskonven-tionen bemüht – urteilen Sie selbst, wie weit uns dies gelungen ist. InAnhang A geben wir zudem einige Empfehlungen, wie Sie speziell beimEinsatz von Web-Dynpro-Komponenten und Web-Dynpro-DCs eine ein-heitliche und verständliche Beschreibung Ihrer Web-Dynpro-Anwendun-gen erhalten.

Alle Beispiele in diesem Buch können von Ihnen erweitert und modifiziertwerden. Auch die generischen Funktionalitäten können Sie in Ihren eige-nen Web-Dynpro-Anwendungen wiederverwenden – allerdings könnenwir in diesem Fall keinen Support bei Problemen leisten. Wir verweisenSie aber auf das Web-Dynpro-Forum im SAP Developer Network (sieheAnhang B). In diesem Teil des Anhangs finden Sie zudem nähere Informa-tionen zur Feature2Sample-Matrix, die Ihnen bei der Auswahl von Bei-spiel- und Tutorial-Anwendungen im SAP Developer Network hilft. Hierfinden Sie eine große Fülle von Materialien zur Web-Dynpro-Technologie,die eine ideale Ergänzung zu den in diesem Buch enthaltenen Inhaltendarstellt.

Da wir aus unserer täglichen Arbeit an und mit Web Dynpro nur zu gutwissen, dass neben der eigentlichen Anwendungsentwicklung in der Pra-xis auch die Administration und Konfiguration der Web-Dynpro-Laufzeit-umgebung immer wieder Anlass für Fragen, Probleme und Diskussionen

Page 3: Web Dynpro for Java - EDV-BUCHVERSAND

15Einleitung

gibt, widmen wir auch diesem Thema in Kapitel 10 den dafür nötigenPlatz.

DanksagungWir wollen uns an dieser Stelle besonders bei Manohar Sreekanth bedan-ken, der uns beim Aufsetzen der NWDI-Landschaft geholfen hat. Darüberhinaus hat uns Udo Offermann mit seinem detaillierten Wissen über dasSAP NetWeaver Portal unterstützt. Des Weiteren hat uns Reiner Hamme-rich die zukünftige UI-Strategie von SAP näher gebracht, in der Web Dyn-pro (for Java) natürlich auch eine sehr zentrale Rolle spielen wird. Last butnot least wollen wir uns bei Karin Schattka, Thomas Chadzelek, Jens Ittel,Markus Cherdron und Alfred Barzewski bedanken. Ein spezieller Dank giltauch dem Verlag Galileo Press, der uns die Möglichkeit gegeben hat, die-ses Buch zu schreiben. Insbesondere Stefan Proksch aus dem Lektorat SAPPRESS stand uns mit seiner Erfahrung jederzeit hilfreich zur Seite.

Nun bleibt uns nur noch, Ihnen viel Spaß beim Schmökern und Testen derBeispiele zu wünschen. Wir freuen uns über Ihr Feedback.

Walldorf, im März 2006Bertram Ganz ([email protected])Jochen Gürtler ([email protected])Timo Lakner ([email protected])

Page 4: Web Dynpro for Java - EDV-BUCHVERSAND

203Web-Dynpro-NavigationTester

6 Web-Dynpro-NavigationTester

In diesem Kapitel werden wir die verschiedenen Möglichkeiten besprechen, um zwischen Web-Dynpro-Anwendungen zu navigieren. Wir werden dabei insbesondere auf die Unter-schiede eingehen, die sich ergeben, wenn die Web-Dynpro-Anwendung innerhalb des SAP NetWeaver Portal gestartet wird, und werden auf die Visualisierung von sehr großen hier-archischen Datenmengen eingehen.

6.1 Web-Dynpro-NavigationTester

Mithilfe des Web-Dynpro-NavigationTesters können Sie unterschiedlicheNavigationsmöglichkeiten zwischen zwei Web-Dynpro-Applikationendurchspielen und testen. Darüber hinaus bietet er Ihnen die Möglichkeit,auf komfortable Art und Weise die gewünschte Web-Dynpro-Applikationzu selektieren und das gewünschte Navigationsverhalten zu bestimmen.

Wie alle Beispiele dieses Buches ist der NavigationTester auch ohne SAPNetWeaver Portal lauffähig. In Zusammenhang mit dem SAP NetWeaverPortal aber bietet er wesentlich mehr Möglichkeiten, das Navigationsver-halten zu beeinflussen. Sie finden den NavigationTester in der Web-Dyn-pro-Komponente NavigationTesterComp, die im Web-Dynpro-ProjektMAIN_WD-BOOK_D~tc~navtes~sap.com abgelegt ist. Die entsprechendeWeb-Dynpro-Entwicklungskomponente heißt tc\navtes.

Abbildung 6.1 zeigt den Web-Dynpro-NavigationTester innerhalb desSAP NetWeaver Portal. Der NavigationTester setzt sich im Wesentlichenaus zwei Bereichen zusammen: Links können Sie das gewünschte Naviga-tionsziel auswählen, also entweder eine Web-Dynpro-Anwendung odereinen iView bzw. eine Portal Page, rechts können Sie das gewünschte Na-vigationsverhalten genauer definieren.

Grundsätzliche Strukturierung des Navigation-Testers

Abbildung 6.2 zeigt die Web-Dynpro-Komponente NavigationTester-Comp im Web Dynpro Data Modeler, in dem wir die grundsätzliche Struk-turierung sehr gut erkennen können.

Page 5: Web Dynpro for Java - EDV-BUCHVERSAND

Web-Dynpro-NavigationTester204

Abbildung 6.1 NavigationTester im SAP NetWeaver Portal

Abbildung 6.2 Strukturierung der Web-Dynpro-Komponente NavigationTesterComp

Für die Visualisierung verwenden wir insgesamt drei Web-Dynpro-Views:Der BrowserView zeigt dabei die vorhandenen Navigationsziele an. DerNavigationDataView erlaubt die Definition des gewünschten Navigati-onsverhaltens und der FrameView fügt die beiden Views zusammen.

Page 6: Web Dynpro for Java - EDV-BUCHVERSAND

205Web-Dynpro-NavigationTester

Im Data Modeler können Sie auch die Verwendung der Component-UsageDeploymentManager erkennen, mit deren Hilfe wir die vorhandenenWeb-Dynpro-Anwendungen ermitteln werden (siehe Abschnitt 6.5.3).

6.1.1 Bestimmung der Laufzeitumgebung

Wie erwähnt, ist der Web-Dynpro-NavigationTester sowohl außerhalb alsauch innerhalb des SAP NetWeaver Portal lauffähig. Da aber gerade hin-sichtlich der Navigation zwischen Web-Dynpro-Anwendungen viele De-tails zu beachten sind, in denen sich die jeweilige Laufzeitumgebung un-terscheidet, wird innerhalb des NavigationTesters an vielen Stellengeprüft, in welcher Laufzeitumgebung (innerhalb oder außerhalb des SAPNetWeaver Portal) er gestartet wurde.

Verwendung von WDPortalUtils

Grundsätzlich können Sie diese Information über die Hilfsklasse WDPor-talUtils ermitteln. Über die isRunningInPortal()-Methode könnenSie bestimmen, ob Ihre Web-Dynpro-Applikation innerhalb des SAP Net-Weaver Portal gerufen wird. Der dabei zurückgelieferte Bool'sche Wert istan vielen Stellen ausreichend. Sollen aber abhängig von der Laufzeitum-gebung einzelne Bereiche der Anwendung sichtbar bzw. unsichtbar ge-macht werden, bietet sich die Verwendung eines calculated-Attributesan, das in Abhängigkeit von isRunningInPortal() den entsprechendenWert für IWDVisibility zurückliefert.

Mapping auf IWDVisibility

Im NavigationTester definieren wir solch ein calculated-Attribut innerhalbdes View-Controller-Contexts des Views NavigationDataView. DasContext-Attribut IsRunningInPortalVisibility des RuntimeEnvi-ronment-Context-Knotens mappt den Bool'schen Wert auf den entspre-chenden IWDVisibility-Wert, wie die Implementierung der MethodegetRuntimeEnvironmentIsRunningInPortalVisibility()(siehe Lis-ting 6.1).

return WDPortalUtils.isRunningInPortal() ? WDVisibility.VISIBLE : WDVisibility.NONE;

Listing 6.1 Berechnung von IWDVisibility abhängig von der Laufzeitumgebung

Durch dieses Mapping können Sie rein deklarativ beliebige UI-ElementeIhrer Anwendung durch Binden der Visibility-Eigenschaft der entspre-chenden UI-Elemente gegen das IsRunningInPortalVisibility-At-tribut in Abhängigkeit der Laufzeitumgebung sichtbar oder unsichtbarschalten.

Page 7: Web Dynpro for Java - EDV-BUCHVERSAND

Web-Dynpro-NavigationTester206

Im NavigationTester haben wir uns aber dazu entschieden, die entspre-chenden UI-Elemente nicht auszublenden, sondern zu enablen oder zudisablen. Dadurch erhalten wir unabhängig von der gewählten Laufzeit-umgebung ein konsistentes UI-Design. Wir verwenden dazu das Context-Attribut EnabledInPortal des Context-Knotens RuntimeEnvironment,gegen das die Enabled-Eigenschaft des entsprechenden UI-Elementes ge-bunden ist, wie Sie beispielhaft für das IWDInputField-UI-Element Con-textInputField in Abbildung 6.3 erkennen können.

Abbildung 6.3 Verwendung des EnabledInPortal-Context-Attributs

6.1.2 Auswahl des Navigationszieles

Auch bei der Darstellung der möglichen Navigationsziele berücksichtigenwir die vorhandene Laufzeitumgebung. Starten Sie den NavigationTesteraußerhalb des SAP NetWeaver Portal, zeigen wir nur die verfügbarenWeb-Dynpro-Applikationen an (siehe Abbildung 6.4).

Abbildung 6.4 Darstellung der Navigationsziele außerhalb des SAP NetWeaver Portal

Innerhalb des SAP NetWeaver Portal zeigen wir auch die verfügbareniViews und Portal Pages an, die dann ebenfalls als Navigationsziele dienenkönnen (siehe Abbildung 6.5).

Page 8: Web Dynpro for Java - EDV-BUCHVERSAND

207Web-Dynpro-NavigationTester

Abbildung 6.5 Darstellung der Navigationsziele innerhalb des SAP NetWeaver Portal

In Abschnitt 6.6 werden wir detaillierter auf die hierarchische Darstellungder vorhandenen Navigationsziele eingehen.

6.1.3 Bestimmung des Navigationsverhaltens

Neben der Definition des Navigationszieles bietet der NavigationTesterauch umfangreiche Möglichkeiten, das gewünschte Navigationsverhaltengenauer zu definieren. Außerhalb des SAP NetWeaver Portal beschränkensich diese Möglichkeiten auf die Unterscheidung zwischen relativen undabsoluten Applikations-URLs, die definiten von weiteren Übergabepara-metern sowie die Festlegung, ob das Navigationsziel im gleichen oder ineinem neuen Fenster des Webbrowsers gestartet werden soll.

Abbildung 6.6 zeigt die möglichen Einstellungen – beachten Sie hierbei,dass diejenigen Optionen, die nur innerhalb des SAP NetWeaver Portalverfügbar sind, über den beschriebenen Mechanismus disabled wurden.

Tipp

Auch wenn wir grundsätzlich die Verwendung des SAP NetWeaverPortal empfehlen, sollten Sie immer darauf achten, dass Sie Ihre Web-Dynpro-Anwendung grundsätzlich so bauen, dass beide Laufzeitumge-bungen berücksichtigt werden – zum Beispiel durch die beschriebenenMechanismen, einzelne UI-Elemente zu disablen oder unsichtbar zumachen.

Page 9: Web Dynpro for Java - EDV-BUCHVERSAND

Web-Dynpro-NavigationTester208

Abbildung 6.6 Definition des Navigationsverhaltens außerhalb des SAP NetWeaver Portal

Im Folgenden nun wollen wir ausführlich auf die Möglichkeiten der Na-vigation zwischen zwei Web-Dynpro-Anwendungen eingehen. Am Endedes Kapitels werden wir dann die hierarchische Visualisierung der vorhan-denen Navigationsziele (Web-Dynpro-Anwendungen bzw. iViews oderPortal Pages) besprechen.

6.2 Navigation außerhalb des SAP NetWeaver Portal

Starten Sie Ihre Web-Dynpro-Anwendung außerhalb des SAP NetWeaverPortal, können Sie auf einfache Art und Weise zwischen zwei Web-Dyn-pro-Applikationen navigieren.

6.2.1 Zusammenfassung von Web-Dynpro-Applikationen

Bedenken Sie dabei aber immer, dass Sie in vielen Szenarien eine wesent-lich effizientere Navigation erreichen, wenn Sie Ihre Web-Dynpro-Appli-kationen zu einer einzigen Web-Dynpro-Applikation zusammenfassen,indem Sie die entsprechenden Root-Components der jeweiligen Applika-tionen über eine weitere (dritte) Web-Dynpro-Komponente zusammen-fassen. Diese Web-Dynpro-Komponente dient dabei letztendlich nur alsgemeinsamer Rahmen für die beteiligten Komponenten.

Page 10: Web Dynpro for Java - EDV-BUCHVERSAND

209Navigation außerhalb des SAP NetWeaver Portal

Zusammenfassen von Web-Dynpro-Applikationen

Da bei dieser Vorgehensweise die entsprechenden Web-Dynpro-Kompo-nenten innerhalb einer Web-Dynpro-Applikationsinstanz gestartet wer-den, erreichen Sie eine wesentlich engere Integration der beteiligtenKomponenten, die zum Beispiel vor allem dann Sinn ergibt, wenn die be-teiligten Web-Dynpro-Applikationen bzw. Web-Dynpro-Komponentengroße Datenmengen gemeinsam nutzen wollen.

Das Verschmelzen mehrerer Web-Dynpro-Komponenten innerhalb einerWeb-Dynpro-Applikation ist auch dann möglich, wenn die unterschiedli-chen Komponenten in unterschiedlichen Teams gebaut werden. DurchVerwendung entsprechender Web-Dynpro-Component-Interfaces errei-chen Sie zudem eine große Flexibilität und reduzieren direkte und wo-möglich nicht gewünschte Abhängigkeiten.

Diese Vorgehensweise wird in den Kapiteln zur Web-Dynpro-GameSta-tion (siehe Kapitel 3) und zur Web-Dynpro-MusicBox (siehe Kapitel 8)diskutiert.

6.2.2 Berechnung einer Web-Dynpro-Applikations-URL

Verwendung von WDURLGenerator

Möchten Sie außerhalb des SAP NetWeaver Portal zwischen zwei Web-Dynpro-Applikationen navigieren, müssen Sie das Ziel dieses Navigations-schrittes in Form einer Web-Dynpro-Applikations-URL definieren. Da dieseApplikations-URL bestimmten Randbedingungen genügen muss, solltenSie diese URL immer mithilfe der Hilfsklasse WDURLGenerator erzeugen.Grundsätzlich müssen Sie hierbei zwischen relativen und absoluten Appli-kations-URLs unterscheiden.

Definition einer relativen Applikations-URL

Relative Applikations-URLs können Sie immer dann verwenden, wennentweder die Zielapplikation auf dem gleichen Serverknoten Ihrer SAPNetWeaver-Installation ausgeführt werden soll, oder aber die Applikati-ons-URL nicht als Bookmark verwendet werden soll oder anderweitigpersistierbar sein muss (um sie beispielsweise später in einer Mail zu ver-schicken).

Das folgende Listing 6.2 zeigt die Berechnung einer relativen Applikati-ons-URL für den Web-Dynpro-NavigationTester.

Page 11: Web Dynpro for Java - EDV-BUCHVERSAND

Web-Dynpro-NavigationTester210

try {

// Option 1String navigationTesterUrl =WDURLGenerator.getApplicationURL("sap.com/tc~navtes","NavigationTesterApp");

// Option 2WDDeployableObjectPart navigationTesterApp =WDDeployableObject.getDeployableObjectPart("sap.com/tc~navtes","NavigationTesterApp",WDDeployableObjectPartType.APPLICATION);

navigationTesterUrl =WDURLGenerator.getApplicationURL(navigationTesterApp);

} catch (WDURLException e) {wdComponentAPI.getMessageManager().reportException("Failed to get application URL -

please check the defined parameters",true)

} catch (WDDeploymentException e) {wdComponentAPI.getMessageManager().reportException("Failed to load deployable object'sap.com/tc~navtes'",true);

}

Listing 6.2 Erzeugen einer relativen Applikations-URL

In diesem Beispiel ermitteln wir die relative Applikations-URL auf zweiunterschiedliche Arten: Im ersten Fall geben wir die benötigten Namender Web-Dynpro-Entwicklungskomponente und der Applikation direktan. Im zweiten Fall erzeugen wir für den NavigationTester zuerst eine In-stanz des entsprechenden WDDeployableObjectPart. Letztendlich lie-fern natürlich beide Möglichkeiten die gleiche navigationTesterUrl:

../../../sap.com/tc~navtes/NavigationTesterApp

Page 12: Web Dynpro for Java - EDV-BUCHVERSAND

211Navigation außerhalb des SAP NetWeaver Portal

Bestandteile einer relativen Applika-tions-URL

Eine relative Applikations-URL stellt sich somit aus den folgenden Be-standteilen zusammen:

../../../<Vendor>/<DC-Name>/<Applikationsname>

<Vendor>, <DC-Name> und <Applikationsname> werden von Ihnen de-finiert. Bei der Verwendung von lokalen Web-Dynpro-Eclipse-Projektenhat <Vendor> immer den Wert local. Der <DC-Name> ist der Name Ihreslokalen Web-Dynpro-Eclipse-Projektes. Bei Verwendung von Web-Dyn-pro-Entwicklungskomponenten definieren Sie den <Vendor> als Teil derBeschreibung der Entwicklungskomponente. Der <DC-Name> ist derName der verwendeten Entwicklungskomponente.

Definition einer absoluten Applikations-URL

Sobald Sie eine Applikations-URL benötigen, die persistierbar sein soll,müssen Sie eine absolute Applikations-URL erzeugen, wie Listing 6.3zeigt. Der wesentliche Unterschied zur Berechnung relativer Applikations-URLs ist die Verwendung der Methode getWorkloadBalancedApplica-tionURL()von WDURLGenerator.

try {

// Option 1String navigationTesterUrl =WDURLGenerator.getWorkloadBalancedApplicationURL("sap.com/tc~navtes","NavigationTesterApp");

// Option 2WDDeployableObjectPart navigationTesterApp =WDDeployableObject.getDeployableObjectPart("sap.com/tc~navtes","NavigationTesterApp",WDDeployableObjectPartType.APPLICATION);

navigationTesterUrl =WDURLGenerator.getWorkloadBalancedApplicationURL(

navigationTesterApp);

} catch (WDURLException e) {wdComponentAPI.getMessageManager().reportException(

Page 13: Web Dynpro for Java - EDV-BUCHVERSAND

Web-Dynpro-NavigationTester212

"Failed to get application URL -please check the defined parameters",

true);} catch (WDDeploymentException e) {wdComponentAPI.getMessageManager().reportException("Failed to load deployable object'sap.com/tc~navtes'",true);

}

Listing 6.3 Erzeugen einer absoluten Applikations-URL

Im Beispiel enthält navigationTesterUrl nach Aufruf des WDURLGene-rator die folgende URL – eine entsprechende Web-Dispatcher-Konfigu-ration vorausgesetzt:

http://wdhost.wdf.sap.corpt:50000/webdynpro/dispatcher/sap.com/tc~navtes/NavigationTesterApp

Bestandteile einerabsoluten URL

Eine absolute Web-Dynpro-Applikations-URL stellt sich somit aus denfolgenden Bestandteilen zusammen:

<Protokoll>://<Servername>.<Domain>:<Port>/webdynpro/dis-

patcher/<Vendor>/<DC-Name>/<Applikationsname>

<Protokoll>, <Servername>, <Domain> und <Port> hängen natürlichvon Ihrer vorhandenen SAP NetWeaver-Installation ab. Die Angabe der<Domain> ist dabei optional, wir empfehlen aber vor allem beim Startender Web-Dynpro-Applikation innerhalb des SAP NetWeaver Portal dieVerwendung des voll qualifizierten Servernamens, also mit Angabe der<Domain>.

<Vendor>, <DC-Name> und <Applikationsname> werden wie bei relati-ven Applikations-URLs von Ihnen definiert. Bei Verwendung von lokalenWeb-Dynpro-Eclipse-Projekten hat <Vendor> immer den Wert local.Der <DC-Name> ist dabei der Name Ihres lokalen Web-Dynpro-Eclipse-Projektes. Bei Verwendung von Web-Dynpro-Entwicklungskomponentendefinieren Sie den <Vendor> als Teil der Beschreibung der Entwicklungs-komponente. Der <DC-Name> ist der Name der verwendeten Entwick-lungskomponente.

Page 14: Web Dynpro for Java - EDV-BUCHVERSAND

213Navigation außerhalb des SAP NetWeaver Portal

Definition von URL-Aliassen

Eine oft gestellte Frage im Zusammenhang mit Web-Dynpro-Applikati-ons-URLs wollen wir Ihnen an dieser Stelle nicht vorenthalten: Da vor al-lem bei der Verwendung von Web-Dynpro-Entwicklungskomponentendie resultierende Applikations-URL sehr schnell recht kryptisch werdenkann, stellt sich die Frage, ob und wie man kürzere und sinnigere URL-Aliasse definieren kann. Leider ist dies nur durch die Verwendung einesweiteren Servlets möglich, in dem Sie dann auf die entsprechende Web-Dynpro-Applikations-URL redirecten.

Natürlich können Sie aber die gewünschten (absoluten) Applikations-URLs in Ihrem Browser als Lesezeichen speichern, sodass Sie nicht bei je-dem Aufruf Ihrer Web-Dynpro-Anwendung die komplette Applikations-URL im Kopf behalten und eintippen müssen.

6.2.3 Übergabe von Parametern

Möchten Sie zwischen Web-Dynpro-Anwendungen navigieren, werdenSie typischerweise zusätzliche Parameter definieren wollen, um be-stimmte Informationen von der einen zur anderen Web-Dynpro-Applika-tion zu transportieren. Dies ist durch die Ergänzung der entsprechendenApplikations-URL der Zielapplikation leicht möglich, wie das folgendeBeispiel zeigt:

http://wdhost.wdf.sap.corp:50000/webdynpro/dispatcher/sap.com/tc~search/GoogleSearchApp?query=Web%20Dynpro&viewModeSwitch=true

Tipp

Verwenden Sie ausschließlich die Methode getWorkloadBalanced-ApplicationURL(), um eine absolute Applikations-URL zu berech-nen. Damit stellen Sie sicher, dass die berechnete URL auch dann gültigist, wenn Sie für Ihre SAP NetWeaver-Installation einen Web Dispat-cher verwenden. In Kapitel 10 beschreiben wir ausführlich, welcheKonfigurationen nötig sind, um Ihre Web-Dynpro-Applikationen kor-rekt über einen Web Dispatcher aufzurufen. Sollten Sie diese Konfigu-rationen nicht ausgeführt haben, liefert getWorkloadBalanced-ApplicationURL() die gleiche (relative) Applikations-URL wie getApplicationURL().

Page 15: Web Dynpro for Java - EDV-BUCHVERSAND

Web-Dynpro-NavigationTester214

Hierbei rufen wir die Web-Dynpro-Anwendung GoogleSearchApp unterVorbelegung des gewünschten Suchbegriffs auf, indem wir den query-Pa-rameter mit dem gewünschten Wert übergeben. Zusätzlich definieren wirmithilfe des viewModeSwitch-Parameters, dass die Auswahl der ge-wünschten Darstellungsvariante angezeigt wird.

Wie Sie erkennen können, werden die gewünschten Parameter als Query-Strings an die berechnete (absolute) Applikations-URL angehängt. Hierbeiist zu beachten, dass Sie die gewünschten Parameterwerte gegebenenfallsURL-encodieren müssen (siehe Abschnitt 6.3).

6.2.4 Auslesen von Parametern

Die Web-Dynpro-Entwicklungskomponente tc\navtes enthält nebendem Web-Dynpro-NavigationTester eine zweite Web-Dynpro-Applika-tion, anhand der wir die Möglichkeiten diskutieren wollen, wie Sie über-gebene Parameter innerhalb der Web-Dynpro-Zielapplikation wieder ein-lesen können.

Abbildung 6.7 zeigt die Web-Dynpro-Applikation NavigationDestina-tionApp, die als Root-Component die Web-Dynpro-Komponente Navi-gationDestinationComp verwendet.

Abbildung 6.7 Web-Dynpro-Applikation NavigationDestinationApp

Grundsätzlich haben Sie zwei Möglichkeiten, innerhalb Ihrer Web-Dyn-pro-Applikation auf die übergebenen Parameter zuzugreifen. Entwederdefinieren Sie explizit die gewünschten Parameter als Parameter des Start-up-Plugs der verwendeten Root-Component oder Sie greifen generischauf alle übergebenen Parameter durch die Verwendung des WDWebCon-textAdapter zu.

Die Anwendung NavigationDestinationApp veranschaulicht beideVorgehensweisen, wie Sie in Abbildung 6.8 erkennen können: Links zeigtsie zwei explizit definierte Parameter Parameter1 und Parameter2, rechts

Page 16: Web Dynpro for Java - EDV-BUCHVERSAND

215Navigation außerhalb des SAP NetWeaver Portal

werden alle übergebenen Parameter in einer Tabelle angezeigt. Sie kön-nen dabei zusätzlich noch entscheiden, ob Sie die automatisch übergebe-nen Systemparameter anzeigen wollen oder nicht.

Abbildung 6.8 Übertragene Systemparameter außerhalb des SAP NetWeaver Portal

Übertragene Systemparameter

Abbildung 6.8 zeigt die Systemparameter, die übertragen werden, wennSie die Anwendung außerhalb des SAP NetWeaver Portal starten. sap-wd-cltnwndid und sap-wd-appwndid werden von der Web DynproRuntime benötigt, um die richtige Applikationsinstanz zu ermitteln. sap-wd-norefresh signalisiert, dass es sich nicht um den initialen Requesthandelt, der die Web-Dynpro-Applikationsinstanz startet.

Übertragene Systemparameter innerhalb des SAP NetWeaver Portal

Sobald Sie Ihre Web-Dynpro-Anwendung innerhalb des SAP NetWeaverPortal starten, werden etliche weitere Systemparameter übertragen, wieAbbildung 6.9 zeigt. Letztendlich wird mit diesen zusätzlichen Systempa-rametern die aktuelle Portal-Umgebung definiert.

Abbildung 6.9 Übertragene Systemparameter innerhalb des SAP NetWeaver Portal

Tipp

Grundsätzlich sollten Sie die übertragenen Systemparameter, also alleParameter, die mit sap-wd beginnen, nicht ändern oder löschen, dasonst Ihre Web-Dynpro-Anwendung nicht korrekt ablaufen kann.

Page 17: Web Dynpro for Java - EDV-BUCHVERSAND

Web-Dynpro-NavigationTester216

So definiert beispielsweise sap-locale die gewählte Portal-Sprache odersap-rtl, ob der Benutzer im Portal die Left-To-Right-Unterstützung ein-gestellt hat oder nicht. Die Web Dynpro Runtime übernimmt diese (Por-tal-)Einstellungen automatisch – und zeigt dann Ihre Web-Dynpro-Appli-kation unter Berücksichtigung der richtigen Sprache oder der gewähltenLeft-To-Right-Einstellung. In Kapitel 5 finden Sie weitere Details zu deneinzelnen Systemparametern innerhalb des SAP NetWeaver Portal.

Explizite Definition von Startup-Plug-Parametern

Wenn Sie genau wissen, auf welche Parameter Ihre Web-Dynpro-Appli-kation zugreifen muss – um z.B. eine bestimmte Darstellungsvariante zubestimmen, wie wir es bei der Web-Dynpro-Google-Suche beschriebenhaben (siehe Kapitel 4) –, können Sie diese Parameter explizit als Parame-ter des verwendeten Startup-Plugs definieren. In der Anwendung Navi-gationDestinationApp sind dies die Parameter Parameter1 undParameter2.

Abbildung 6.10 zeigt die Definition des Default-Startup-Plugs mit denentsprechenden Parametern. Beachten Sie, dass die Startup-Plug-Para-meternamen und die Namen der Übergabeparameter exakt übereinstim-men müssen. Darüber hinaus müssen die Startup-Plug-Parameter vomTyp string sein.

Abbildung 6.10 Definition der Startup-Plug-Parameter

Beim Starten der Web-Dynpro-Applikation werden diese Default-Start-up-Plug-Parameter automatisch gefüllt, und stehen Ihnen im Event-Handler onPlugDefault() zur Verfügung. In unserem Beispiel schreibenwir die Werte in den vom Interface-Component-Controller der Root-Component bereitgestellten Context, wie Listing 6.4 zeigt.

Page 18: Web Dynpro for Java - EDV-BUCHVERSAND

217Navigation außerhalb des SAP NetWeaver Portal

wdThis .wdGetNavigationDestinationCompInterfaceController() .wdGetContext() .currentParametersElement() .setParameter1(Parameter1);

wdThis .wdGetNavigationDestinationCompInterfaceController() .wdGetContext() .currentParametersElement() .setParameter2(Parameter2);

Listing 6.4 Verwendung der explizit definierten Startup-Plug-Parameter

Generischer Zugriff auf alle Parameter

Neben dieser expliziten Möglichkeit, auf Übergabeparameter zuzugrei-fen, können Sie auch ganz generisch auf alle übertragenen Parameter mit-hilfe des WDWebContextAdapter zugreifen.

In unserer Anwendung NavigationDestinationApp benutzen wir denWDWebContextAdapter, um alle übergebenen Parameter einzulesen unddiese in den entsprechenden Context-Knoten zu kopieren. Mithilfe desIWDTable-UI-Elementes werden die Parameter dann in einem letztenSchritt visualisiert.

Die updateParameterList()-Methode im View-Controller des Web-Dynpro-Views DestinationView liest alle übergebenen Parameter einund füllt den Context-Knoten RequestParameter, wie Listing 6.5 zeigt:

Tipp

Wie in Kapitel 2 dargestellt, ist eine der Stärken von Web Dynpro dieUnabhängigkeit von einem bestimmten Protokoll oder einem be-stimmten Darstellungs-Client. Die gleiche Web-Dynpro-Anwendungkann ohne jegliche Änderung sowohl auf HTTP basierend in einem her-kömmlichen Webbrowser angezeigt werden als auch auf einem SmartClient, der ein beliebiges (auch proprietäres) Protokoll verwendenkönnte. Um diese so genannte Web Dynpro Client Abstraction nicht zubrechen, sollten Sie immer über den WDWebContextAdapter auf Über-gabeparameter zugreifen.

Page 19: Web Dynpro for Java - EDV-BUCHVERSAND

Web-Dynpro-NavigationTester218

IPrivateDestinationView.IGenericParametersElement parameter = null;

wdContext.nodeGenericParameters().invalidate();

// Einlesen der ÜbergabeparameterMap parameters =WDWebContextAdapter.getWebContextAdapter().getRequestParameterMap();

for (Iterator paras = parameters.keySet().iterator();paras.hasNext();) {String key = (String) paras.next();

if (!key.startsWith("sap-wd") ||wdContext.currentContextElement().getShowSAPParameters()) {

if (key.equals("eventQueue")) {continue;

}

String value =WDWebContextAdapter.getWebContextAdapter().getRequestParameter(key);

wdContext.nodeGenericParameters().createGenericParametersElement();

parameter.setValue(value);parameter.setName(key);

wdContext.nodeGenericParameters().addElement(parameter);

}}

Listing 6.5 Einlesen aller Übergabeparameter

6.2.5 Verwendung des Exit-Plugs

Nachdem wir die gewünschte Applikations-URL mitsamt der benötigtenÜbergabeparameter definiert haben, müssen Sie nun die gewünschte Na-

Page 20: Web Dynpro for Java - EDV-BUCHVERSAND

219Navigation außerhalb des SAP NetWeaver Portal

vigation anstoßen, indem Sie die ursprüngliche Web-Dynpro-Applikationunter Verwendung des so genannten Exit-Plugs verlassen.

Exit-PlugsDer Exit-Plug stellt dabei das Pendant zum Startup-Plug dar, über den dieApplikationsinstanz ursprünglich gestartet wurde. Neben der Verwen-dungsmöglichkeit eines parameterlosen Exit-Plugs können Sie bei ent-sprechender Erweiterung des Exit-Plugs die Ziel-URL definieren, die nachVerlassen der Web-Dynpro-Applikation aufgerufen werden soll. Dabeikönnen Sie grundsätzlich jede beliebige URL verwenden – bei der Navi-gation zu einer weiteren Web-Dynpro-Applikation aber müssen Sie einegültige Web-Dynpro-Applikations-URL angeben.

Wie der Startup-Plug wird auch der Exit-Plug als Teil des Interface-View-Controllers einer Web-Dynpro-Komponente definiert. Dies geschieht mitden folgenden Schritten:

1. Navigieren Sie im Web Dynpro Explorer zum gewünschten Interface-View-Controller und öffnen Sie durch einen Doppelklick den entspre-chenden Editor, der Ihnen durch Selektion der Registerkarte Plugs dieDefinition des gewünschten Exit-Plugs ermöglicht. Klicken Sie hierzuauf den New-Button neben der Liste der Outbound-Plugs.

2. Abbildung 6.11 zeigt den dadurch erscheinenden Dialog, in dem Sieden in unserem Beispiel benötigten Exit-Plug NavigationToApplica-tion definieren. Achten Sie darauf, durch Auswahl der entsprechen-den Checkbox den Outbound-Plug als Exit Plug zu kennzeichnen.

Abbildung 6.11 Definition des Exit-Plugs

Page 21: Web Dynpro for Java - EDV-BUCHVERSAND

Web-Dynpro-NavigationTester220

URL-Parameter imExit-Plug

3. Um den gewünschten Exit-Plug-Parameter zu definieren, klicken Sieauf Next. Abbildung 6.12 zeigt die Definition des Url-Parameters. Da-mit die URL beim Anstoßen des Exit-Plugs als Ziel-URL erkannt wird,müssen Sie den Parameter Url nennen.

Abbildung 6.12 Definition des URL-Parameters

4. In unserem NavigationTester-Beispiel ist der benötigte Exit-Plug Navi-gateToApplication im Interface-View-Controller NavigationTes-terInterfaceView der Komponente NavigationTesterComp defi-niert (siehe Abbildung 6.13).

Abbildung 6.13 Exit-Plug NavigationToApplication

Page 22: Web Dynpro for Java - EDV-BUCHVERSAND

221Navigation außerhalb des SAP NetWeaver Portal

5. Der letzte Schritt ist nun das Anstoßen des Exit-Plugs. Dazu müssen Siedie entsprechende wdFirePlugNavigateToApplication()-Me-thode des Component-Interface-View-Controllers rufen.

Controller-Usage anlegen

Da wir in unserem NavigationTester-Beispiel die Navigation aus demWeb-Dynpro-View NavigationDataView anstoßen wollen, müssen Siezuerst eine so genannte Controller-Usage anlegen, um den Component-Interface-View-Controller NavigationTesterInterfaceView innerhalbdes View-Controllers zu rufen.

1. Öffnen Sie dazu den View Editor durch einen Doppelklick auf denWeb-Dynpro-View NavigationDataView im Web Dynpro Explorer(siehe Abbildung 6.14). Alternativ können Sie im Kontextmenü desWeb-Dynpro-Views den Edit-Eintrag wählen.

Abbildung 6.14 NavigationDataView im Web Dynpro Explorer

2. Wählen Sie im View Editor die Registerkarte Properties und klicken Sieauf den Add-Button. Abbildung 6.15 zeigt den dadurch geöffneten Di-alog, in dem Sie den Interface-View-Controller NavigationTester-InterfaceView auswählen.

Abbildung 6.15 Definition der Controller-Usage

3. Nach dem erfolgreichem Anlegen der benötigten Controller-Usagewird diese auf der Registerkarte Properties im View Editor angezeigt.

Page 23: Web Dynpro for Java - EDV-BUCHVERSAND

Web-Dynpro-NavigationTester222

Abbildung 6.16 zeigt die definierten Controller-Usages des Web-Dyn-pro-Views NavigationDataView.

Abbildung 6.16 Liste der definierten Controller-Usages im View Editor

4. Neben der Verwendung des View Editors können Sie die definiertenController-Usages auch direkt im Web Dynpro Explorer anzeigen, in-dem Sie die entsprechenden Views expandieren, wie Abbildung 6.17zeigt.

Abbildung 6.17 Liste der definierten Controller-Usages im Web Dynpro Explorer

Aufruf desExit-Plugs

Nachdem Sie die Controller-Usage angelegt haben, können Sie im View-Controller direkt auf den Interface-View-Controller zugreifen und mithilfeder wdFirePlugNavigateToApplication()-Methode den Exit-Pluganstoßen, wie Listing 6.6 zeigt, das Teil des Event-Handlers onActionNa-vigate() ist.

// Navigate to the selected Web Dynpro application// using the Exit-Plug wdThis .wdGetNavigationTesterInterfaceViewController() .wdFirePlugNavigateToApplication( wdContext

Page 24: Web Dynpro for Java - EDV-BUCHVERSAND

223Navigation außerhalb des SAP NetWeaver Portal

.currentNavigationDataElement() .getFullNavigationTargetString());

Listing 6.6 Aufruf des Exit-Plugs

Zuerst greifen wir über wdThis.wdGetNavigationTesterInterface-ViewController() auf den benötigten Interface-View-Controller zu.Die benötigte Applikations-URL ermitteln wir über das Context-AttributFullNavigationTargetAsString des NavigationData-Context-Kno-tens.

Das FullNavigationTargetAsString-Context-Attribut ist hierbei einschönes Beispiel, wie Sie mithilfe eines calculated-Attributes den benö-tigten Wert in Abhängigkeit anderer Context-Attribute ermitteln können.Listing 6.7 zeigt die Berechnung der kompletten Applikations-URL, alsoinklusive eventueller Übergabeparameter, als Teil der Methode getNavi-gationDataFullNavigationTargetString().

fullNavigationTarget.append( wdContext.currentNavigationDataElement(). getAbsoluteTarget());

String businessParameters = wdContext.currentNavigationDataElement() .getBusinessParameterString();

if (!StringUtil.isEmpty(businessParameters)) { fullNavigationTarget.append('?') .append(businessParameters);}

Listing 6.7 Ermittlung der vollständigen Applikations-URL

6.2.6 Starten der Web-Dynpro-Zielapplikation in einem zusätzlichen Fenster

Durch die Verwendung des Exit-Plugs wird die Web-Dynpro-Applikation,die die Navigation angestoßen hat, beendet, sobald zur gewünschtenZielapplikation navigiert wurde. Sobald Sie aber die navigierende Web-Dynpro-Applikation nicht beenden, sondern parallel weiter benutzenmöchten, muss die gewünschte Zielapplikation in einem neuen Fensterdes Webbrowsers geöffnet werden. Durch Verwendung des IWDWindow-Manager ist dies ohne große Probleme möglich, wie Listing 6.8 zeigt.

Page 25: Web Dynpro for Java - EDV-BUCHVERSAND

Web-Dynpro-NavigationTester224

IWDWindow browserWindow = wdComponentAPI.getWindowManager(). createNonModalExternalWindow( wdContext.currentNavigationDataElement() .getFullNavigationTargetString(), wdContext.currentNavigationDataElement() .getTargetTitle());

browserWindow.open();

Listing 6.8 Starten der Zielanwendung in einem neuen Fenster

Verwendung desLinkToURL-UI-

Elementes

Zu guter Letzt wollen wir Ihnen eine weitere Möglichkeit nicht vorenthal-ten, wie Sie die Zielanwendung in einem neuen Fenster starten können:Bei der Verwendung des IWDLinkToURL-UI-Elementes können Sie überdas target-Attribut definieren, in welchem Fenster des Webbrowsers dieangegebene URL aufgerufen werden soll. Bei Verwendung des _BLANK-Wertes, der als Standardwert angeboten wird, wird die URL in einemneuen Fenster angezeigt.

Abbildung 6.18 zeigt die Definition eines IWDLinkToURL-UI-Elementes.Als URL wird die weiter oben ermittelte Applikations-URL verwendet.

Abbildung 6.18 Verwendung des LinkToURL-UI-Elementes

Nachdem wir nun eingehend die Navigation zwischen Web-Dynpro-Ap-plikationen außerhalb des SAP NetWeaver Portal besprochen haben, wer-den wir im nächsten Abschnitt auf die Encodierung der Übergabeparame-ter eingehen. Danach werden wir die Möglichkeiten beleuchten, dieIhnen zur Verfügung stehen, sobald Ihre Web-Dynpro-Anwendungen in-nerhalb des SAP NetWeaver Portal aufgerufen werden.

Page 26: Web Dynpro for Java - EDV-BUCHVERSAND

225Encodierung von Übergabeparametern

6.3 Encodierung von Übergabeparametern

Um die korrekte Übertragung der definierten Übergabeparameter sicher-zustellen, müssen die entsprechenden Parameterwerte encodiert werden.

Verwendung der JDK-1.3-encode()-Methode

Da das SAP NetWeaver Developer Studio auf Basis des Java DevelopmentKit 1.3 (JDK) arbeitet, steht hierfür nur der standardmäßige URLEnco-der.encode()-Aufruf zur Verfügung, der keine Definition der gewünsch-ten Code-Page ermöglicht. Da Ihre Installation von SAP NetWeaver 2004aber auf Basis des JDK 1.4 arbeitet, können wir mittels Java-Reflexion dieerweiterte encode()-Methode rufen, die die Definition der gewünschtenCode-Page erlaubt.

Da wir diese Funktionalität an verschiedenen Stellen (und in verschiede-nen Beispielen dieses Buches) benötigen, haben wir die Hilfsklassecom.sap.wdbp.encode.URLEncode definiert, die allen Beispielen in die-sem Buch über die Web-Dynpro-Entwicklungskomponente tc~utilszur Verfügung steht. In Anhang A erklären wir ausführlich, was Sie bei derDefinition dieser Entwicklungskomponente beachten müssen.

An dieser Stelle wollen wir nun als Erstes die Schritte beschreiben, die Siebenötigen, um die URLEncode-Hilfsklasse zu verwenden. Danach werdenwir auf ihre konkrete Verwendung – das Encodieren der Parameterwerte– eingehen.

6.3.1 Einbindung der Web-Dynpro-Entwicklungs-komponente tc~utils

Um eine bestimmte Funktionalität aus einer anderen (Web-Dynpro-)Ent-wicklungskomponente zu nutzen, müssen Sie eine entsprechende Ver-knüpfung zwischen der Entwicklungskomponente definieren, die dieseFunktionalität bereitstellt, und derjenigen, die diese Funktionalität nutzenwill.

Definition von Public Parts und Public Part Entities

Eine Entwicklungskomponente stellt die von anderen Entwicklungskom-ponenten nutzbare Funktionalität über Public Parts zur Verfügung. EinPublic Part wiederum definiert über die so genannten Public Part Entitiesdiejenigen Objekte bzw. Funktionen, die nach außen für andere Entwick-lungskomponenten sichtbar sein sollen.

Abhängig vom Typ der Entwicklungskomponente können die unter-schiedlichsten Typen von Public Part Entities definiert werden. Eine Web-Dynpro-Entwicklungskomponente kann unter anderem Public Part Enti-ties für Web-Dynpro-Komponenten oder Web-Dynpro-Komponenten-

Page 27: Web Dynpro for Java - EDV-BUCHVERSAND

Web-Dynpro-NavigationTester226

Interfaces definieren. Neben diesen Web-Dynpro-Entitäten kann eineWeb-Dynpro-Entwicklungskomponente aber auch einfache Java-Klassenüber einen Public Part bereitstellen. Genau dies tut der Public Part Utilsder Entwicklungskomponente tc~utils, den wir nun im Web-Dynpro-NavigationTester benutzen wollen. Dazu müssen wir eine Referenz, die sogenannte Used-DC-Beziehung, für den Public Part Utils erzeugen.

1. Navigieren Sie im Web Dynpro Explorer zum Verzeichnis Used DCs,das sich unterhalb von DC MetaData • DC Definition im Navigation-Tester-Projekt befindet. Durch den Befehl Add Used DC… im Kontext-menü von Used DCs starten Sie die Definition dieser Referenz (sieheAbbildung 6.19).

Abbildung 6.19 Hinzufügen einer Referenz zu einer Entwicklungskomponente

2. Im folgenden Dialog wählen Sie den Public Part Utils innerhalb dertc~utils-Entwicklungskomponente, die hier als tc/utils angezeigtwird. Wie Sie in Abbildung 6.20 sehen, können Sie einen Public Partgrundsätzlich innerhalb der Registerkarte Active oder der RegisterkarteInactive auswählen.

Aktive undinaktive Entwick-

lungskompo-nenten

Sobald Sie die Entwicklung einer (Web-Dynpro-)Entwicklungskompo-nente abgeschlossen haben, können Sie diese aktivieren und somit of-fiziell für eine Verwendung in anderen Entwicklungskomponenten frei-geben. Im Regelfall sollten Sie nur auf aktive (also freigegebene) PublicParts bzw. Entwicklungskomponenten zugreifen, da Sie ansonsten beieventuellen Änderungen des verwendeten inaktiven Public Parts Ihreeigene (Web-Dynpro-)Entwicklungskomponente anpassen müssen. Inunserem Beispiel wählen wir den Public Part Utils aus der Liste derinaktiven Entwicklungskomponenten, da wir alle an unseren Beispielenbeteiligten Entwicklungskomponenten selbst entwickeln.

Page 28: Web Dynpro for Java - EDV-BUCHVERSAND

227Encodierung von Übergabeparametern

Abbildung 6.20 Definition des Public Parts Utils

Bei der Definition einer Used-DC-Beziehung sollten Sie immer den ge-wählten Dependency Type beachten. Da wir in unserem Beispiel dieURLEncode-Hilfsklasse verwenden wollen, die Teil des Public PartsUtils ist, müssen wir hierfür Build Time und Run Time wählen. Damitstellen Sie sicher, dass die URLEncode-Hilfsklasse während der Kompi-lierung des NavigationTester-Projektes verfügbar ist.

3. Nach einem Klick auf die Finish-Taste wird die benötigte Referenz er-zeugt. Abbildung 6.21 zeigt einen Ausschnitt der definierten Referen-zen. Wie Sie erkennen können, wird dabei eine Used-DC-Beziehungimmer in der Form

<DC-Name> (<Public Part Name>)

angezeigt; in unserem Beispiel also tc/utils (Utils).

Page 29: Web Dynpro for Java - EDV-BUCHVERSAND

Web-Dynpro-NavigationTester228

Abbildung 6.21 Definierte Public Parts

Verwendung einerSharing Reference

Um zur Laufzeit sicherzustellen, dass der Public Part Utils bzw. die darinenthaltenen Java-Klassen wie zum Beispiel die URLEncode-Hilfsklassevom NavigationTester auch benutzt werden kann, müssen Sie nun eine sogenannte Sharing Reference definieren. Eine Sharing Reference definierteine Laufzeitabhängigkeit zu einer bestimmten (Web-Dynpro-)Entwick-lungskomponente, zu einer bestimmten Webapplikation oder zu einembestimmten Portal-Service.

Zusammenhangmit den verwen-

deten Java-Class-loadern

Aus technischer Sicht bedeutet eine Sharing Reference zu einer der obengenannten Entitäten immer eine Referenz auf den entsprechenden Java-Classloader der (Web-Dynpro-)Entwicklungskomponente, der Webappli-kation oder des Portal-Service. Ohne diese Classloader-Referenz kannzum Beispiel die NavigationTester-Anwendung keine Klassen aus demPublic Part Utils laden und somit auch nicht benutzen.

Ohne die korrekte Definition der benötigten Sharing Reference erhaltenSie zur Laufzeit eine ClassNotFound-Exception, sobald Sie eine Klasseaus der – nicht korrekt referenzierten – (Web-Dynpro-)Entwicklungskom-ponente, der Webapplikation oder dem Portal-Service benutzen wollen.

1. Um für das NavigationTester-Projekt die benötigte Sharing Referencezu definieren, öffnen Sie das Eigenschaftenfenster des Projektes überden Properties-Eintrag im Kontextmenü des Projektes (siehe Abbil-dung 6.22).

Abbildung 6.22 Editieren der Web-Dynpro-Projekteigenschaften

Page 30: Web Dynpro for Java - EDV-BUCHVERSAND

229Encodierung von Übergabeparametern

Anlegen einer Sharing Reference

2. Im darauf folgenden Dialog wählen Sie links Web Dynpro Referencesund dann die Registerkarte Sharing references (siehe Abbildung 6.23).Mit einem Klick auf den Add-Button können Sie die neue Sharing Re-ference anlegen.

Abbildung 6.23 Eigenschaftenfenster eines Web-Dynpro-Projektes

3. Abbildung 6.24 zeigt die Definition der Sharing Reference für den Pub-lic Part Utils der tc~utils-Entwicklungskomponente. Wie Sie er-kennen können, referenzieren Sie immer die entsprechende Entwick-lungskomponente (oder Webapplikation) und nicht denentsprechenden Public Part. Sharing References auf Portal-Services ha-ben eine besondere Syntax, die wir in Kapitel 7 besprechen werden.

Abbildung 6.24 Definition einer Sharing Reference

Page 31: Web Dynpro for Java - EDV-BUCHVERSAND

Web-Dynpro-NavigationTester230

4. Mit einem Klick auf OK wird die gewünschte Sharing Reference ange-legt und, wie Sie in Abbildung 6.25 erkennen können, auch im Eigen-schaftenfenster des Projektes angezeigt.

Abbildung 6.25 Definierte Sharing References

6.3.2 Beschreibung der Datei portalapp.xml

Bevor wir auf die konkrete Verwendung der URLEncode-Hilfsklasse einge-hen werden, die Teil des Public Part Utils ist, möchten wir Ihnen an die-ser Stelle nicht vorenthalten, wie und wo die definierten Sharing Refe-rences in Ihrem Web-Dynpro-Projekt abgelegt werden.

1. Wechseln Sie hierzu in den Navigator und öffnen Sie das Navigation-Tester-Projekt. Im Verzeichnis gen_wdp finden Sie die generierten Da-teien Ihres Web-Dynpro-Projektes. Neben den benötigten Java-Klas-sen im Unterverzeichnis packages finden Sie dort auch die Dateiportalapp.xml (siehe Abbildung 6.26).

Abbildung 6.26 Erzeugte Datei portalapp.xml

2. Um die Datei portalapp.xml anzuzeigen, wählen Sie in ihrem Kontext-menü Open With • Text Editor (siehe Abbildung 6.27).

Page 32: Web Dynpro for Java - EDV-BUCHVERSAND

231Encodierung von Übergabeparametern

Abbildung 6.27 Anzeigen der Datei portalapp.xml

3. Abbildung 6.28 zeigt einen Ausschnitt aus der Datei portalapp.xml desNavigationTester-Projektes. Wie Sie erkennen können, taucht die ebendefinierte Sharing Reference für sap.com/tc~utils in der Liste derdefinierten Sharing References auf.

Abbildung 6.28 Definierte Sharing References

Standardmäßig definierte Sharing References

Neben den von Ihnen definierten Sharing References sind für jedes Web-Dynpro-Projekt automatisch zwei Sharing References definiert, ohne diekeine Web-Dynpro-Anwendung erfolgreich ausgeführt werden kann.sap.com/tc~wd~dispwda zeigt dabei grundsätzlich benötigte Ressour-cen, wie zum Beispiel die verschiedenen Dateien der unterschiedlichenThemes. sap.com/tc~wd~corecomp enthält wichtige generische Web-Dynpro-Komponenten, beispielsweise für unterschiedliche Wertehilfen,die jeder Web-Dynpro-Anwendung zur Verfügung stehen.

In Kapitel 10 gehen wir ausführlicher auf die einzelnen Bestandteile dieserbeiden (generischen) Web-Dynpro-Entwicklungskomponenten ein.

6.3.3 Encodierung der Parameterwerte

Verwendung der UTF-8-Encodierung

Nachdem wir nun durch Verwendung des Public Parts Utils dertc~utils-Entwicklungskomponente die Hilfsklasse URLEncode in unse-rem NavigationTester verwenden können, wollen wir mit dessen Hilfe dieentsprechenden Parameterwerte der Übergabeparameter encodieren.

Page 33: Web Dynpro for Java - EDV-BUCHVERSAND

Web-Dynpro-NavigationTester232

Die URLEncode-Hilfsklasse benutzt dabei grundsätzlich die UTF-8-Enco-dierung.

Definition vonÜbergabe-

parametern imNavigation Tester

Wie weiter oben schon angesprochen, können Sie mithilfe des Web-Dyn-pro-NavigationTesters sehr einfach beliebige Übergabeparameter definie-ren. Abbildung 6.29 zeigt die Definition der applikationsspezifischen Pa-rameter Parameter1 und AnotherParameter. Über die Buttons Add undDelete können Sie beliebige weitere Parameter definieren bzw. wieder lö-schen. Unterhalb der Tabelle mit der Definition der unterschiedlichen Pa-rameter zeigt der NavigationTester zudem die sich aus der aktuellen Para-meterdefinition ergebende URL-konforme Darstellung.

Abbildung 6.29 Definition von Übergabeparametern

Diese URL-konforme Darstellung wird über das calculated-AttributBusinessParameterAsString des NavigationData-Context-Knotensdefiniert. Damit stellen Sie auf einfache Weise sicher, dass der entspre-chende Wert bei jeder Änderung der einzelnen Parameter automatischangepasst wird.

Listing 6.9 zeigt die Implementierung der getNavigationDataBusi-nessParameterString()-Methode der Web-Dynpro-Komponente Na-vigationTesterComp, in der die URL-konforme Darstellung berechnetwird.

businessParameters.setLength(0);for (int i = 0;

i < wdContext.nodeBusinessParameter().size();i++) {

IPublicNavigationTesterComp.IBusinessParameterElementparameter = wdContext.nodeBusinessParameter()

.getBusinessParameterElementAt(i);

if ((parameter.getName() != null)&& (parameter.getValue() != null)) {

businessParameters

Page 34: Web Dynpro for Java - EDV-BUCHVERSAND

233Navigation innerhalb des SAP NetWeaver Portal

.append(parameter.getName())

.append('=')

.append(urlEncode.encode(parameter.getValue()));

if (i < wdContext.nodeBusinessParameter().size() - 1) {businessParameters.append('&');

}}

}return businessParameters.toString();

Listing 6.9 Encodierung der Übergabeparameter

Wie Sie erkennen können, werden alle Parameterwerte über den Aufrufder encode()-Methode der URLEncode-Hilfsklasse erzeugt. Die benö-tigte urlEncode-Instanz erzeugen wir im Übrigen während der Initialisie-rung der Komponente NavigationTesterComp.

Im Beispiel aus Abbildung 6.29 entspricht die URL-konforme Darstellungdem definierten Übergabeparameter:

Parameter1=Web+Dynpro+Best+Practices &AnotherParameter=A+value+containing+some+special +characters+like+%C3%84%C3%96%C3%9C%C3%A4%C3%B6%C3%BC %29%28%26%C2%A7%3F

Die Encodierung der Übergabeparameter ist unabhängig davon, ob SieIhre Web-Dynpro-Anwendung innerhalb oder außerhalb des SAP Net-Weaver Portal starten.

6.4 Navigation innerhalb des SAP NetWeaver Portal

In Kapitel 5 haben wir die grundsätzlichen Möglichkeiten besprochen, dieIhnen das SAP NetWeaver Portal bietet, um Ihre Web-Dynpro-Anwen-dungen im Portal in Form eines Web-Dynpro-iViews aufzurufen, in Work-sets oder Rollen zu gruppieren, bestimmten Benutzergruppen zuzuord-nen oder die gewünschte Navigationsstruktur zu definieren, über diedann der Benutzer mithilfe der Top-Level-Navigation und/oder der De-tail-Navigation zwischen den einzelnen Applikationen navigieren kann.

Page 35: Web Dynpro for Java - EDV-BUCHVERSAND

513Index

Index

AAccess List 497Activity 359Adobe Document Service (ADS) 421Anwendungsarchitektur 25, 28Anwendungsprojekt 502Anwendungsschicht eines Server-

Knotens 388Anwendungsspezifische Konfigu-

ration 435Authentifizierung 437Expiration time 436Logoff-URL 436Standard-Locale 436

Anwendungsspezifische Personali-sierung 179

Application properties 435Application Server 380Applikationsname 211, 212Applikations-URL 211

absolute 211Aufrufen des Exit-Plugs 222Auslesen von Parametern 214Austauschbarkeit 34Authentifizierung 437

Webservice-Aufrufe 120

BBenutzermanagement 165Benutzerpersonalisierung 323Business Object Editor 287Business-Client-Protokoll 419Business-Objekte 234, 346

Ccalculated-Contextattribut 134Categories 163CBS 23Change Management Service 498Classloader-Referenz 387, 389, 459

Sharing Reference 405Classloading-Konzept 389ClassNotFound-Exception 228Client Abstraction 172Cluster

Debugging-Knoten 409

Cluster-Systemlandschaft 380CMS 23Component-Build-Service 498Component-Interface-Controller 34,

493Context-Mapping 60

Component-Interface-Definition 34Delegation an Component-

Controller 59Component-Interface-View 30, 31, 92,

136, 493Component-Usage 40, 262

Referencing Mode 43, 63Component-Usage-Lifecycle

createOnDemand 42, 64manual 42, 45

Configuration Tool 382offline 382online 382

Configuration-Adapter-Service 414Content Administrator 456Content Area 157Context-Mapping 72, 129, 263

bidirektionales 370Contextual-Navigation-Panel 342Controller-Usage 221Custom Coding Area 18

DData Link 370Data Modeler 79, 370Data-Link 122DC-Archiv 54DC-Build 49DC-Name 211, 212DC-Separation 50Debugging 409Debugging-Knoten 409Debug-Informationen 200Debug-Modus 199, 383

eines Server-Knotens 396Default-View-Problem 100, 104Definition von Operations 287Deklaration

Data-Link 79

Page 36: Web Dynpro for Java - EDV-BUCHVERSAND

Index514

Einbettung eines Component-Interface-Views 97

Event 83Externes Interface-Context-

Mappings 79Interface-Context-Mapping 77Komponenten-Interface 37Komponenten-Interface-Implemen-

tierung 55, 57Layout-View 95Startup-Plug-Parameter 101ViewContainer-UI-Element 95View-ID 105Web Dynpro-Komponente 55

deklarative UIs 126Deklaratives Programmiermodell 18Delta-Link 183, 290Deployable Object 63DeploymentManagerComp 260Design Time Repository 497Detail-Navigation 159, 233, 237, 339Detail-Viewer 301Development-Component 497, 499Development-Configuration 497Development-Object 499Dialog-Instanz 380DTR 23dynamische Event-Subskription 87dynamische Parameter-Mappings 132dynamische Programmierung 127dynamisches UI 126

Eencode() 225End-User-Personalization 198, 323Enge Kopplung 43Enqueue Server 381Enterprise Services Architecture 24

Enterprise Service 24Enterprise Service Repository 24UI-Pattern 24

Entwicklungsgeschwindigkeit 29Erweiterung des Navigation-Panels

159Event Listener 343Eventing 82

dynamische Subskription 87

Event-Handler subskribieren 85Event-Parameter 83Expiration Time 426External-Library-Entwicklungskompo-

nente 372Externes Interface-Context-Mapping

27

FFaceless Component 261Feature2Sample-Matrix 504, 505File-Upload 316fire() 345

GGameStation-Anwendung 25

Anwendungsarchitektur 66Deployment-Manager-Kompo-

nente 45, 65, 74Spiel-Komponente 61Spiel-Komponenteninstanz 62, 69,

71Spiel-Komponenten-Interface 36Toolbar-Komponente 71

Google Web APIs Developer's Kit 115Google-Suche 116

HHard Reference 391Hauptkomponenten des Web AS 380hierarchischen Context-Knoten 251HTTP Provider Service 447HTTP-Session 442HTTP-Session-Timeout 442

IiFrames 192, 234IGS 416Implementierung

Dynamische Event-Subskription 88Erzeugung von Spiel-Komponenten-

instanzen 69Importieren von Business Objects 286Inbound-Plugs 136

Dispatching in Component-Interface-Views 108

Dispatching in Interface-Views 108

Page 37: Web Dynpro for Java - EDV-BUCHVERSAND

515Index

Infrastrukturschicht eines Server-Knotens 386Anwendungscontainer 386Interfaces 386Libraries 386Services 387

initiale Darstellungen 136Inner Node 251Inner Page 157Input Element 369Interface-Context-Mapping 27

Deklaration 77externes 75, 76, 79internes 74isInputElement-Eigenschaft 75, 78Mapping-Kette 82

Interface-Komponente eines Server-Knotens 386

Inter-Komponenten-Navigation 107, 108

Internet Graphics Server 416isolierte iViews 192, 343isRunningInPortal() 205iView 154, 169iView Editor 154, 173iView Tray 177iView Wizard 167iView-Template 335IWDComponentUsage-API 42, 62, 87

Referencing Mode 89IWDInputField 206IWDLinkToAction 348IWDLinkToURL 224IWDTable 140, 217IWDTextView 148IWDTransparantContainer 148IWDTree 255, 266IWDViewContainerUIElement 127IWDVisibility 205IWDWindowManager 223

JJ2EE Dispatcher 380J2EE Telnet Console 383J2EE-Entwicklungskomponente 359Java VM-Parameter 438Java-Classloader 228

Java-DC 49JCo 430JCo Pool 430JCo-Destination 189, 465, 466, 467

Administration und Konfiguration 465

Testen einer JCo-Verbindung 466JNDI-Lookups 270JVM-Thread-Dumps 383

KKategorien 163Kernel-Schicht 385Klassifikation von Komponenten 494

Library-Komponenten 496Model-Komponenten 496UI-Komponenten 495Visuelle Komponenten 495Wurzel-Komponenten 495

Komponentendiagramm 31Komponenteninstanz 40Komponenten-Interface 25, 34, 44

Component Usage 43Definition 35, 493Deklaration 37Implementierung 35, 55, 491

KomponentisierungArchitektur 492Benutzeroberfläche 28Beschleunigter Entwicklungs-

prozess 50Component-Interface-View 93Data Modeler 66DC-Separation 50Deploy&Play-Konzept 25Enge Kopplung 29Interface-Context-Mapping 27, 36,

72Klassifikation von Komponenten

494Lose Kopplung 25, 44, 46, 61Nachteile großer Komponenten 29Navigation 107, 108

Konfigurationanwendungsspezifische Eigen-

schaften 435Entwicklungsmodus 418

Page 38: Web Dynpro for Java - EDV-BUCHVERSAND

Index516

ExpirationTime 426Komprimierung übertragener Daten

447Komprimierung von Response-

Daten 429Logs und Traces 448Propertysheet default 415sap.systemLocale 420Security Session 444Session Management 442sessionübergreifende Daten 427SLD-Service 450SSL und SNC 451SSO Login-Ticket 446Standard-Theme 420Stylesheets 435Text-Mappings 422Trace-Level 448Validierungsverhalten beim Rendern

434

LLaufzeitarchitektur des Web AS 384Laufzeitkomponenten der Web-

Dynpro-Laufzeit 392Laufzeit-Metadaten von Web Dynpro

393Laufzeitumgebung 205Layout-View 95Library-Komponente 386, 496Log Configurator 483, 486

Category 483Destination 485Formatter 485Location 484Severity Level 483

Log Viewer 456, 487Logoff-URL 419lose Kopplung 343

MMapping von Übergabeparametern

291Message-Server 381Meta-Attribute 197, 325MIME-Cache 429Model 34Model-Binding 123

Model-Components 301Model-Klassen 119Model-Komponente 121, 301Model-Typ 117Model-View-Controller-Pattern 19Mögliche Fehlerquellen 198Music Store 301

NnavigateAbsolute() 235navigateRelative() 236navigateToObject 282Navigation zwischen Komponenten

107Navigation-Dispatcher-View 109Navigation-Modeler 94, 97Navigation-Panel 157, 159, 181, 339Navigations-Context 240Navigationslink 93Navigationsstruktur 183Navigationsverhalten 237Netzwerkverbindung 452

OObject-based Navigation 234, 273,

284, 345onLoadChildren 266Operations 346Outbound-Plugs 136

PPage Editor 155Page Header 157Parameter 213Parameter-Mapping 267Persistenz 393Personalisierung 196, 323Phasenmodell 18Port 489Portal Content Catalog 167Portal Content Directory 235, 270Portal Eventing 191Portal Landscape 160Portal Pages 155

geschachtelte 158Portal Runtime 275Portal Themes 157Portal-Components 275

Page 39: Web Dynpro for Java - EDV-BUCHVERSAND

517Index

Portal-Einstellungen 193Portal-Eventing 343, 351Portal-Events 343Portal-Historie 239Portal-Navigation 236

absolute 235Portal-Personalisierung 323Portal-Services 276Portal-Themes 157, 175Programmier-Hooks 18Programmiermodell

Custom Coding Area 18deklarativer Ansatz 18Hook-Methoden 18modellgetriebene Entwicklung 18Phasenmodell 18

Property-Editor 163Propertysheet default 415Public Part 47, 225, 362, 497, 499

Archiv 48Definition 26, 47, 49Deklaration 52Dependency Type 54Entities 225Purpose 48, 52

RReferencing Mode 43, 63, 89rekursiver Context-Knoten 251Relative Applikations-URL 209Remote Debugging 409repeatedNode 252Resource-Bundle-Mechanismus 463Reverse-Context-Mapping 369Role-Editors 156Rolle 155Root-Component 135

SSAP Application Integrator 191, 199,

242SAP Developer Network 503SAP Logon-Ticket 165SAP Management Console 383SAP NetWeaver Administrator 382SAP NetWeaver Development Infra-

structure 496

SAP NetWeaver Development Infra-structure (NWDI) 23, 496CBS 23CMS 23DTR 23Komponentenmodell 26, 47, 497,

498SAP NetWeaver Portal 153SAP Web AS

Application Server 21Cluster 21J2EE Dispatcher 21zentrale Services 22

SAP Web Dispatcher 380SAP_LocalSystem 171schwache Referenz 391SDM 382, 398Security Service 418Serverseitiges Eventing 27, 82, 102

Methodenaufrufe als Ersatz 89Service Pack 398Service-Komponenten 387Session-Locale 462Session-Management 427

Scopes 427Session-Sprache 462Sharing Reference 228, 229, 279, 405SLD-Daten 433Software Deployment Manager 398Software-Components 376, 497, 499Sprachermittlung 462

Beispiel 464Sprachressourcen 460SSL 452starke Referenz 391Startup-Plug 136Startup-Plug-Parameter 216Statische Web-Ressourcen 393Struktur-Bindung 70Stylesheet 435Supply-Function 338System Editor 163System Landscape Directory 23, 433,

450, 498System-Alias 166Systeminformation 395

Page 40: Web Dynpro for Java - EDV-BUCHVERSAND

Index518

TTableCellEditors 142Table-Data-Bindings 141Terminologien 422Text Mapping 422Theme 420, 435Thread-Dump 408Top-Level-Navigation 156, 233, 237Tray-Eigenschaften 196Tree-Items 258Tree-Nodes 258Tree-Node-Type 258Tutorials 504

UÜbergabeparameter 172, 175UI-Elemente

Adobe InteractiveForm 421, 429IWDInputField 206IWDLinkToAction 348IWDLinkToURL 224IWDTable 140, 217IWDTextView 148IWDTransparantContainer 148IWDTree 255, 266IWDViewContainerUIElement 127IWDVisibility 205WDTextViewDesign 149

UI-Komponente 30, 89, 495UI-Service-Komponente 496unsubscribe() 344URL-Alias 213URL-Generierung 417URL-Parameter 99, 137, 220Used-DC-Beziehung 226, 261User Coding Area 70User-Interface-Komponente 495UTF-8 232

VVendor 211, 212Versionsinformation 397, 481Verwendungsbeziehung

Web-Dynpro-DC 52zwischen Komponenten 82

View Area 93, 109View Assembly 97, 108

View Designer 94View Set 93, 109View-Composition 35, 97, 109ViewContainer-UI-Element 31, 93, 94,

109View-Designer 256View-Navigation

eventbasiert 102Visual Administrator 382Visuelle Komponente 495VM Heap Size 438VM-Parameter 438

WWDConfiguration 125, 236WDDeployableObjectPart 210WDPortalNavigation 234, 236, 282WDPortalNavigationMode 237WDPortalUtils 205, 281WDTextViewDesign 149WDURLGenerator 209WDWebContextAdapter 137, 214, 217Weak Reference 391Web Dynpro Console 456, 470

Backend-Performance 478Client-Performance 474JARM-Instrumentierung 472Performance-Instrumentierung 475Request-Monitoring 477Sanity Checks 480Server-Performance 471Session-Monitor 481Versionsinformation 481

Web Dynpro Content Administrator 189, 455, 456Aktivieren/Deaktivieren von

Anwendungen 458Browsen von Inhalten 457Classloader-Referenzen 459JCo-Destinationen 465Language Resources 460

Web Dynpro Data Modeler 309Web Dynpro Explorer 117Web Dynpro Foundation Runtime 19

Architekturüberblick 19Client-Abstraktion 20Common Model Interface 20

Page 41: Web Dynpro for Java - EDV-BUCHVERSAND

519Index

generische UI-Services 20Programmiermodell 20Server-Abstraktion 20

Web Dynpro-Komponente 261Web-Dynpro-API

IWDComponentUsage 62IWDEventHandlerId 88IWDEventId 88IWDViewUsageInfo 105IWDWindowInfo-API 105

Web-Dynpro-Applikation 135Web-Dynpro-Building-Blocks

Client-Abstraction-Layer 20Common-Model-Interface 20Generische UI-Services 20Programmiermodell 20Server Abstraction Layer 20UI-Elemente 20

Web-Dynpro-Client-Abstraction 217Web-Dynpro-Container 392Web-Dynpro-Context 249Web-Dynpro-Core-Components 394Web-Dynpro-DC 26, 47, 499, 500

voll qualifizierter Name 63Web-Dynpro-Entwicklungskompo-

nente 359Web-Dynpro-Exit-Plug 219Web-Dynpro-Forum 505Web-Dynpro-iView 154, 160, 233, 334Web-Dynpro-iView-Template 168Web-Dynpro-Komponente 500

Schnittstellen 492voll qualifizierter Name 63Wiederverwendbarkeit 494

Web-Dynpro-Komponentendia-gramm 489Ball-Symbol 490Component Interface-View 489Component-Interface-Controller

490Connector 490Komponenten-Interface 491Socket-Symbol 490

Web-Dynpro-Learning-Map 507Web-Dynpro-NavigationTester 203Web-Dynpro-OBNTesters 274Web-Dynpro-Phasenmodell 18Web-Dynpro-Programmiermodell 20

Web-Dynpro-Projekt 500Web-Dynpro-Service 392Web-Dynpro-Systemkomponenten

394Web-Dynpro-URL-Template 192Web-Dynpro-View 136Web-Dynpro-View-Designers 127Web-Dynpro-Werkzeuge 94Webservice-Model 115Wertehilfe 433Window 32, 93Working Area 157, 159, 238, 339Worksets 155WSDL-Datei 118Wurzel-Komponente 30, 33, 89, 495

XX.509-Client-Zertifikat 165

Zzentrale Cluster-Administration 382zentrale Systemdatenbank 381zentrales Deployment 382, 398Zieladresse

absolute 235