27
Leseprobe Diese Leseprobe umfasst das vollständige Kapitel 4 des Buches »Web Dynpro ABAP in Eclipse«. Denn mit den ABAP Development Tools ist nun auch die Web-Dynpro-Entwicklung in Eclipse möglich. Lernen Sie die Entwicklungsumgebung umfassend kennen. Daniel Schön ABAP-Entwicklung in Eclipse 312 Seiten, gebunden, März 2015 69,90 Euro, ISBN 978-3-8362-3040-7 www.sap-press.de/3700 Kapitel 4: »Web Dynpro ABAP in Eclipse« Inhalt Index Der Autor Leseprobe weiterempfehlen Wissen aus erster Hand.

ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Embed Size (px)

Citation preview

Page 1: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

LeseprobeDiese Leseprobe umfasst das vollständige Kapitel 4 des Buches »Web Dynpro ABAP in Eclipse«. Denn mit den ABAP Development Tools ist nun auch die Web-Dynpro-Entwicklung in Eclipse möglich. Lernen Sie die Entwicklungsumgebung umfassend kennen.

Daniel Schön

ABAP-Entwicklung in Eclipse312 Seiten, gebunden, März 2015 69,90 Euro, ISBN 978-3-8362-3040-7

www.sap-press.de/3700

Kapitel 4: »Web Dynpro ABAP in Eclipse«

Inhalt

Index

Der Autor

Leseprobe weiterempfehlen

Wissen aus erster Hand.

Page 2: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

199

Web Dynpro ABAP ist eine der Schlüssel-UI-Technologien von SAP. Auch in den ABAP Development Tools ist die Web-Dynpro-Entwick-lung möglich.

4 Web Dynpro ABAP in Eclipse

Web Dynpro ABAP gehört neben dem SAP UI Development Toolkit for HTML5(SAPUI5) zu den Schlüssel-Oberflächentechnologien von SAP. Neue Anwen-dungen sollten daher in Web Dynpro ABAP oder SAPUI5 umgesetzt werden.Für die SAPUI5-Entwicklung steht ein eigenes Toolset in der Eclipse-Ent-wicklungsumgebung zur Verfügung, das Sie über die Seite https://tools.hana.ondemand.com/#sapui5 beziehen können. Die Entwicklung mit Web DynproABAP ist hingegen in den ABAP Development Tools for SAP NetWeaver (ADT)möglich und Thema dieses Kapitels.

Web Dynpro Java

Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADTnicht mit den Werkzeugen für Web Dynpro Java, die im SAP NetWeaver DeveloperStudio verfügbar sind. Bei den Web-Dynpro-ABAP-Werkzeugen handelt es sichum ein neues Toolset, d. h., Sie benötigen kein Developer Studio.

Zur Einführung in die Web-Dynpro-Entwicklung in Eclipse entwerfen wir indiesem Kapitel eine Applikation, um unsere in Kapitel 2, »Funktionen derABAP Development Tools«, eingeführte Aufgabenliste nach Projekten struk-turiert auszugeben. Wir sehen uns außerdem an, wie Sie eine Anwendungauf Basis des Floorplan Managers anlegen können. Ziel dieses Kapitels ist es,Ihnen die Entwicklungsumgebung vorzustellen, Kenntnisse in Web DynproABAP und des Floorplan Managers werden daher vorausgesetzt.

4.1 Controller-Programmierung

Um zu beginnen, müssen wir zunächst eine neue Web-Dynpro-ABAP-Kom-ponente anlegen. Öffnen Sie dazu die ABAP Development Tools in Eclipse,

3040.book Seite 199 Freitag, 6. März 2015 11:21 11

Page 3: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

200

und wählen Sie Ihr aktuelles ABAP-Projekt. Sie benötigen kein neues ABAP-Projekt, um in Web Dynpro zu entwickeln. Gehen Sie dann wie folgt vor:

1. Markieren Sie das Paket Z_ISSUE_LIST im Project Explorer.

2. Starten Sie den Anlage-Assistenten im Kontextmenü über New � Other

ABAP Repository Object oder mithilfe der Tastenkombination (Strg) + (N).

3. Wählen Sie aus der Liste der verfügbaren Assistenten ABAP � Web Dyn-

pro � Component, und bestätigen Sie mit Next (siehe Abbildung 4.1).

Abbildung 4.1 Assistenten zum Anlegen einer Web-Dynpro-Komponente aufrufen

4. Geben Sie im folgenden Dialog New Web Dynpro Component »ZWD_C_ISSUE_LIST« als Namen für die Komponente ein (siehe Abbildung 4.2).

5. Genau wie in der ABAP Workbench können Sie sich direkt einen initialenWindow- und View-Controller anlegen lassen. Markieren Sie dazu dieOption Create Window, und tragen Sie »W_ISSUE_LIST« als Namen fürdas Window ein. Markieren Sie auch die Option Create View. Als Namenfür den View wählen Sie »V_MAIN«. Fahren Sie mit Next fort.

6. Wählen Sie den Transportauftrag, den Sie für unser Demoszenario ange-legt haben, und bestätigen Sie die Anlage der Komponente mit Finish.

3040.book Seite 200 Freitag, 6. März 2015 11:21 11

Controller-Programmierung 4.1

201

Abbildung 4.2 Web-Dynpro-Komponente anlegen

7. Der Assistent erstellt die neue Komponente und öffnet diese in einemSAP-GUI-Bildschirm. Aktivieren Sie hier Ihre Komponente und alle auto-matisch angelegten Controller mit der Tastenkombination (Strg) + (F3),und schließen Sie die Registerkarte.

Das Ergebnis sehen Sie in Abbildung 4.3. Unterhalb des Namens der Web-Dynpro-Komponente werden die einzelnen Bestandteile aufgelistet – ähnlichwie in der ABAP Workbench.

Abbildung 4.3 Struktur der neuen Web-Dynpro-Komponente

3040.book Seite 201 Freitag, 6. März 2015 11:21 11

Page 4: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

202

Die Eclipse-Editoren zur Web-Dynpro-Bearbeitung sind in mehrere Register-karten aufgeteilt – ähnlich den Registerkarten in der ABAP Workbench. DerEditor für Komponenten-Controller unterteilt sich in die Bereiche Over-

view, Context, Attributes, Methods, Events und Implementation. DieRegister zur Navigation, die in Abbildung 4.4 dargestellt sind, befinden sichunterhalb des Editor-Fensters. Zusätzliche Informationen und Einstellungenzu den Elementen eines Controllers sind im View Properties zu finden.

Abbildung 4.4 Registerkarten im Editor für Komponenten-Controller

4.1.1 Kontext-Editor

Als Nächstes müssen wir den Kontext unserer Applikation anlegen. Da wirunsere Aufgabenliste (Issue List) als Baum darstellen möchten, sollte sichdiese Struktur im Kontext wiederfinden:

1. Öffnen Sie den Komponenten-Controller der Komponente ZWD_C_ISSUE_LIST. Die Registerkarte Context ist standardmäßig zuerst geöffnet.

2. Klicken Sie mit der rechten Maustaste auf den Wurzelknoten Context,

und wählen Sie Add Node im Kontextmenü (siehe Abbildung 4.5), umeinen neuen Knoten anzulegen. Alternativ können Sie das Tastenkürzel(Alt) + (O) verwenden.

Abbildung 4.5 Kontextknoten einfügen

3. Markieren Sie den neuen Knoten, und drücken Sie (F2), um ihn umzube-nennen (Alternativ können Sie den Namen auch im Properties-Viewändern.). Nennen Sie den neuen Knoten »PROJECTS«.

3040.book Seite 202 Freitag, 6. März 2015 11:21 11

Controller-Programmierung 4.1

203

4. Öffnen Sie den Properties-View mit einem Doppelklick auf den Kontext-knoten. Ändern Sie die Cardinality (Kardinalität) des Knotens PROJECTS

auf 0..n.

Abbildung 4.6 Eigenschaften des Knotens PROJECTS

5. Klicken Sie mit der rechten Maustaste auf den Knoten PROJECTS, undfügen Sie über die Funktion Add Attribute im Kontextmenü (oder per(Alt) + (T)) ein neues Attribut ein.

6. Drücken Sie die Funktionstaste (F2), und benennen Sie das neue Attributin »PROJECT_ID« um.

7. Ändern Sie den Typ des Attributs im Properties-View in »Z_PROJECT_ID«. Sie können in diesem Feld übrigens auch die Code-Vervollständi-gung verwenden oder über den Button mit den Pünktchen ( ) in eineSuchmaske springen.

8. Legen Sie auf die gleiche Art und Weise ein weiteres Element PROJECT_NAME vom Typ Z_PROJECT_NAME an.

9. Markieren Sie den PROJECTS-Knoten, und fügen Sie mit der Tastenkom-bination (Alt) + (O) einen neuen Unterknoten ein. Nennen Sie ihnISSUES, und vergeben Sie die Kardinalität 0..n.

10. Markieren Sie die Eigenschaft Supply Function im Properties-View,und klicken Sie auf den Button Create (siehe Abbildung 4.7), um eineneue Methode anzulegen.

11. Nennen Sie die Methode »SUPPLY_ISSUES«, und vergeben Sie eineBeschreibung.

Fügen Sie die drei Attribute, die Sie in Abbildung 4.8 sehen, zu Ihrem neuenISSUES-Knoten hinzu.

3040.book Seite 203 Freitag, 6. März 2015 11:21 11

Page 5: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

204

Abbildung 4.7 Eigenschaften des Knotens ISSUES

Abbildung 4.8 Fertige Struktur des Kontextes PROJECTS

Damit haben Sie den Kontext für die Navigation in der Aufgabenliste ange-legt. Jetzt benötigen wir noch einen Speicher für die Detailanzeige. Die Kon-textstruktur dazu soll jedoch nicht manuell, sondern mit Bezug auf einABAP-Dictionary-Objekt angelegt werden. Wir beschränken uns in diesemBeispiel auf die Anzeige von Projekten. Sie können die Lösung aber nachdem gleichen Prinzip um die Anzeige von Issues erweitern.

1. Fügen Sie dem Kontext mit der Tastenkombination (Alt) + (O) einen neu-en Knoten hinzu, den Sie über die Funktionstaste (F2) in PROJECT umbe-nennen.

2. Im Properties-View geben Sie »ZPROJECT« als Dictionary Structure an.Auch dabei können Sie wieder mit der Code-Vervollständigung ((Strg) +Leertaste) arbeiten. Klicken Sie in derselbe Zeile auf den Button Derive

(siehe Abbildung 4.9).

3. Ihnen wird ein Dialogfenster mit den Elementen der Struktur angezeigt.Belassen Sie es bei der Auswahl, und bestätigen Sie den Dialog mit Finish.

