Brie, Mircea; Horga, Ioan Cultural Area Europe: Internal ...
Die Reihe Xpert - Springer978-3-642-11387-1/1.pdf · außergewöhnlichen Menschen: Octavian...
Transcript of Die Reihe Xpert - Springer978-3-642-11387-1/1.pdf · außergewöhnlichen Menschen: Octavian...
Die Reihe Xpert.press vermittelt Professionalsin den Bereichen Softwareentwicklung,Internettechnologie und IT-Management aktuellund kompetent relevantes Fachwissen überTechnologien und Produkte zur Entwicklungund Anwendung moderner Informationstechnologien.
Ulrich Gellertc/o S+P LION AGRobert-Bosch-Str. 968542 [email protected]
Ana Daniela Cristeac/o S+P LION AGRobert-Bosch-Str. 968542 [email protected]
ISSN 1439-5428ISBN 978-3-642-11386-4 e-ISBN 978-3-642-11387-1DOI 10.1007/978-3-642-11387-1Springer Heidelberg Dordrecht London New York
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
© Springer-Verlag Berlin Heidelberg 2011Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die derÜbersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, derFunksendung, der Mikroverfilmung oder der Vervielfältigung auf anderen Wegen und der Speicherungin Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. EineVervielfältigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzender gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland vom 9.September 1965 in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich vergütungspflichtig.Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechtsgesetzes.Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werkberechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne derWarenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermannbenutzt werden dürften.
Einbandentwurf: KuenkelLopka GmbH, Heidelberg
Gedruckt auf säurefreiem Papier
Springer ist Teil der Fachverlagsgruppe Springer Science+Business Media (www.springer.com)
Vorwort
Getreu Albert Einsteins Motto „Example isn’t another way to teach, it is theonly way to teach“ haben wir uns das Ziel gesetzt, mit diesem Buch dem LeserWeb Dynpro ABAP Schritt für Schritt zu erklären. Anhand von praktischen Bei-spielen tauchen Sie von Kapitel zu Kapitel tiefer in die Web-Dynpro-ABAP-Weltein. Aber auch Zusammenhänge mit anderen Bereichen werden Ihnen in Beispielennahegebracht.
In Kap. 1 erklären wir, was Web Dynpro, integriert in der SAP-NetWeaver-Plattform, eigentlich ist.
Kapitel 2 beschäftigt sich mit dem einfachen Einstieg „Easy Access“ in SAP.In Kap. 3 beschreiben wir den Modus anhand eines Beispiels in dem eine Web-
Dynpro-Component erstellt wird, erklären alle Elemente einer View und zeigen,wie man mit dem ABAP Debugger Anwendungen diagnostiziert.
Kapitel 4 behandelt das ABAP Dictionary in dem alle Entwicklungsobjekteerstellt werden, die wir als Basis für unsere Beispiele benutzen. Sie können schnelldie nötigen Kenntnisse erwerben, wie Ihnen Entwicklungsobjekte (die im ABAPDictionary erstellt sind) bei der Erstellung von Web-Dynpro-Applikationen helfenkönnen.
In Kap. 5 präsentieren wir Context-Knoten und Context-Attribute und er-klären deren Wichtigkeit für Web Dynpro. Wir erörtern die Möglichkeiten derErstellung, Benutzung, des Ausfüllens mit Werten und des Lesens der Inhalte.
In Kap. 6 gehen wir auf Datenbindung, Context-Mapping und Interface-Methoden ein. Zu diesem Zweck zeigen wir in einfachen Beispielen die Daten-bindung. Dieses Beispiel wandeln wir stufenweise um, damit der Leser ein klaresBild vom Context-Mapping erhält (sowohl in interner als auch in externer Form –Direct Mapping und Reverse Mapping).
Das Kap. 7 behandelt die View-Controller-Methoden, beginnend mit Beispie-len einiger Hook-Methoden bis zu den Benutzerdefinierten Methoden und denEventhandler-Methoden. Jede Methode wird durch ein Beispiel erläutert.
Kapitel 8 widmet sich dem Layout der UI-Elemente.Im größten Kapitel (Kap. 9) werden die UI (User-Interface)-Elemente ausgie-
big beschrieben. Jedes UI-Element wird durch ein Beispiel erläutert. Gleichzeitigzeigen wir für jedes UI-Element die dynamische Programmierung. Wir stellen
v
vi Vorwort
jedoch nicht nur die UI-Elemente vor, sondern bieten dem Leser weitere Zusatz-informationen.
Das Kap. 10 beinhaltet Nachrichten und Ausnahmen. Wir beginnen mitder Schaffung der nötigen Klassen (Nachrichtenklassen, Ausnahmeklassenund Assistance-Klassen) und zeigen, wie sie im Rahmen der Web-Dynpro-Komponenten zu benutzen sind und wie damit solide Applikationen erstellt werden.
Kapitel 11 beschäftigt sich mit dem Erstellen von mehrsprachigen Applikatio-nen auf der Ebene der Interfaces und der Ebene der Stammdaten. Wir präsentierenauch den Modus, mit dem wir mit diesen Daten in Web-Dynpro-Komponentenarbeiten können.
In Kap. 12 werden verschiedene Web-Dynpro-Modelle vorgestellt. Wir zeigennicht nur die Art, in der eine Assistance-Klasse, ein Web Service und ein BAPI alsModell verwendet wird, sondern auch den Modus, in dem man Multi ComponentApplikationen erstellen kann.
Das Kap. 13 widmet sich dem ALV (ABAP List Viewer) und den SO (Se-lect Options). Wir fangen wieder mit einfachen Beispielen an und bauen diesestufenweise bis zu einer ALV-Output-Konfiguration und der Kombination mitSOs aus.
In Kap. 14 wird die Integration der Web-Dynpro-Applikationen in dasSAP-NetWeaver-Portal beschrieben. Wir präsentieren die Verbindung mit demBackend-ABAP-System und kommen bis zu WD-Applikationen, die ein PortalEvent senden und auf ein Portal Event reagieren können.
Das vorletzte Kapitel (Kap. 15) handelt von Web Dynpro und Berechtigungen.Wir präsentieren kurz RBAC (Role Based Access Control) und beschreiben dasSAP-NetWeaver-Berechtigungskonzept.
Im letzten Kapitel (Kap. 16) präsentieren wir, wie ein Mind Map uns helfenkann Web Dynpro schneller zu lernen. Wir haben ein Mind Map entworfen, das allelernenden Web-Dynpro-Elemente enthält und sich weiterentwickeln lässt.
Die Beispiele für unser Buch wurden auf einem SAP System mit SAP Net-Weaver 7.00 mit Support Package 17 erstellt. Bei SDN (www.sdn.sap.com) gibtes eine SAP-NetWeaver-Trial-Version mit ABAP und mit SAP GUI, die kostenfreifür Testzwecke genutzt werden kann. Die meisten Übungen lassen sich damit ma-chen. Die Konfigurations-Steps sind auch bei SDN zu finden. Um mit dem SAPInteracktive Forms by ADOBE zu arbeiten, braucht man beide NetWeaver-Trial-Versionen (ABAP und Java), da ADS integraler Bestandteil der SAP-NetWeaver-Java-Version ist. Zusätzlich braucht man auch den ADOBE LiveCycle Designer ausdem SAP-Service-Marktplatz. Die Konfigurations-Steps sind im SAP Press-BuchSAP Interactive Forms by Adobe (Hauser et al.) beschrieben. Um mit dem Por-tal arbeiten zu können braucht man die SAP-NetWeaver-Java-Trial-Version. AlleSoftware- und Hardwareanforderungen und die Konfigurations-Steps sind im SAPPress Buch Developer’s Guide to SAP NetWeaver Portal Applications (Banner et al.)beschrieben.
Die Erstellung eines Buches ist ein weiter Weg. Viele Diskussionen mit Studen-ten und Entwicklern haben bei uns die Idee reifen lassen, ein Praxisbuch zum ThemaWeb Dynpro ABAP zu erarbeiten. Wichtigster Punkt war dabei, die Leserin oder
Vorwort vii
den Leser Schritt für Schritt anhand von praktischen Beispielen in das Themenge-biet einzuarbeiten. Viele Wochenenden, Urlaube und Abende wurden investiert unddie positive Unterstützung unserer Kollegen hat uns immer wieder neue Energiegegeben.
Danksagung
Bedanken wollen wir uns vor allem bei unseren Korrekturlesern Dieter Schmitt undHeinz-Jürgen Gebhardt, die uns durch ihre Hinweise und Anmerkungen eine großeHilfe waren.
Ulrich Gellert möchte sich zuerst bei allen Kollegen der S + P LION AG be-danken, die ihn stets unterstützt haben. Danken will ich meinem leider viel zu frühverstorbenen Vater Gerhard Gellert, der mich 1983 in die Welt der IT eingeführt hatund ohne den unsere Firma nie das geworden wäre, was sie heute ist. Auch meinerMutter, Gabriele Gellert, gilt mein besonderer Dank, da sie mich bis heute aktivunterstützt und die gute Seele unseres Unternehmens ist. Ich danke meiner liebenFrau Carmen und meinen Kindern Alexa und Marc ohne ihre Unterstützung hätteich dieses Buch nie mitgestalten können.
Ana Daniela Cristea bedankt sich zuerst bei NWCON Technology Consul-ting, vor allem bei Thomas Muschalik, und der S + P LION AG, die mir geholfenund mich unterstützt haben. Bei dieser Gelegenheit möchte ich jenen danken, diemeine Schritte während meiner Doktorarbeit begleitet haben, insbesondere zweiaußergewöhnlichen Menschen: Octavian Prostean und Mircea Vladutiu.
Nicht vergessen will ich auch diejenigen, die mich ermutigt haben meine erstenBücher und Artikel zu veröffentlichen: Poanta Aron und Panoiu Caius, denen ichauf diesem Weg für ihre wertvollen Ratschläge danke.
Nicht zuletzt will ich mich bei meiner Familie und Freunden bedanken. Beson-ders bei meiner Mutter Sabina Cristea und bei Susanne und Edgar Hammes, diemich nach Kräften unterstützt haben, damit ich die nötige Zeit hatte dieses Buchmitzugestalten.
Heidelberg, Deutschland Ulrich GellertJuli 2010 Ana Daniela Cristea
ix
Inhaltsverzeichnis
1 Was ist Web Dynpro? . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 SAP Easy Access . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1 Ändern des SAP Easy Access . . . . . . . . . . . . . . . . . . 62.2 Favoriten-Liste . . . . . . . . . . . . . . . . . . . . . . . . . 62.3 Festlegen einer Transaktion als Starttransaktion . . . . . . . . 82.4 Erstellen einer Verknüpfung . . . . . . . . . . . . . . . . . . 9
3 Designen einer Web-Dynpro-Komponente . . . . . . . . . . . . . 113.1 View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.1 View-Layout . . . . . . . . . . . . . . . . . . . . . . 143.1.2 Context-View . . . . . . . . . . . . . . . . . . . . . 173.1.3 Aktionen . . . . . . . . . . . . . . . . . . . . . . . . 183.1.4 Methoden . . . . . . . . . . . . . . . . . . . . . . . 203.1.5 Eigenschaften . . . . . . . . . . . . . . . . . . . . . 213.1.6 Attribute . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2 Componentcontroller . . . . . . . . . . . . . . . . . . . . . . 233.3 Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.4 Web-Dynpro-Anwendung . . . . . . . . . . . . . . . . . . . . 253.5 ABAP Debugger . . . . . . . . . . . . . . . . . . . . . . . . 283.6 Konfiguration der Web Dynpro Anmeldeseite . . . . . . . . . 31
4 ABAP Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.1 Datenelement . . . . . . . . . . . . . . . . . . . . . . . . . . 364.2 Domäne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.3 Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.4 Tabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.5 Suchhilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.6 Datenbank-View . . . . . . . . . . . . . . . . . . . . . . . . . 504.7 Tabellentyp . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.8 Sperrobjekt . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5 Context-Knoten und Context-Attribute zum Entwicklungszeitpunkt 575.1 Context-Attribute . . . . . . . . . . . . . . . . . . . . . . . . 585.2 Context-Knoten . . . . . . . . . . . . . . . . . . . . . . . . . 61
xi
xii Inhaltsverzeichnis
5.2.1 Erzeugen eines Knotens unter Verwendungeines ABAP-Dictionary-Repository-Objekts . . . . . 61
5.2.2 Arbeiten mit Kindknoten . . . . . . . . . . . . . . . 67
6 Datenbindung, Context-Mapping und Interface-Methoden . . . . 716.1 Datenbindung (Data binding) . . . . . . . . . . . . . . . . . . 726.2 Context-Mapping . . . . . . . . . . . . . . . . . . . . . . . . 76
6.2.1 Internes Context-Mapping . . . . . . . . . . . . . . . 776.2.2 Externes Context-Mapping . . . . . . . . . . . . . . 80
6.3 Interface-Methoden . . . . . . . . . . . . . . . . . . . . . . . 88
7 View-Controller-Methoden . . . . . . . . . . . . . . . . . . . . . . 937.1 Hook-Methoden . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.1.1 wdDoInit . . . . . . . . . . . . . . . . . . . . . . . . 947.1.2 wdDoExit . . . . . . . . . . . . . . . . . . . . . . . 977.1.3 wdDoModifyView . . . . . . . . . . . . . . . . . . . 987.1.4 wdDoBeforeAction . . . . . . . . . . . . . . . . . . 1047.1.5 wdDoOnContextMenu . . . . . . . . . . . . . . . . . 105
7.2 Supply-Funktion-Methoden . . . . . . . . . . . . . . . . . . . 1107.3 Benutzerdefinierte Instanzmethoden . . . . . . . . . . . . . . 1107.4 Fire-Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . 1137.5 Eventhandler-Methoden . . . . . . . . . . . . . . . . . . . . . 116
8 Layout-UI-Elemente . . . . . . . . . . . . . . . . . . . . . . . . . 1218.1 FlowLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228.2 GridLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248.3 MatrixLayout . . . . . . . . . . . . . . . . . . . . . . . . . . 1268.4 RowLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
9 User-Interface-Elemente (UI-Elemente), statische unddynamische Programmierung . . . . . . . . . . . . . . . . . . . . 1319.1 Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
9.1.1 TimedTrigger . . . . . . . . . . . . . . . . . . . . . 1329.1.2 ButtonChoice – Druckknopfauswahl . . . . . . . . . 135
9.2 Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1419.2.1 DropDownByKey . . . . . . . . . . . . . . . . . . . 1419.2.2 DropDownByIndex . . . . . . . . . . . . . . . . . . 1449.2.3 RadioButtonGroupByIndex . . . . . . . . . . . . . . 147
9.3 Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1499.3.1 ViewContainerUIElement . . . . . . . . . . . . . . . 1509.3.2 TabStrip . . . . . . . . . . . . . . . . . . . . . . . . 1569.3.3 PageHeader . . . . . . . . . . . . . . . . . . . . . . 1609.3.4 ContextualPanel . . . . . . . . . . . . . . . . . . . . 1649.3.5 Tray-UI-Element . . . . . . . . . . . . . . . . . . . . 1659.3.6 MessageArea . . . . . . . . . . . . . . . . . . . . . . 171
9.4 Complex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1749.4.1 Table . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Inhaltsverzeichnis xiii
9.4.2 RoadMap . . . . . . . . . . . . . . . . . . . . . . . . 1839.4.3 PhaseIndicator . . . . . . . . . . . . . . . . . . . . . 1919.4.4 Tree – Sequentielle Implementierung . . . . . . . . . 1989.4.5 DateNavigator . . . . . . . . . . . . . . . . . . . . . 203
9.5 Graphic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2119.5.1 Image . . . . . . . . . . . . . . . . . . . . . . . . . . 2129.5.2 BusinessGraphics . . . . . . . . . . . . . . . . . . . 215
9.6 Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2209.6.1 InteractiveForms . . . . . . . . . . . . . . . . . . . . 2209.6.2 FileUpload . . . . . . . . . . . . . . . . . . . . . . . 229
10 Nachrichten, Ausnahmen und Web Dynpro ABAP . . . . . . . . . 23510.1 Nachrichtenbehandlung . . . . . . . . . . . . . . . . . . . . . 236
10.1.1 Dynamische Texte – gespeichert im Textpoolder Assistance-Klasse . . . . . . . . . . . . . . . . . 236
10.1.2 Text aus der Datenbanktabelle T100 . . . . . . . . . . 23910.2 Ausnahmebehandlung . . . . . . . . . . . . . . . . . . . . . . 242
10.2.1 Ausnahmeklasse mit OTR Text . . . . . . . . . . . . 24310.2.2 Ausnahmeklasse mit Text aus der Nachrichtenklasse . 247
11 Erstellen mehrsprachiger Applikationen . . . . . . . . . . . . . . 25111.1 Erstellung von mehrsprachigen User Interfaces . . . . . . . . 253
11.1.1 Internationalisierung der in ABAP Dictionarydefinierten Datenelemente . . . . . . . . . . . . . . . 254
11.1.2 Internationalisierung von in ABAP Dictionarydefinierten Domänen . . . . . . . . . . . . . . . . . . 255
11.1.3 Internationalisierung von Text aus OTR . . . . . . . . 25511.1.4 Internationalisierung von Texten einer
Assistance-Klasse . . . . . . . . . . . . . . . . . . . 25811.1.5 Internationalisierung von Meldungen . . . . . . . . . 260
11.2 Mehrsprachige Datensätze in der Datenbank . . . . . . . . . . 26211.2.1 Unser Beispiel . . . . . . . . . . . . . . . . . . . . . 26211.2.2 Erstellung von Tabellen-Strukturen
und Internationalisierung von Datensätzen . . . . . . 26411.2.3 Verwendung von internationalisierten
Datensätzen in Web Dynpro . . . . . . . . . . . . . . 269
12 Web-Dynpro-Modell . . . . . . . . . . . . . . . . . . . . . . . . . 27312.1 Assistance-Klasse als Modell für eine
Multikomponenten-Applikation . . . . . . . . . . . . . . . . 27412.2 BAPI als Modell . . . . . . . . . . . . . . . . . . . . . . . . . 289
12.2.1 Erzeugen eines BAPI . . . . . . . . . . . . . . . . . 28912.2.2 Verwenden des erzeugten BAPI als Modell . . . . . . 294
12.3 Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . 29712.3.1 Erstellen des Web Service . . . . . . . . . . . . . . . 30012.3.2 Web-Service-Konfiguration . . . . . . . . . . . . . . 302
xiv Inhaltsverzeichnis
12.3.3 Testen des Web Service . . . . . . . . . . . . . . . . 30412.3.4 Inanspruchnahme des Web Service in Web Dynpro . . 305
13 ALV und Select Options . . . . . . . . . . . . . . . . . . . . . . . 31113.1 SAP List Viewer . . . . . . . . . . . . . . . . . . . . . . . . . 311
13.1.1 Einfaches ALV Beispiel . . . . . . . . . . . . . . . . 31113.1.2 ALV-Konfigurationsmodell . . . . . . . . . . . . . . 314
13.2 Select Options . . . . . . . . . . . . . . . . . . . . . . . . . . 32313.3 ALV und Select Options . . . . . . . . . . . . . . . . . . . . 330
14 Integration einer Web-Dynpro-ApplikationSAP-NetWeaver-Portal . . . . . . . . . . . . . . . . . . . . . . . . 33314.1 Anlegen eines Ordners . . . . . . . . . . . . . . . . . . . . . 33414.2 Verbindung zum Backend-ABAP-System . . . . . . . . . . . 33514.3 Anlegen einer iView . . . . . . . . . . . . . . . . . . . . . . . 33814.4 Anlegen einer Rolle und Rollenzuordnung . . . . . . . . . . . 34014.5 Ausführen der Applikation innerhalb des Portals . . . . . . . . 34214.6 Triggern eines Portalereignisses . . . . . . . . . . . . . . . . 34314.7 Reaktion auf ein Portalereignis . . . . . . . . . . . . . . . . . 34714.8 Anlegen einer Seite (Page) . . . . . . . . . . . . . . . . . . . 34814.9 Ausführen der Anwendung, die die Portalereignisse verarbeitet 350
15 Web Dynpro und Berechtigung . . . . . . . . . . . . . . . . . . . 35315.1 Rollenbasierte Zugriffskontrollmodell – RBAC . . . . . . . . 35515.2 Berechtigung Objektklasse . . . . . . . . . . . . . . . . . . . 35615.3 Berechtigungsobjekt . . . . . . . . . . . . . . . . . . . . . . 35715.4 Berechtigungsfeld . . . . . . . . . . . . . . . . . . . . . . . . 35715.5 Erzeugen einer Einzelrolle und ändern seiner Berechtigungdaten 36215.6 Anlegen der Web-Dynpro-Component . . . . . . . . . . . . . 363
15.6.1 Prüfen der Autorisierung des aktuellen Benutzers . . . 36615.6.2 Anbinden der Benutzer-Rolle und Ausführen
der Applikation . . . . . . . . . . . . . . . . . . . . 368
16 Web Dynpro ABAP Mind Map . . . . . . . . . . . . . . . . . . . . 37116.1 Erstellung einer Mind Map . . . . . . . . . . . . . . . . . . . 37116.2 Web Dynpro ABAP Mind Map . . . . . . . . . . . . . . . . . 372
Abkürzungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Die Autoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Bibliografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Sachverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379