3040.book Seite 204 Freitag, 6. März 2015 11:21 11

Controller-Programmierung 4.1

205

Abbildung 4.9 Kontext mit Bezug auf Dictionary-Objekt anlegen

4. Fügen Sie unterhalb des Knotens PROJECT noch einen Knoten PROJECT_ISSUES hinzu. Vergeben Sie die Kardinalität 0..n, und binden Sie ihn andie Dictionary-Struktur ZISSUE. Übernehmen Sie mit dem Button Derive

alle Elemente aus der Struktur wieder in den Kontextknoten.

Der neue Kontext-Editor ähnelt zwar sehr dem aus der ABAP Workbench,allerdings wurden viele Kleinigkeiten geändert, die Ihre Arbeit sehr erleich-tern können. So sind die wichtigsten Funktionen über Tastenkürzel zu errei-chen und stehen zudem im Kontextmenü sowie über Funktionstasten zurVerfügung. Die wichtigsten Informationen zu Ihren Kontextknoten findenSie nun direkt im Kontextbaum. Neben dem Namen werden auch die Kardi-nalität sowie der Knoten- bzw. Attributstyp angezeigt. Die Einstellungenkönnen Sie, wie bereits gesehen, im Properties-View ändern. Die Anzeigekönnen Sie durch ein Suchfeld oberhalb der Baumdarstellung filtern.

Sie können auch einen Verwendungsnachweis für Kontextelemente anfordern((ª) + (Strg) + (G)). Bei allen Controllern haben Sie außerdem die Möglich-keit, Methoden, Attribute und Kontextelemente zu verlinken, wozu IhnenADT-Links oder HTTP-Links zur Verfügung sehen.

3040.book Seite 205 Freitag, 6. März 2015 11:21 11

Page 6: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

206

Design der Beispielkomponente

Das Design unserer Beispielkomponente wurde bewusst einfach ausgelegt undsieht nur eine Komponente vor. Bei einer produktiven Anwendung könnte mandie Detailsicht in eine oder mehrere Komponenten verlagern und den Kontextanders aufbauen.

4.1.2 Attribute

Als Nächstes wollen wir ein Attribut anlegen, um eine Instanz unserer KlasseZCL_ISSUE abzulegen. Diese Instanz dient uns später zur Bearbeitung derangezeigten Aufgabe. Attribute pflegen Sie wie folgt:

1. Wechseln Sie im Editor des Komponenten-Controllers auf die Register-karte Attributes.

2. Klicken Sie auf die Schaltfläche Add Attribute, oder drücken Sie (Alt) +(T).

3. Geben Sie »MR_PROJECT« als Attributsnamen im folgenden Dialogfensterein. Wählen Sie zudem eine passende Beschreibung, und bestätigen Siemit Finish.

4. Geben Sie im Feld Type bei den Attribute Details »ZCL_PROJECT« ein.Markieren Sie zudem das Ankreuzfeld Ref To, um zu kennzeichnen, dasses sich um eine Referenzvariable handelt. Sie können im Feld Type auchmit der Tastenkombination (Strg) + Leertaste arbeiten oder über den But-ton Browse einen Suchdialog öffnen.

Attribute werden in Eclipse in einer filterbaren Liste dargestellt, in der Siegenau wie bei Kontextknoten schon die Typisierung des Attributs erkennen.Die Eigenschaften zu einem Attribut finden Sie rechts neben der Listendar-stellung (nicht im Properties-View). Ist der Text Type:* blau hinterlegt (sieheAbbildung 4.10), wird damit eine Verlinkung angedeutet, über die Sie sichdie Definition des angegebenen Typs anzeigen lassen können. Diese Naviga-tionsform finden Sie in einigen Web-Dynpro-Editoren in Eclipse wieder. Lei-der ist es derzeit nicht möglich, Attribute umzubenennen. Sie können sielediglich kopieren ((Strg) + (C)) und unter einem neuen Namen wieder ein-fügen ((Strg) + (V)).

4.1.3 Methoden

Nun wollen wir unserer Komponente ein wenig Intelligenz einhauchen unddazu Methoden anlegen. Die Controller-Programmierung unterscheidet sich

3040.book Seite 206 Freitag, 6. März 2015 11:21 11

Controller-Programmierung 4.1

207

in diesem Punkt von der ABAP-Objects-Entwicklung, da die Definition vonMethoden nicht im Quelltext, sondern in einer eigenen Maske erfolgt. DieImplementierung läuft aber sehr ähnlich ab.

1. Wechseln Sie auf die Registerkarte Methods im Komponenten-Controller.

2. Klicken Sie auf den Button Add Method. Alternativ können Sie auch mitden Tasten (Alt) + (O) eine neue Methode anlegen.

3. Geben Sie im Dialogfenster New Method »FILL_PROJECTS_NODE« alsNamen sowie eine beliebige Beschreibung ein.

4. Damit haben Sie schon Ihre zweite Web-Dynpro-Methode in Eclipseerstellt. Die erste Methode war die Supply-Methode, die Sie beim Erstel-len des Kontextes angelegt haben. Diese finden Sie auch in der Liste derMethoden. Ein Icon symbolisiert, dass es sich hierbei um eine Supply-Methode handelt..

Als Nächstes benötigen wir eine Methode, mit der ein Projekt zur Anzeigeim Detailbild ausgewählt wird.

1. Legen Sie eine weitere Methode mit dem Namen »SELECT_PROJECT« an.

2. Klicken Sie auf den Button Add Parameter (alternativ (Alt) + (T)). Einneuer Parameter wird zu Ihrer Methode hinzugefügt und als Elementunterhalb des Methodennamens dargestellt. Auf der rechten Seite könnenSie die Eigenschaften des Parameters ändern.

3. Geben Sie »IF_PROJECT_ID« als Namen dieses Parameters ein. Als Type

tragen Sie »Z_PROJECT_ID« ein (siehe Abbildung 4.10). Nachdem Sie dieMethoden angelegt haben, sollte die Übersicht in Ihrem Editor etwa wie inAbbildung 4.11 aussehen.

Abbildung 4.10 Eigenschaften eines Methodenparameters

3040.book Seite 207 Freitag, 6. März 2015 11:21 11

Page 7: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

208

Abbildung 4.11 Übersicht und Details im Methoden-Editor

Auf ähnliche Art und Weise können Sie einer Methode über die Tastenkom-bination (Alt) + (X) eine Ausnahme hinzufügen. Wie Sie in Abbildung 4.11sehen können, können Sie in dieser Sicht auch eine neue Supply-Methode(Add Supply Function) oder einen neuen Ereignisbehandler (Add Event

Handler) anlegen.

Als Nächstes implementieren wir unsere Methoden. Markieren Sie dazu dieMethode FILL_PROJECTS_NODE in der Übersichtsliste. Anschließend klickenSie auf der rechten Seite auf den Bezeichner Name*. Der Link bringt Siedirekt in den Quelltext-Editor Ihres Controllers zur Implementierung derMethode.

Der Quelltext-Editor funktioniert sehr ähnlich wie der Editor anderer Ent-wicklungsobjekte in den ADT, mit dem Unterschied, dass Sie nicht uneinge-schränkt ändern dürfen. Beim Code von Web-Dynpro-Controllern handelt essich größtenteils um generierten Code, d. h., ein Grundgerüst wird Ihnendurch das Framework bereits vorgegeben und sollte nicht geändert werden.Sie haben lediglich die Möglichkeit, an geeigneten Stellen eignen Quelltexteinzubringen. Daher sind große Teile des Web-Dynpro-Quelltextes grau hin-terlegt und für Änderungen gesperrt. Methodenimplementierungen sindhingegen änderbar. Die Editor-Sicht für den Komponenten-Controller ZWD_C_ISSUE_LIST sehen Sie in Abbildung 4.12.

Zur Navigation innerhalb des Quelltextes steht Ihnen wieder der Outline-View zur Verfügung (siehe Abbildung 4.13 und Abschnitt 2.2.4, »Klassen«).Sie sehen hier den Inhalt des generierten Includes zum aktuellen Controller.Daher werden Ihnen auch die beiden Interfaces IG_COMPONENTCONTROLLERund IF_COMPONENTCONTROLLER angezeigt.

3040.book Seite 208 Freitag, 6. März 2015 11:21 11

Controller-Programmierung 4.1

209

Abbildung 4.12 Der Quelltext-Editor zum Komponenten-Controller ZWD_C_ISSUE_LIST

Abbildung 4.13 View »Outline« zum Komponenten-Controller ZWD_C_ISSUE_LIST

Für die Entwicklung in Web Dynpro stehen Ihnen spezielle Code-Templateszur Verfügung. Daneben können Sie eigene Web-Dynpro-Templates erstel-len. Im Anlage-Dialog finden Sie eine Auswahlbox, um ein Template fürWeb Dynpro zu kennzeichnen. Auch auf den Web Dynpro Code Wizard zurErzeugung von Kontextzugriffen müssen Sie nicht verzichten. Dieses aus derABAP Workbench bekannte Tool versteckt sich nun hinter der Code-Vervoll-ständigung ((Strg) + Leertaste).

3040.book Seite 209 Freitag, 6. März 2015 11:21 11

Page 8: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

210

Implementieren wir nun zunächst die Methode FILL_PROJECTS_NODE unsererWeb-Dynpro-Komponente:

1. Wechseln Sie zur Registerkarte Implementation und zur Methode FILL_PROJECTS_NODE. (Entweder springen Sie von der Registerkarte Methods aboder vom Outline-View.)

2. Fügen Sie nach der folgenden Code-Zeile eine Leerzeile ein:

METHOD fill_projects_node. "EC NEEDED

3. Verwenden Sie die Tastenkombination (Strg) + Leertaste, um die Code-Vervollständigung aufzurufen.

4. Die Code-Vervollständigung wird wie in Abbildung 4.14 angezeigt. Wäh-len Sie die Option contextWrite aus, um eine Set-Operation auf den Kon-text auszuführen.

Abbildung 4.14 Kontext lesen und schreiben

5. Im nächsten Schritt können Sie, wie in Abbildung 4.15 gezeigt, einen Kon-textknoten wählen. Ob Sie die statischen Attribute des Elements oder dieganze Tabelle auslesen möchten, steuern Sie über die Auswahlbox Code

generated as table operations.

Wählen Sie für unser Beispiel den Knoten PROJECTS aus, und bestätigenSie mit OK.

6. Nun müssen wir selbst tätig werden und den generierten Code ein weniganpassen. Die Methode ZCL_PROJECTS=>LIST_PROJECTS liefert eine Tabellemit allen auf der Datenbank gespeicherten Projekten. Holen Sie sich dieaktuelle Projektliste und speichern sie diese in eine Variable vom TypZ_PROJECT_T.

7. Iterieren Sie mit einem LOOP über die Projektliste. Übertragen Sie die Ein-träge aus der Projektliste in die Kontextstruktur (Typ WD_THIS->ELEMENT_PROJECTS), und füllen Sie die Tabelle für den Knoten PROJECTS mit diesenEinträgen. Ein entsprechendes Feld LT_PROJECTS wurde schon vomWizard angelegt. Verschieben Sie abschließend die Methode zum Binden

3040.book Seite 210 Freitag, 6. März 2015 11:21 11

Controller-Programmierung 4.1

211

der Tabelle an den Kontext ans Ende der Methode FILL_PROJECTS_NODE.Die Methode sollte daraufhin ähnlich wie in Listing 4.1 aussehen.

Abbildung 4.15 Auswahl eines Kontextknotens

Knoten mit Dictionary-Bezug

Wenn Sie einen Kontextknoten mit Bezug zu einem ABAP-Dictionary-Objekt anle-gen, können Sie wie gewohnt Strukturen bzw. Tabellen dieses Typs direkt an denKnoten binden. In unserem Beispiel ist das nicht möglich, da wir die Knotenmanuell aufgebaut haben und die Struktur nicht mit der auf der Datenbank kom-patibel ist.

METHOD fill_projects_node.DATA: lo_nd_projects TYPE REF TO if_wd_context_node,

lt_projects TYPE wd_this->elements_projects,ls_project TYPE wd_this->element_projects,lt_project_list TYPE z_project_t.

lo_nd_projects = wd_context->get_child_node(name = wd_this->wdctx_projects ).

lt_project_list = zcl_project=>list_projects( ).LOOP AT lt_project_list INTO DATA(ls_project_list).

ls_project-project_id = ls_project_list-project_id.ls_project-project_name = ls_project_list-project_name.APPEND ls_project TO lt_projects.

3040.book Seite 211 Freitag, 6. März 2015 11:21 11

Page 9: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

212

ENDLOOP.lo_nd_projects->bind_table( new_items = lt_projects

set_initial_elements = abap_true ).ENDMETHOD.

Listing 4.1 Implementierung der Methode FILL_PROJECTS_NODE

Nun kümmern wir uns um die Implementierung der verbleibenden Metho-den des Komponenten-Controllers:

1. Drücken Sie die Tasten (Strg) + (O), und wählen Sie aus dem Quick Over-

view die Methode SELECT_PROJECT, um zur Implementierung dieserMethode zu springen.

2. Sie müssen nicht zurück zur Registerkarte Methods springen, um sich dieMethodensignatur ins Gedächtnis zu rufen. Setzen Sie den Cursor auf denMethodennamen, und drücken Sie (F2). Die ABAP Element Info zeigtIhnen die Signatur der Methode an (siehe Abbildung 4.16).

Abbildung 4.16 ABAP Element Info zur Methode SELECT_PROJECT

3. Fügen Sie den Code aus Listing 4.2 als Implementierung der Methode ein.

METHOD select_project.DATA lo_nd_project TYPE REF TO if_wd_context_node.DATA lo_el_project TYPE REF TO if_wd_context_element.DATA ls_project TYPE wd_this->element_project.DATA lo_nd_project_issues TYPE REF TO if_wd_context_node.DATA lt_project_issues TYPE

wd_this->elements_project_issues.wd_this->mr_project = NEW #( if_project_id ).lo_nd_project = wd_context->get_child_node(

name = wd_this->wdctx_project ).lo_el_project = lo_nd_project->get_element( ).ls_project = wd_this->mr_project->get_project( ).

3040.book Seite 212 Freitag, 6. März 2015 11:21 11

Controller-Programmierung 4.1

213

lo_el_project->set_static_attributes(static_attributes = ls_project ).

* Issues setzenlo_nd_project_issues = lo_nd_project->get_child_node(

name = wd_this->wdctx_project_issues ).lt_project_issues = wd_this->mr_project->get_issues( ).

lo_nd_project_issues->bind_table(new_items = lt_project_issuesset_initial_elements = abap_true ).

ENDMETHOD.

Listing 4.2 Implementierung der Methode SELECT_PROJECT

4. Navigieren Sie zur Methode SUPPLY_ISSUES, und fügen Sie den Code ausListing 4.3 als Implementierung ein.

METHOD supply_issues.DATA:

ls_project TYPE zproject,lt_issues TYPE wd_this->elements_issues,ls_issues TYPE wd_this->element_issues,lt_issue_list TYPE z_issue_t,lr_project TYPE REF TO zcl_project.

parent_element->get_static_attributes(IMPORTING

static_attributes = ls_project).IF ls_project-project_id IS NOT INITIAL.

lr_project = NEW #( ls_project-project_id ).lt_issue_list = lr_project->get_issues( ).LOOP AT lt_issue_list INTO DATA(ls_issue_list).

ls_issues-issue_id = ls_issue_list-issue_id.ls_issues-issue_name = ls_issue_list-name.ls_issues-issue_description =ls_issue_list-description.APPEND ls_issues TO lt_issues.

ENDLOOP.ENDIF.node->bind_table( new_items = lt_issuesset_initial_elements = abap_true ).

ENDMETHOD.

Listing 4.3 Implementierung der Methode SUPPLY_ISSUES

3040.book Seite 213 Freitag, 6. März 2015 11:21 11

Page 10: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

214

5. Zu guter Letzt müssen wir noch dafür sorgen, dass unsere Projektliste ini-tial befüllt wird. Navigieren Sie daher zur Methode WDDOINIT, und fügenSie den folgenden Aufruf ein:

wd_this->fill_projects( ).

Sie können dazu die Code-Vervollständigung für die Variable WD_THIS ver-wenden.

6. Aktivieren Sie Ihre Änderungen.

Damit sind unsere Arbeiten am Komponenten-Controller abgeschlossen.

4.2 Views und Windows

In diesem Abschnitt widmen wir uns den visuellen Bestandteilen unsererWeb-Dynpro-Komponente. Zunächst erstellen wir die Views, die die Naviga-tion und die Detailanzeige übernehmen sollen. Anschließend kombinierenwir diese Views in einem Window.

4.2.1 Views

Der View-Editor ist ähnlich aufgebaut wie der des Komponenten-Control-lers. Die Registerkarten, die Sie aus der ABAP Workbench gewöhnt sind,wurden mehr oder weniger 1:1 nachempfunden und finden sich nun amunteren Rand des Editors. Wenn Sie im Project Explorer doppelt auf einenView klicken, landen Sie zunächst in der Kontextansicht. Diese ist genausoaufgebaut wie die Sicht, die Sie schon vom Komponenten-Controller ken-nen. Auf der linken Seite sehen Sie den (im Moment noch leeren) Kontextdes Views. In unserem Fall sehen Sie auf der rechten Seite die Kontextkno-ten, die Sie im Komponenten-Controller angelegt haben.

Ordnen Sie nun die benötigten Knoten aus dem Komponenten-Controllerdem View zu (Mapping).

1. Wechseln Sie zum View V_MAIN auf der Registerkarte Context.

2. Expandieren Sie den Kontextbaum auf der rechten Seite, bis Sie zur Ebenedes Knotens PROJECTS gelangen.

3. Markieren Sie den Knoten PROJECTS, und ziehen Sie ihn per Drag & Dropauf den (Wurzel-)Knoten CONTEXT auf der linken Seite.

3040.book Seite 214 Freitag, 6. März 2015 11:21 11

Views und Windows 4.2

215

4. Der Dialog Context Mapping öffnet sich (siehe Abbildung 4.17). Hierkönnen Sie, anders als im SAP GUI, noch einmal genau differenzieren,welche Elemente Sie mappen möchten.

Abbildung 4.17 Elemente für das Kontext-Mapping auswählen

5. Der Knoten mit den gewählten Elementen wird in den View-Controllerkopiert, und das Mapping wird angelegt. Es wird Ihnen durch Verbin-dungslinien angezeigt (siehe Abbildung 4.18).

6. Aktivieren Sie Ihre Änderungen.

Abbildung 4.18 Anzeige des Kontext-Mappings

3040.book Seite 215 Freitag, 6. März 2015 11:21 11

Page 11: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

216

Als Nächstes bauen wir das Layout der Views auf. Der Layout-Editor lässt sichetwas anders bedienen als sein Verwandter im SAP GUI, das neue Bedien-konzept kann Ihnen die Arbeit aber erleichtern. Neben dem Layout-Editorarbeiten Sie mit den Views Outline und Properties:

� Layout-EditorIm grafischen Layout-Editor wird eine Vorschau angezeigt, die an die Lay-out-Vorschau der ABAP Workbench erinnert. Allerdings gibt es keinePalette mit UI-Elementen. Möchten Sie ein UI-Element im Layout-Editoreinfügen, können Sie dies über das Kontextmenü tun (mit Insert � Ele-

ment). Ein Dialog stellt Ihnen die zum Einfügen verfügbaren UI-Elementezur Auswahl. Mit dem Ankreuzfeld Highlight Containers oben rechtskönnen Sie die Anzeige der Umrisse sämtlicher Container aktivieren, wasbeim Erstellen verschachtelter Layouts sehr hilfreich sein kann. Ist dasFeld deaktiviert, wird Ihnen eine Vorschau angezeigt, die fast dem End-ergebnis entspricht.

� Outline-ViewDie Hierarchie im View Outline entspricht der Hierarchiedarstellung inder ABAP Workbench. Bei einem leeren Layout sehen Sie die Standard-container CONTEXT_MENUES und ROOTELEMENTCONTAINER. Neue Elementefügen Sie über das Kontextmenü hinzu (Insert � Element). Das Layoutlässt sich viel intuitiver bearbeiten als in der ABAP Workbench. Neben derMöglichkeit, Elemente nach oben und unten zu verschieben, wurden auchdas Kopieren, Ausschneiden und Einfügen von Elementen über das Menüoder Shortcuts ermöglicht. Außerdem können Sie mehrere Elemente mar-kieren und gleichzeitig bearbeiten.

� Properties-ViewIm View Properties werden die Eigenschaften der UI-Elemente angezeigt.Sie sind in Kategorien unterteilt, die auf jeweils eigenen Registerkartenuntergebracht sind:

� UI Element: allgemeine Eigenschaften

� Layout: Auf der Registerkarte Layout stellen Sie den Layout-Managerein und nehmen allgemeine Einstellungen zum Layout vor.

� Layout Data: Auf der Registerkarte Layout Data stellen Sie die ele-mentspezifischen Eigenschaften zum Layout-Manager des übergeord-neten Containers ein.

� Events: Auf der Registerkarte Events können Sie dem aktuell gewähl-ten UI-Element Aktionen zuweisen.

3040.book Seite 216 Freitag, 6. März 2015 11:21 11

Views und Windows 4.2

217

Die auf der Registerkarte UI Element angezeigte Eigenschaft ist immer dieElement-ID. Darauf folgen sämtliche Pflichtfelder des UI-Elements. Alleanderen Eigenschaften werden in alphabetischer Reihenfolge angezeigt(siehe Abbildung 4.19). Der View Properties bietet zudem die bekanntenFilter- und Suchfunktionen über ein einzelnes Eingabefeld.

Abbildung 4.19 View »Properties« zu einem UI-Element

Ist im Outline-View bzw. im Layout-Editor mehr als ein Element markiert,zeigt der Properties-View alle Eigenschaften an, die die selektierten Ele-mente gemeinsam haben. Bei gleichen Werten werden diese ebenfalls ange-zeigt, bei unterschiedlichen Werten bleibt das Feld Value leer. Sie könnenaber in beiden Fällen die Eigenschaftswerte aller markierten Elementegleichzeitig bearbeiten.

Um Ihnen zu zeigen, wie Sie mit den Werkzeugen arbeiten, fügen wir alsErstes neue UI-Elemente ein.

1. Klicken Sie im Outline-View mit der rechten Maustaste auf das ElementROOTELEMENTCONTAINER, und wählen Sie im Kontextmenü Insert � Ele-

ment.

2. Es öffnet sich der Dialog New UI Element (siehe Abbildung 4.20). WählenSie aus der Liste das UI-Element TransparentContainer.

3. Nennen Sie das Element »TCN_NAVIGATION«, und bestätigen Sie mit OK.

3040.book Seite 217 Freitag, 6. März 2015 11:21 11

Page 12: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

218

4. Wiederholen Sie den Vorgang, um einen weiteren Transparent Containereinzufügen. Nennen Sie diesen »TCN_DETAIL«.

5. Die neu eingefügten Transparent Container tauchen nun im Outline-Viewauf und können verwendet werden.

Der Dialog New UI Element in Abbildung 4.20 unterscheidet sich etwasvom Fenster UI-Element einfügen der ABAP Workbench. Sie habenzunächst die vollständige Liste aller verfügbaren UI-Elemente zur Auswahlund können die Liste über das Eingabefeld oberhalb der Liste auf einenSuchbegriff einschränken. Über die Auswahlliste Categories können Sie dieListe der UI-Elemente außerdem auf eine bestimmte Kategorie einschränken.Die Kategorien entsprechen denen, die Sie vielleicht schon aus der Palettedes Layout-Editors in der ABAP Workbench kennen.

Abbildung 4.20 Dialog zur Anlage eines neuen UI-Elements

3040.book Seite 218 Freitag, 6. März 2015 11:21 11

Views und Windows 4.2

219

Einige UI-Elemente, wie das Input Field, werden übrigens direkt zusammenmit ihrem Label (Bezeichner) eingefügt. Wenn Sie lieber mit dem Layout-Editor arbeiten, ist das Vorgehen beim Einfügen neuer UI-Elemente analog.

Als Nächstes können wir die Eigenschaften unserer UI-Elemente, der Trans-parent Container, bearbeiten:

1. Klicken Sie im Outline-View doppelt auf das Element ROOTELEMENTCON-TAINER, um den Properties-View zu öffnen (Alternativ markieren Sie dasElement und wählen (ª) + (Strg) + (Z) – diese Tastenkombination funkti-oniert auch im Layout-Editor.).

2. Wechseln Sie auf die Registerkarte Layout, und wählen Sie für die Eigen-schaft Layout den Eintrag MatrixLayout.

3. Markieren Sie nun die angelegten Transparent Container TCN_NAVIGATIONund TCN_DETAIL. Die Eigenschaften Ihrer Auswahl werden sofort im Pro-

perties-View angezeigt.

4. Stellen Sie nun gleichzeitig für diese beiden Container das Layout aufMatrix Layout um. Die restlichen Einstellungen können Sie beibehalten.

Mit den beiden Transparent Containern allein können wir noch nicht vielanfangen, wir müssen auch eine Navigationsmöglichkeit anlegen. Dazu ver-wenden wir einen Navigationsbaum. Aufgrund des Aufbaus unseres Kon-textes müssen wir dazu keinen großen Aufwand betreiben:

1. Fügen sie im Container TCN_NAVIGATION ein neues UI-Element vom TypTree an, und nennen Sie es »TRE_NAVIGATION«.

2. Im Properties-View wechseln Sie in den Bereich UI Element und markie-ren die Eigenschaft DataSource. Es erscheint ein Button mit der AufschriftBind, auf den Sie klicken. Wählen Sie im so aufgerufenen Menü den Ein-trag To Context.

Abbildung 4.21 Kontext an das UI-Element anbinden

3. Daraufhin erscheint der Dialog Bind to Context. Wählen Sie hier denKontextknoten PROJECTS, für den nun ein kleines Ordnersymbol als Wert

3040.book Seite 219 Freitag, 6. März 2015 11:21 11

Page 13: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

220

der Eigenschaft angezeigt wird. Zudem erscheint der Button Reset, der esIhnen ermöglicht, die Bindung wieder zu lösen.

4. Als Letztes wollen wir dem Wurzelknoten des Baums noch einen nachvoll-ziehbaren Namen geben. Wählen Sie dazu die Eigenschaft RootText, kli-cken Sie auf den Button Bind, und wählen Sie To OTR im erscheinendenMenü.

5. Im folgenden Dialog Search online text repository object geben Sie alsPaket das Standardpaket »SOTR_VOCABULARY_BASIC« an (siehe Abbil-dung 4.22). Sie können in diesem Feld auch die Code-Vervollständigungverwenden.

6. Wählen Sie aus der Liste der OTR-Texte den Eintrag Navigation aus, undbestätigen Sie mit OK. Der ausgewählte Text wurde damit an die Eigen-schaft gebunden.

Abbildung 4.22 Dialog zur Anbindung eines Textes aus dem Online Text Repository

OTR-Texte

Sie müssen OTR-Texte in den Eigenschaften nicht über den Dialog anbinden, son-dern können auch »$OTR:<Paket>/<Aliasname>« über die Tastatur eingeben.Eigene OTR-Texte können Sie über Transaktion SOTR_EDIT im SAP GUI pflegen.Eine direkte Eclipse-Integration ist derzeit noch nicht verfügbar.

3040.book Seite 220 Freitag, 6. März 2015 11:21 11

Views und Windows 4.2

221

Sie haben nun gesehen, wie Sie einzelne Werte an den Kontext binden kön-nen. Wenn Sie schon größere Anwendungen in Web Dynpro geschriebenhaben, wissen Sie, wie zeitaufwendig es sein kann, viele UI-Elemente an denKontext zu binden. Die Web-Dynpro-Tools in Eclipse bieten zu diesemZweck einen neuen Kontext-Editor an, den wir uns im nächsten Beispiel anse-hen werden. Dazu legen wir zu unserem Baum die Knoten für Projekte undAufgaben an und binden diese in einem Rutsch an den Kontext:

1. Klicken Sie im Outline-View mit der rechten Maustaste auf das UI-ElementTRE_NAVIGATION, und wählen Sie Insert � Node Type im Kontextmenü.

2. Wählen Sie aus der Liste der verfügbaren Elemente TreeNodeType, nennenSie das anzulegende Element »TNT_PROJECT«, und bestätigen Sie mit OK.

3. Fügen Sie auf die gleiche Weise ein TreeItemType mit dem Namen »TIT_ISSUE« ein.

4. Klicken Sie nun mit der rechten Maustaste auf TRE_NAVIGATION, und wäh-len Sie Bind To Context im Kontextmenü ((ª) + (Strg) + (P)).

5. Wählen Sie die Eigenschaft DataSource unterhalb des Elements TNT_PRO-JECT, und ziehen Sie diese per Drag & Drop auf den Knoten PROJECTS aufder rechten Seite. Sie haben nun die Eigenschaft an den Kontext gebun-den, was Ihnen durch eine Verbindungslinie angezeigt wird.

6. Alle Eigenschaften, die gebunden werden sollen, finden Sie in Tabelle 4.1.Schließlich sollte Ihr Binding wie in Abbildung 4.23 aussehen. SchließenSie die Bearbeitung mit Finish ab.

Auf diese Weise können Sie beliebige UI-Elemente mit dem Kontext ver-knüpfen. Dabei werden Ihnen im Editor alle UI-Elemente angezeigt, die demElement zugeordnet sind, das Sie ausgewählt haben, z. B. ein transparenter

Layout Kontext

Element Eigenschaft Knoten Attribut

TRE_NAVIGATION DataSource PROJECTS –

TNT_PROJECT DataSource PROJECTS –

TNT_PROJECT Text PROJECTS Project_Name

TIT_ISSUE DataSource ISSUES –

TIT_ISSUE Text ISSUES Issue_Name

TIT_ISSUE Tooltip ISSUES Issue_Description

Tabelle 4.1 Kontext-Binding für das UI-Element TRE_NAVIGATION

3040.book Seite 221 Freitag, 6. März 2015 11:21 11

Page 14: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

222

Container und alle Elemente, die sich in diesem Container befinden. Siehaben auch die Möglichkeit, die Ansicht im Dialog Bind to Context nur aufdie obligatorischen Eigenschaften einzuschränken. Klicken Sie dazu auf denButton Show only mandatory UI element properties ( ) oberhalb desLayout-Baums.

Abbildung 4.23 Dialog für das Kontext-Binding

Im nächsten Schritt bestimmen wir, wie die Detailanzeige aussehen soll, umein ausgewähltes Projekt anzuzeigen. Diese soll rechts neben dem Navigati-onsbaum zu finden sein. Sie besteht aus einem einfachen Formular sowieeiner Tabelle mit sämtlichen Issues zu einem Projekt.

Es gibt in den Web-Dynpro-Tools in Eclipse keine Möglichkeit, ein Formularaus dem Kontext zu generieren. Allerdings ist diese Methode auch in der

3040.book Seite 222 Freitag, 6. März 2015 11:21 11

Views und Windows 4.2

223

ABAP Workbench mit einigen Nacharbeiten verbunden, sodass die Zeiter-sparnis durch die Generierung dort nur minimal ist. Durch den neuen Bin-ding-Editor und die Möglichkeit, Elemente zu kopieren, legen Sie Formularedaher in Eclipse mit etwas Übung eher schneller an. Gehen wir die Anlage anunserem Beispiel gemeinsam durch:

1. Fügen Sie unterhalb des UI-Elements TCN_DETAIL ein UI-Element Captionmit dem Namen »CPT_TITLE« ein.

2. Fügen Sie unterhalb des Elements TCN_DETAIL ein InputField ein, undnennen Sie es »INP_ID«. Eclipse fügt automatisch das passende Label dazuein.

3. Markieren Sie das Label und das Input Field, und drücken Sie (Strg) + (C),um beides zu kopieren.

4. Markieren Sie wieder das Element TCN_DETAIL, und drücken Sie dreimal(Strg) + (V), um drei neue Label/InputField-Pärchen einzufügen.

5. Markieren Sie nun alle Label-Elemente, und wählen Sie im Properties-View unter LayoutData � LayoutData den Eintrag MatrixHeadData.Damit bewirken Sie, dass jedes Label in einer neuen Zeile angezeigt wird.

6. Als Nächstes benennen Sie die IDs der Elemente um. Markieren Sie dazudas Element, das Sie umbenennen möchten, und drücken Sie (F2). Sie kön-nen es dann direkt im Outline-View umbenennen. Einen Vorschlag füreine mögliche Benennung finden Sie in Abbildung 4.24.

Abbildung 4.24 Das Detailformular

7. Es fehlen noch die Label-Zuordnungen für die Eingabefelder LBL_NAME,LBL_START sowie LBL_END, da wir diese lediglich kopiert hatten. MarkierenSie zuerst LBL_NAME, navigieren Sie im Properties-View zu UIElement �

LabelFor, und wählen Sie das Label INP_NAME aus der Dropdown-Liste.

3040.book Seite 223 Freitag, 6. März 2015 11:21 11

Page 15: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

224

8. Gehen Sie bei den Eingabefeldern LBL_START und LBL_END auf die gleicheWeise vor.

Vielleicht haben Sie beim Anlegen des Detailformulars gedacht, dass es schö-ner wäre, diese Sicht in einen eigenen View auszulagern. Aber alles löschenund neu anlegen? Das ist nicht notwendig. Sie können alle UI-Elemente so,wie sie sind, in einen neuen View verlegen:

1. Klicken Sie im Outline-View mit der rechten Maustaste auf den Transpa-rent Container TCN_DETAIL, und wählen Sie Copy ((Strg) + (C)) aus demKontextmenü.

2. Klicken Sie im Project Explorer mit der rechten Maustaste auf die Web-Dynpro-Komponente ZWD_C_ISSUE_LIST, und wählen Sie New � View imKontextmenü.

3. Nennen Sie den neuen View »V_PROJECT_DETAILS«, und legen Sie die-sen an.

4. Wechseln Sie auf die Registerkarte Layout, markieren Sie den ContainerROOTELEMENTCONTAINER, und drücken Sie (Strg) + (V). Die kopierte UI-Struktur wird eingefügt.

5. Wechseln Sie zur Registerkarte Layout des Views V_MAIN, und löschen Siedas Element TCN_DETAIL. Fügen Sie stattdessen ein VIEWCONTAINERUIELE-MENT ein, und nennen Sie es »VCN_DETAILS«.

Es wäre sogar noch besser, die Detailsicht für verschiedene Objekte injeweils eigenen Komponenten zur Verfügung zu haben. Selbst dies könnenSie über die Kopierfunktion erreichen. Sie können UI-Elemente, Methoden,Kontextknoten oder Attribute einfach zwischen Komponenten hin- und herkopieren.

Schließlich binden wir unsere Detailsicht an den Kontext:

1. Wechseln Sie dazu zur Registerkarte Context des Views V_PROJECT_DETAILS.

2. Ziehen Sie den Kontextknoten PROJECTS aus dem Komponenten-Control-ler in den Kontext des Views, um diesen zu mappen.

3. Wählen Sie alle Elemente aus (auch den Unterknoten PROJECT_ISSUES).

4. Wechseln Sie zur Registerkarte Layout, und markieren Sie das ElementTCN_DETAIL. Drücken Sie (ª) + (Strg) + (P), um den Binding-Dialog zu öff-nen. Stellen Sie ein Binding wie in Abbildung 4.25 her, und bestätigen Siemit Finish.

3040.book Seite 224 Freitag, 6. März 2015 11:21 11

Views und Windows 4.2

225

Abbildung 4.25 Kontext-Mapping für den View V_PROJECT_DETAILS

In unserer Dateiansicht benötigen wir noch eine Tabelle zur Anzeige derAufgaben zu einem Projekt. Zur Anlage von Tabellen gibt es einen Assisten-ten, der Ihnen einiges an Arbeit abnehmen kann. Dieser funktioniert sowohlfür das UI-Element Table als auch für das Element CTable.

1. Klicken Sie mit der rechten Maustaste auf den Knoten TCN_DETAILS, undwählen Sie Insert � Element. Wählen Sie Table aus der Liste der UI-Ele-mente, und nennen Sie das neue Element »TBL_ISSUES«. Bestätigen SieIhre Angaben.

2. Beim Einfügen der Tabelle öffnet sich ein Assistent, der Ihnen den aktuel-len Kontext zur Auswahl stellt. Markieren Sie hier den Knoten PROJECT_ISSUES, und heben Sie die Markierung des Feldes MANDT auf. Bestätigen Siemit Next.

3. Im nächsten Schritt können Sie Änderungen an den Spalteneigenschaftenvornehmen. Wir begnügen uns aber mit den Voreinstellungen und bestä-tigen mit Finish.

4. Ändern Sie nun noch in den Eigenschaften Ihrer Tabelle den Wert für dieEigenschaft LayoutData auf MatrixHeadData und den Wert für die Eigen-schaft ColSpan auf 2.

3040.book Seite 225 Freitag, 6. März 2015 11:21 11

Page 16: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

226

Sie haben nun eine Tabelle mit Issues eingebaut. Die Kontextbindung unddie Eigenschaften der Spalten können Sie jederzeit über das Kontextmenümit der Funktion Edit Table ändern. Zudem können Sie auf die Tabelle undderen Spalten im Outline-View zugreifen.

Nun müssen wir noch dafür sorgen, dass dem Anwender die Details auchangezeigt werden. Dazu müssen wir ein Inbound- und ein Outbound-Plug inunseren beiden Views definieren. Diese Plugs sollen bei der Auswahl einesProjektes ausgelöst werden. Wechseln Sie dazu zur Registerkarte Plugs desViews V_MAIN, und klicken Sie auf Add Outbound Plug. Im folgenden Dia-log geben Sie »OP_PROJECT_DETAILS« als Namen für das neue Plug ein. Siehaben hier auch die Möglichkeit, über die Funktion Add Parameter zusätz-liche Übergabeparameter anzulegen. Dies ist in unserem Fall aber nicht not-wendig. Legen Sie den Inbound-Plug für den Detail-View V_PROJECT_DETAILS über die Funktion Add Inbound Plug an, und nennen Sie diesenPlug »IP_SHOW_PROJECT«.

Damit die Plugs ausgelöst und die korrekten Projektdetails geladen werden,legen wir eine neue Aktion für den Projektknoten an. Nach dem gleichenPrinzip können Sie bei Bedarf auch Ereignisbehandler für andere UI-Ele-mente anlegen:

1. Wechseln Sie zur Registerkarte Layout des Views V_PROJECT_DETAILS. Kli-cken Sie im Outline-View doppelt auf das UI-Element TNT_PROJECTS, undwechseln Sie im Properties-View auf die Registerkarte Event.

2. Markieren Sie die Eigenschaft onAction, und klicken Sie auf den ButtonCreate.

3. Im folgenden Dialog nennen Sie die neue Aktion »DISPLAY_PROJECT«und vergeben eine Beschreibung (siehe Abbildung 4.26). Der Dialog zeigtIhnen direkt an, wie der Ereignisbehandler zu Ihrer Aktion heißen wird.Sie können außerdem den Aktionstyp wählen. Wir belassen es bei der Ein-stellung Standard und bestätigen die Anlage mit Finish.

Über den Button Go gelangen Sie in die Implementierung der Ereignisbe-handler-Methode. In dieser Methode sorgen Sie dafür, dass das gewählteProjekt geladen wird. Dazu rufen Sie die Methode SELECT_PROJECT im Kom-ponenten-Controller auf und lösen anschließend das Plug OP_PROJECT_DETAILS aus. Es gibt keinen Assistenten, der die Methodenaufrufe oder denCode zum Auslösen eines Plugs erzeugt. Stattdessen können Sie die Code-Vervollständigung verwenden. Der Komponenten-Controller steht in jedemView über das Attribut WD_COMP_CONTROLLER zur Verfügung. Über die Tasten-

3040.book Seite 226 Freitag, 6. März 2015 11:21 11

Views und Windows 4.2

227

kombination (Strg) + Leertaste können alle verfügbaren Methoden aufgelis-tet und inklusive ihrer Signatur über die Tastenkombination (ª) + (¢) ein-gefügt werden. Zum Auslösen eines Plugs steht zudem das TemplatefirePlug zur Verfügung. Es fügt eine Code-Vorlage ein, die Sie nur noch umden Namen des Plugs ergänzen müssen. Diesen finden Sie ebenfalls mithilfeder Code-Vervollständigung.

Abbildung 4.26 Dialog »New Action«

Bauen wir nun den Ereignisbehandler zusammen:

1. Mithilfe des Codes aus Listing 4.4 ermitteln Sie zunächst die ID desgewählten Projekts.

DATA:lr_project TYPE REF TO if_wd_context_element,lf_project_id TYPE z_projekt_id.

lr_project = wdevent->get_context_element(name = 'CONTEXT_ELEMENT' ).

lr_project->get_attribute(EXPORTING

name = `PROJECT_ID`

3040.book Seite 227 Freitag, 6. März 2015 11:21 11

Page 17: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

228

IMPORTINGvalue = lf_project_id ).

Listing 4.4 Projekt-ID ermitteln

2. Als Nächstes rufen Sie die Selektionsmethode im Komponenten-Control-ler auf. Tippen Sie dazu »wd_comp_controller->« ein, gefolgt der Tasten-kombination (Strg) + Leertaste. Wählen Sie aus der Liste die MethodeSELECT_PROJECT, und fügen Sie den Code mit (ª) + (¢) ein.

3. Vervollständigen Sie den Aufruf mit der Projekt-ID, sodass Sie die fol-gende Zeile erhalten:

wd_comp_controller->select_project( if_project_id = lf_project_id ).

4. Fügen Sie das Template firePlug ein, und geben Sie »OP_PROJECTS_DETAILS« als Namen für das Plug ein. Am Ende sollte Ihr Quelltext wie inListing 4.5 aussehen.

METHOD onactiondisplay_project.DATA:

lr_project TYPE REF TO if_wd_context_element,lf_project_id TYPE z_projekt_id.

lr_project = wdevent->get_context_element(name = 'CONTEXT_ELEMENT' ).

lr_project->get_attribute(EXPORTING

name = `PROJECT_ID`IMPORTING

value = lf_project_id ).wd_comp_controller->select_project(

if_project_id = lf_project_id ).WD_THIS->fire_op_projects_details_plg( ).

ENDMETHOD.

Listing 4.5 Implementierung der Methode ONACTIONDISPLAY_PROJECT

Wenn Sie diese Arbeitsabläufe erst einmal verinnerlicht haben, geht das Ein-fügen von Code schnell von der Hand. Der Vorteil im Vergleich zum Code-Wizard liegt vor allem darin, dass Sie nicht aus dem Fluss gerissen werden.Es ist nicht notwendig, die Maus in die Hand zu nehmen und eine Funktionin der Toolbar aufzurufen. Die Hilfen stehen Ihnen direkt während derArbeit im Quelltext zur Verfügung.

3040.book Seite 228 Freitag, 6. März 2015 11:21 11

Web-Dynpro-Applikationen 4.3

229

4.2.2 Windows

Damit unser neuer View angezeigt werden kann, muss er im Window-Con-troller unserer Web-Dynpro-Komponente eingebunden werden. Der Editorfür den Window-Controller ist einer der wenigen Editoren, die noch nicht inEclipse umgesetzt wurden. Daher ist an dieser Stelle auch wenig Neues zuerklären:

1. Klicken Sie im Project Explorer doppelt auf das Window W_ISSUE_LIST.Ein in Eclipse integriertes SAP-GUI-Fenster mit dem gewählten Windowöffnet sich.

2. Wechseln Sie mit (Strg) + (F1) in den Editiermodus, und expandieren Siedie Window Structure vollständig.

3. Klicken Sie mit der rechten Maustaste auf den View VCN_DETAILS, undwählen Sie Embed View, um den View einzubinden. Wählen Sie über dieWertehilfe des Feldes View to Be Embedded den Eintrag V_PROJECT_DETAILS.

4. Klappen Sie auch die Views VCN_DETAILS und V_PROJECT_DETAILS auf.

5. Ziehen Sie den Outbound-Plug OP_PROJECT_DETAILS auf den Inbound-PlugIP_SHOW_PROJECT, und aktivieren Sie Ihre Änderungen ((Strg) + (F3)).

Damit haben wir die Views in das Window eingebettet. Das Ergebnis solltewie in Abbildung 4.27 aussehen.

Abbildung 4.27 Struktur des Windows W_ISSUE_LIST

4.3 Web-Dynpro-Applikationen

Web-Dynpro-Komponenten lassen sich selbst nicht ausführen, es wirdzwangsläufig eine Applikation benötigt, die dem Endanwender den Zugriff

3040.book Seite 229 Freitag, 6. März 2015 11:21 11

Page 18: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

230

auf das System erlaubt. Im Folgenden lesen Sie, was Sie tun müssen, umunsere Komponente ausführen zu können.

Eine Web-Dynpro-Anwendung ordnet der Komponente einen aktiven Inter-

face-View (ein Window) zu, das zur Anzeige gebracht wird. Zudem wird einICF-Service (ICF = Internet Communication Framework) erstellt, über dendie Applikation aufgerufen wird.

Das Erstellen einer Applikation ist einfach. Der Aufwand beschränkt sichmehr oder weniger darauf, sich einen Namen und eine Beschreibung einfal-len zu lassen:

1. Klicken Sie im Project Explorer mit der rechten Maustaste auf die Kompo-nente ZWD_C_ISSUE_LIST, und wählen Sie New � Application.

2. Im folgenden Dialog geben Sie z. B. »ZWD_A_ISSUE_LIST« als Namen fürdie Applikation und »Issue List« als Beschreibung ein (siehe Abbildung4.28). Fahren Sie mit einem Klick auf Next fort.

Abbildung 4.28 Neue Web-Dynpro-Applikation erstellen

3. Wählen Sie Ihren Transportauftrag für unsere Beispielanwendung aus,und legen Sie die Anwendung mit Finish an.

4. Das SAP GUI startet und zeigt Ihre neue Anwendung an. Speichern Siediese, und schließen Sie die SAP-GUI-Registerkarte.

Die neu angelegte Applikation taucht nun unterhalb der Komponente imProject Explorer auf. Sie können die Anwendung auch direkt über Eclipse

3040.book Seite 230 Freitag, 6. März 2015 11:21 11

Floorplan Manager 4.4

231

ausführen. Öffnen Sie dazu das Kontextmenü zu Ihrer Applikation im ProjectExplorer, und wählen Sie Run As… � Web Dynpro ABAP Application. Der inEclipse integrierte Browser startet und zeigt Ihre Anwendung an. UnterUmständen werden Sie vorab noch nach Benutzernamen und Passwortgefragt.

4.4 Floorplan Manager

Der Floorplan Manager ist ein Framework zur Erstellung konfigurierbarerWeb-Dynpro-Anwendungen. Über den Floorplan Manager können Sie ver-schiedene Bausteine in Form sogenannter Building Blocks zu einer Anwen-dung zusammensetzen. Der Floorplan Manager basiert zu einem Großteilauf Web-Dynpro-Konfigurationen.

In der Vergangenheit war es mitunter mühselig, eine neue Anwendung zuerstellen, da diese und eine Reihe von Konfigurationen zunächst angelegtwerden mussten. Seit der Einführung des Application Creation Tools (ACT)kann diese Aufgabe automatisiert durchgeführt werden. Das ACT ist auch inEclipse verfügbar.

Eine Floorplan-Manager-Anwendung legen Sie in Eclipse wie folgt an:

1. Markieren Sie im Project Explorer das Paket Z_ISSUE_LIST, und drückenSie (Strg) + (N), um ein neues Objekt zu erstellen. Wählen Sie Floorplan

Manager Application aus der Liste, und fahren Sie mit Next fort.

2. Aus der Liste der Assistenten wählen Sie Wizard for Creating Empty

FPM Applications und bestätigen die Auswahl mit Finish (siehe Abbil-dung 4.29).

Abbildung 4.29 Neue Floorplan-Manager-Anwendung anlegen

3040.book Seite 231 Freitag, 6. März 2015 11:21 11

Page 19: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Web Dynpro ABAP in Eclipse4

232

3. Im integrierten Browser öffnet sich das ACT (siehe Abbildung 4.30).Geben Sie als Namen der Web-Dynpro-Applikation »ZWD_FPM_ISSUE_LIST« sowie eine passende Beschreibung ein.

Abbildung 4.30 Application Creation Tool

4. Wählen Sie als Floorplan-Typ, d. h. als Grundriss, der der Anwendungzugrunde liegen soll, unter Select Floorplan die Option Overview Page.

5. Das ACT schlägt automatisch Namen für die Konfigurationen vor. Sie kön-nen diese Namen einfach übernehmen und mit Next zum nächsten Schrittgehen.

6. Wählen Sie als Package Z_ISSUE_LIST, und tragen Sie Ihren Transportauf-trag im Feld Request/Task ein.

7. Schließen Sie die Anlage mit Save ab.

Ihnen werden nun zwei Links angezeigt, einer, um in den Floorplan-Konfi-gurationseditor (Flexible UI Designer, FLUID) abzuspringen, und einer, umdie Anwendung auszuführen. Wenn Sie den Project Explorer aktualisieren,werden Ihnen zudem die neu angelegte Anwendung und die zugehörigenKonfigurationen angezeigt (siehe Abbildung 4.31).

3040.book Seite 232 Freitag, 6. März 2015 11:21 11

Floorplan Manager 4.4

233

Abbildung 4.31 Floorplan-Manager-Objekte im Project Explorer

Die Floorplan-Manager-Tools sind alle webbasiert. Daher unterscheidet sichdie Arbeit mit diesen Tools, ausgehend von Eclipse, nicht von der Arbeit, dievon der SAP-GUI-Oberfläche ausgeht. Sie können unsere Aufgabenliste mit-hilfe dieser Tools nun als Floorplan-Manager-Anwendung zur Verfügungstellen. Die dazu notwendigen Konfigurationen sind nun angelegt und kön-nen in Eclipse aufgerufen werden.

3040.book Seite 233 Freitag, 6. März 2015 11:21 11

Page 20: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

7

Inhalt

Vorwort .................................................................................................. 11

Einleitung ................................................................................................ 13

1 Die ersten Schritte – »Hallo ADT« ....................................... 21

1.1 Backend-System .................................................................... 211.1.1 Den SAP NetWeaver Application Server

einrichten ................................................................ 221.1.2 Amazon Web Services .............................................. 27

1.2 Installation und Einrichtung der Entwicklungsumgebung ....... 521.2.1 Java Runtime Environment ....................................... 521.2.2 Eclipse ..................................................................... 531.2.3 ABAP Development Tools ........................................ 54

1.3 Eclipse Workbench ................................................................ 581.3.1 Workspaces ............................................................. 581.3.2 Projekte ................................................................... 591.3.3 Views ....................................................................... 621.3.4 Perspektiven ............................................................ 62

1.4 Das erste Programm .............................................................. 631.4.1 ABAP-Projekt anlegen .............................................. 631.4.2 »Hallo Welt« ............................................................ 661.4.3 Feature Explorer ...................................................... 69

2 Funktionen der ABAP Development Tools .......................... 71

2.1 Demoszenario ....................................................................... 712.2 Mit Entwicklungsobjekten arbeiten ....................................... 73

2.2.1 Pakete anlegen ........................................................ 742.2.2 ABAP-Dictionary-Objekte anlegen ........................... 772.2.3 Funktionsbausteine anlegen ..................................... 822.2.4 Klassen .................................................................... 862.2.5 ABAP-Programme erstellen ...................................... 92

2.3 Code-Vervollständigung ........................................................ 962.3.1 Einfache Code-Vervollständigung ............................. 972.3.2 Code-Vorlagen ......................................................... 98

2.4 Quelltext-Editor .................................................................... 1042.4.1 Aufbau ..................................................................... 1052.4.2 Lokale Änderungshistorie ......................................... 108

3040.book Seite 7 Freitag, 6. März 2015 11:21 11

Page 21: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Inhalt

8

2.4.3 Lineale und Markierungen ....................................... 1092.4.4 Navigation ............................................................... 1122.4.5 Textbearbeitung ....................................................... 1142.4.6 Quelltext formatieren ............................................... 117

2.5 Mit mehreren Ressourcen arbeiten ........................................ 1182.6 Verwendungsnachweis .......................................................... 1242.7 Quick Fix und Quick Assist .................................................... 126

2.7.1 Quick Fix ................................................................. 1272.7.2 Quick Assist ............................................................. 134

2.8 Arbeitsvorrat organisieren ...................................................... 1372.8.1 Objekte finden ......................................................... 1372.8.2 Lesezeichen ............................................................. 1432.8.3 Aufgaben verwalten ................................................. 1452.8.4 Quellcode-Links ....................................................... 1472.8.5 Aufgabenverwaltung mit Mylyn ............................... 150

2.9 Dokumentation ..................................................................... 1532.9.1 Objekte dokumentieren ........................................... 1532.9.2 Dokumentation anzeigen ......................................... 1562.9.3 Dokumentation importieren ..................................... 1582.9.4 ABAP Language Help ............................................... 160

3 Wenn mal etwas schiefläuft: Fehler finden, analysieren und beheben .................................................... 161

3.1 Testen ................................................................................... 1623.1.1 ABAP-Testklassen .................................................... 1623.1.2 Code Coverage ......................................................... 1693.1.3 ABAP Test Cockpit ................................................... 1723.1.4 Laufzeitanalyse ......................................................... 179

3.2 Debugging ............................................................................. 1813.2.1 Breakpoints setzen ................................................... 1823.2.2 Debugger ................................................................. 183

3.3 Systemmeldungen abonnieren ............................................... 1893.4 Refactoring ............................................................................ 192

4 Web Dynpro ABAP in Eclipse .............................................. 199

4.1 Controller-Programmierung ................................................... 1994.1.1 Kontext-Editor ......................................................... 2024.1.2 Attribute .................................................................. 2064.1.3 Methoden ................................................................ 206

3040.book Seite 8 Freitag, 6. März 2015 11:21 11

Inhalt

9

4.2 Views und Windows .............................................................. 2144.2.1 Views ....................................................................... 2144.2.2 Windows ................................................................. 229

4.3 Web-Dynpro-Applikationen .................................................. 2294.4 Floorplan Manager ................................................................ 231

5 Datenbankzugriffe ............................................................... 235

5.1 Data Preview ......................................................................... 2355.2 SQL-Konsole ......................................................................... 2395.3 Core Data Services ................................................................. 242

6 Erweiterungen der ABAP Development Tools .................... 249

6.1 Eclipse Rich Client Platform ................................................... 2506.1.1 Plug-in-System in Eclipse ......................................... 2516.1.2 Anatomie eines Plug-ins ........................................... 251

6.2 Server-Komponente der ABAP Development Tools ................ 2546.3 Entwicklungsumgebung für Erweiterungen vorbereiten .......... 2566.4 Implementierungen im Backend

(SAP NetWeaver AS ABAP) .................................................... 2586.4.1 Resource Controller ................................................. 2596.4.2 Resource-Application-Klasse .................................... 263

6.5 Implementierungen im Frontend (Eclipse) ............................. 2676.5.1 Abhängigkeiten ........................................................ 2716.5.2 Verbindung zum Backend ........................................ 2746.5.3 Datenaustausch ....................................................... 279

6.6 Discovery Service ................................................................... 285

Anhang ...................................................................................... 289

A Wegweiser durch die ABAP Development Tools ............................... 291B Literatur und weiterführende Informationsquellen ........................... 299C Autor ............................................................................................... 303

Index ...................................................................................................... 305

3040.book Seite 9 Freitag, 6. März 2015 11:21 11

Page 22: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

305

Index

@AbapCatalog.Buffering.status [email protected] [email protected] 244@ClientDependent [email protected] 244

A

ABAP Communication Log 278, 288ABAP Coverage 170ABAP Debugger 181ABAP Development Tools 21

Arbeitsoberfläche 120Dokumentation 24Einstellungen 98Erweiterungen 249Funktionen 71Installation 54Navigation 114SDK 258Systemvoraussetzungen 22, 52

ABAP Dictionary 79, 94, 116, 246ABAP Doc 153

Anzeige 156Formatierung 154Sonderzeichen 155

ABAP Element Info 153ABAP in Eclipse � ABAP Development

ToolsABAP Internal Table 184ABAP Language Help 160ABAP Objects 86ABAP Runtime Error 189ABAP Source Search 140ABAP Test Cockpit 172ABAP Trace 179ABAP Unit 162ABAP Unit Runner 165ABAP Workbench 13, 58

Editor 105Funktionen 105Vergleich mit Eclipse 105Zeilennummerierung 105

ABAP-Dictionary-Objekt 16, 77, 79ABAP-Link 147ABAP-Projekt 61, 274ABAP-Projekt anlegen 63

ABAP-Testklasse 162Access Key ID 32ACT 231Activator 252Adapter Pattern 276ADT � ABAP Development ToolsADT-Debugger 183ADT-Link 147, 205Aggregation 240, 247aktivieren 123Alias 197ALV-Vorlage 104Amazon EC2 28Amazon Elastic Compute Cloud 28Amazon Machine Images 28Amazon Web Services 28, 29

Benutzer 30, 32Identity and Access Management 30Regionen 28

AMI 28Änderungshistorie, lokale 108Annotation 109, 127, 145

DDL 244Textannotation 110

Anweisungsabdeckung 170Anzeigemodus 123Application Creation Tool 231Applikationstabelle 80Arbeitsvorrat organisieren 137ATC 172ATC Problems 177ATC Result Browser 176Attribut 86

anlegen 206hinzufügen 203Typ 203

Aufgabeaktivieren 150anlegen 151definieren 146exportieren 152importieren 152kategorisieren 151Kontext 150lokale 150teilen 152Unteraufgabe 151verwalten 146, 150

3040.book Seite 305 Freitag, 6. März 2015 11:21 11

Page 23: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Index

306

Aufgabenliste 71Aufrufstapel 165, 185Ausnahme 85Ausnahme hinzufügen 208ausschneiden 114Autovervollständigung 96, 126AWS � Amazon Web ServicesAzure 28

B

Background 126BAdI

BADI_ADT_DISCOVERY_PROVIDER 256, 285

BADI_ADT_REST_RFC_APPLICATION 256

Bearbeitungsmodus 123Benutzer 23Benutzergruppe 30Benutzerpflege 23Berechtigung 23Bezeichner 118Bibliothek 272Bibliothek, Dokumentation an-

hängen 273Binding 220Blockmodus 116Bookmark 143Bookmarks-View 144Breadcrumb 107Breakpoint 182, 187, 269

Annahme 189Ausnahme 189

Breakpoints-View 184Bug Report 72Bugzilla 152Build.properties 253Building Block 231Bundle 251Business Function aktivieren 141

C

Caching-Mechanismus 255CDS 16, 242CDS-View definieren 244Change Request 72Check Variant 175Class Builder 86

Class Builder, formularbasierter 86CLI 28Cloud Computing 27Code Assist 96Code Coverage 169Code Element Info 157Code Folding 106Code Inspector 175Code kompilieren 58Code Pushdown 240, 242Code-Block 106Code-Deployment 58Code-Formatierung 117Code-Vervollständigung 96, 203

aktivieren 97verwenden 97

Code-Vorlage 98, 209ABAP Workbench 104erstellen 98, 99interaktive 102

Command 270Command-Line Interface 28Community 17Constructor 89Container 216Content Handler 256, 260, 281Context 202Controller 201Copy and Paste 193, 197Core Data Services 16, 242

D

Data Browser 235Data Definition Language 16, 242, 245Data Definition Language,

Annotation 244Data Dictionary � ABAP DictionaryData Element 78Data Preview 235Data Preview, Filter 236Dateisystem, semantisches 61Datenbank

Tabelle 80, 235Views 242Zugriff 235

Datendeklaration 94Datendeklaration, Formatierung 131Datenelement anlegen 78Datenklasse 279Datentyp 78

3040.book Seite 306 Freitag, 6. März 2015 11:21 11

Index

307

Datentyp anlegen 78DDIC � ABAP DictionaryDDL 16, 242DDL Source 243Debugger 182Debugging 181, 269Debug-Modus 183, 269Debug-Perspektive 183Debug-View 183Demoszenario 71Deployment 30, 58Destination ID 274Developer Studio 14, 199Development Request 72Dictionary-Objekt � ABAP-Dictionary-

ObjektDirektzugriff 122Discovery Service 256, 285Dokumentation 24, 153

anzeigen 156importieren 158Vorlage 104

Domäne anlegen 16

E

EclipseCommunity 17IDE for Java EE Developers 54Installation 53Kepler 53Workbench 58Workbench-Datei 61

Eclipse Debugger 182Eclipse Foundation 14Eclipse Rich Client Platform 250Eclipse SDK 250, 257Eclipse Software Development Kit

250, 257Editiermodus 123Editor 62, 104, 106Editor, ABAP Workbench 105Einfügen 114Elastic Cloud Computing 28Enhancement Spot 251, 285Entwicklungsobjekt 73

aktivieren 123finden 137öffnen 138speichern 123

Entwicklungsumgebung, Vergleich 13, 291

Equinox 251Ereignisbehandler 208, 226Erweiterung 249, 270Erweiterungspunkt � Extension PointEvent Handler 226Extension 249, 270Extension Point 251

org.eclipse.ui.bindings 251org.eclipse.ui.menu 251

F

Favorit 77, 186Favoritenpaket 66Feature 251Feature Explorer 69Feed 190Feed Reader 189Feed Reader, Filter 190Fehler 161Fehlerbehebung 161, 169Fehlermeldung 127Fehlerprotokoll 90Feld anlegen 89Filterfunktion 125Filter-Pattern 238Fixture-Methode 163, 164, 166Flexible UI Designer 232Floorplan 232Floorplan Manager 231Floorplan-Konfiguration 232Floorplan-Manager-Anwendung

anlegen 231FLUID 232Format 117Format einrichten 117Function Builder 85Funktionsbaustein 82

anlegen 82, 135Deklaration 85functionModuleParameter 86Syntax 85

Funktionseinheit 251Funktionsgruppe 135Funktionsgruppe anlegen 82

3040.book Seite 307 Freitag, 6. März 2015 11:21 11

Page 24: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Index

308

H

Hallo-Welt-Programm 67HANA � SAP HANAHATEOAS 256Help Contents 160Hilfe 160Hilfetext 24Hintergrundprozess 126History 108Hostvariable 245HTTP-Link 205Hypermedia as the engine of application

state 256

I

IAM 30IAM-Benutzer 30ICF 24ICF-Service 24, 230IDA 246IDE 13Image 30Inbound-Plug 226Include anlegen 94, 137Inner Join 244Installationsvoraussetzung 21Integrated Development

Environment 13Integrierte Entwicklungsumgebung 13Interface 196

anlegen 197IContentHandler<T> 281ISelection 276View 230

Internet Communication Framework 24IRestResource 255, 274Issue 72

Kommentar 72List 71Status 72

J

Java 249Java Development Tools 250Java Runtime Environment 52JavaBean 279JDT 250

Join 240, 244JRE 52

K

Kardinalität 203Kettensatz 131Klasse 196

anlegen 86CL_ABAP_UNIT_ASSERT 163definieren 86IProject 276testen 162

Klassen-Editorformularbasierter 86quelltextbasierter 87

Knotenanlegen 202Unterknoten 203

Kohäsion 165Kommentar 142, 153Kommentarzeichen entfernen 172Kontext

anlegen 202Binding 222Editor 221Mapping 214Menü 62Sensitivität 131

kopieren 114Kopplung, lose 165

L

Laufzeitanalyse 179Laufzeitfehler 189Laufzeitumgebung 250, 251Layout 216Layout-Editor 216Layout-Editor, Kopierfunktion 224Layout-Manager 216Left Outer Join 244Lesezeichen 143Lesezeichen anlegen 144Lineal 109Link 147Link with Editor 68, 120Linux 43Local History 108Logon-Service 276

3040.book Seite 308 Freitag, 6. März 2015 11:21 11

Index

309

Logon-Ticket 22lose Kopplung 14Lösung 38Lösung, Instanz 43

M

Mac 43Manifest 252, 270

Dateien 252Editor 253

MANIFEST.MF 252Mapping 214Marker 89, 146Metadaten 146Methode 86

anlegen 127CLASS_SETUP 164CLASS_TEARDOWN 164definieren 206extrahieren 193Implementierung 89, 90, 127, 128kommentieren 154SAVE 127SETUP 164, 166TEARDOWN 164, 166umbenennen 193

Microsoft Remote Desktop 43Mini SAP 44Mock-Daten 165Modus, maximale Anzahl 118Mylyn 150

lokale Aufgaben 150Task Repository 152

N

Namenskonvention 87Navigate to � VorwärtsnavigationNavigation 62, 135Navigator 60NWDS 14, 199

O

Object Set 175Objekt 137Objektliste 144

Objektorientierung 86On-Demand 27On-Premise 27OpenSQL 238, 240, 245Operator 141OSGi 250

Alliance 251Service Platform 251

OTR 104OTR-Text 220Outbound-Plug 226Outline-View 91, 135, 208, 216Overview Ruler 109, 144

P

Paket anlegen 74PDE 250Performance 179Performance Profiler 179Performance-Trace 179

Aufrufstruktur 179Datenbankzugriff 180Trefferliste 179Zeitachse 180

Perspektive 62, 65erstellen 122personalisieren 122wechseln 63zurücksetzen 122

Platzhalter 138Plug 226Plug auslösen 227Plug-in 14, 150, 250, 251

Abhängigkeiten 271Aufbau 251entwickeln 249Projekt 254Projekt anlegen 267Selection Spy 270testen 277Vorlage 254, 267

Plug-in Development Environment 250, 257

Plugin.XML 252, 270Port 48Preferences 98Pretty Printer 117Problems-View 90Produktiv-Code 125

3040.book Seite 309 Freitag, 6. März 2015 11:21 11

Page 25: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Index

310

Programmanlegen 66erstellen 92Hallo Welt 67

Project Explorer 60, 120Projekt 59projektbezogene Einstellung 117Properties-View 202, 216Prozedurabdeckung 171Prüfvariante 177

Q

Qualitätssicherung 172Quelltext

Abdeckung 170Editor 104, 106Einrückung 118Formatierung 117Kommentar 142Link 147

Quick Access 63Quick Assist 128, 134Quick Diff 107Quick Filter 238Quick Fix 126, 127, 134, 154, 193Quick Outline 113

R

RCP 250Rechtschreibprüfung 111Refactoring 192, 198Registerkarte 114

Anzeige einstellen 119schließen 82Übersicht 123

Regressionstest 173Remote Desktop 48

Client 44Connection 43

Remote Function Call � RFCRemote-Zugriff 48Renaming 193Report

erstellen 92RS_ABAP_SOURCE_SCAN 143SRIS_SOURCE_SEARCH 141

Reporter 72

Resource Application 256, 285, 286Resource Controller 255, 259Resource-Application-Klasse 263Ressource 252, 255, 285REST 14, 255, 256REST-Ressource 255, 274Restrukturierung 192Reverse Domain Naming 267RFC 14, 24, 255RFC Handler 256Right Outer Join 244Rolle 23

SAP_BC_DWB_ABAPDEVELOPER 23SAP_BC_DWB_WBDISPLAY 23

S

SAP Cloud Appliance Library 28, 30Konto 35Lösungen 38

SAP Community Network 17SAP GUI 14, 52SAP GUI installieren 48SAP HANA 38, 140, 242SAP List Viewer With Integrated Data

Access 246SAP MaxDB 38SAP NetWeaver Application Server

22, 274SAP NetWeaver Developer Studio

14, 199SAP_ALL 47SAPlink 17, 288SAP-Server, Remote-Zugriff 48SAPUI5 15, 199Schlüsselwort 118Screen Painter 16Search-View 124, 140Secret Access Key 32SELECT DISTINCT 238Select Options 94semantisches Dateisystem 61Service Discovery 288Session

zustandsbehaftete 278zustandslose 278

SFS 61Sichtbarkeit 195Signatur 97Simple Transformation 260Single Sign-on 22

3040.book Seite 310 Freitag, 6. März 2015 11:21 11

Index

311

Sonderzeichen 155Source Library 88Speichern 123, 127Sperrkonzept 123Sprungmarke 144SQL-Abfrage 240SQL-Abfrage, Ausführungsprotokoll 241SQL-Konsole 240Stack 165Standardsuche 140Stempel 143Struktur anlegen 16Suche 126, 137

ABAP Source Search 140erweiterter Suchdialog 139Filter 142Hilfe 126

Syntax 85Syntaxprüfung 111Systembibliothek 66System-ID 119Systemmeldung 189

T

Tab 123Tabelle

anlegen 225Anzeige, allgemeine 235

TABLES-Parameter 85Tag 104Task 146Task List 150Tasks-View 146Tastenkombination 114, 291TCP-Port 49Template 98, 209, 296Templates-View 98, 163Testabdeckung 169Testbarkeit 165Test-Code 125Testdaten 165Testdaten-Gültigkeit 168Testen 162Testfall 166Test-Fixture 164testgetriebene Entwicklung 198Testklasse 162

anlegen 163Template 163

Testmethode 163

Testqualität 170Testumgebung 85Textannotation 110Textsuche 140Timeout 187Top-Include 94Transaktion

ATC 173CODE_SCANNER 143, 146SAT 179SCI 175SE11 78SE16 235SE16N 235SE24 86SE30 179SE37 85SE80 144SECSTORE 45SFW5 141SICF 24, 149SLICENSE 44SOTR_EDIT 220ST22 189SU01 23

Transformation anlegen 260Transparent Container 218

U

Übergabeparameter 226UI-Element

anlegen 217CTable 225Eigenschaften 216Table 225TransparentContainer 217verschieben 224

Umbenennung 193Umlaut 155Union 244Unique Resource Identifier � URIUnit-Test 162, 192

durchführen 164Ergebnis 165

Update-Seite 54, 251URI 255, 266, 285URI generieren 288User Experience 17Utility-Klasse 274

3040.book Seite 311 Freitag, 6. März 2015 11:21 11

Page 26: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Index

312

V

Variable 102Name 103umbenennen 193

Variables-View 184Vereinigungsmenge 244Versionshistorie 108Vertical Ruler 109, 127, 144, 146, 182Verwendungsnachweis 124, 192Verwendungsnachweis, Kontext-

elemente 205Verzweigungsabdeckung 170View 62

ABAP Communication Log 278, 288ABAP Coverage 170ABAP ELEMENT INFO 153ABAP Internal Table 184ABAP Traces 179ABAP Unit Runner 165anlegen 214, 224anordnen 120ATC Problems 177ATC Result Browser 176Bookmarks 144Breakpoints 184Controller 200Debug 183Entity 244Feed Reader 189Layout 216Outline 91, 135Problems 90Properties 202, 216Quick Assist 134Search 124, 140Task List 150Tasks 146Templates 98, 163Übersicht 62Variables 184vergrößern 123verschieben 62

View Designer 27View Outline 216Virtual Appliance 29Virtual Appliance einrichten 42Virtual Private Cloud 41, 49Vorwärtsnavigation 112

W

Watchpoint 184, 187Web Dynpro ABAP 16, 199, 295

Code Wizard 209Template 295

Web Dynpro Java 199Web-Dynpro-Applikation 229

anlegen 230ausführen 230

Web-Dynpro-Komponente 229Web-Dynpro-Komponente anlegen 199Web-Dynpro-Service 26Werteliste 237Wildcard 138, 141Window 43, 200, 214, 229, 230Window-Controller 200, 229Window-Struktur 229Working Set 61Worklist 144Workspace 54, 58

Abfrage unterdrücken 59anlegen 59Verwaltung 250

Z

Zeilekopieren 115löschen 115verschieben 115

Zeitstempel 143Zurück-Taste 113

3040.book Seite 312 Freitag, 6. März 2015 11:21 11

Page 27: ABAP-Entwicklung in Eclipse · Web Dynpro Java Verwechseln Sie die Entwicklungsumgebung für Web Dynpro ABAP in den ADT nicht mit den Werkzeugen für Web Dynpro Java…

Wir hoffen sehr, dass Ihnen diese Leseprobe gefallen hat. Sie dürfen sie gerne empfehlen und weitergeben, allerdings nur vollständig mit allen Seiten. Bitte beachten Sie, dass der Funktionsumfang dieser Leseprobe sowie ihre Darstel-lung von der E-Book-Fassung des vorgestellten Buches abweichen können. Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschützt. Alle Nut-zungs- und Verwertungsrechte liegen beim Autor und beim Verlag.

Teilen Sie Ihre Leseerfahrung mit uns!

Daniel Schön

ABAP-Entwicklung in Eclipse312 Seiten, gebunden, März 2015 69,90 Euro, ISBN 978-3-8362-3040-7

www.sap-press.de/3700

Daniel Schön ist seit 2014 Partner bei PSP Solutions in Bergisch Gladbach, wo er als Entwickler und Berater tätig ist. Er entwickelte in seiner beruflichen Laufbahn Softwarearchitekturen mit ABAP Objects, hat viel Er-fahrung mit Web Dynpro ABAP gesammelt und auch User Interfaces mit SAPUI5 entworfen. Als Mitglied des Design Partner Council Web Dynpro ABAP in Eclipse

von SAP konnte er frühzeitig die Web-Dynpro-Tools für Eclipse verwenden und aktiv Verbesserungsvorschläge in den Entwicklungsprozess einbringen. Seitdem setzt Daniel Schön Eclipse nicht nur zur Java-Entwicklung, son-dern auch in ABAP ein.

Wissen aus erster Hand.