Praktischer Einstieg in ABAP Objects - Leseprobe - SAP … · 56 Arbeiten mit der...

of 26 /26
Inhalt 5 Was enthält dieses Buch? .................................................................... 12 Schriftkonventionen ............................................................................. 14 Systemvoraussetzungen ....................................................................... 15 Weiterführende Informationen, Download der Quellcodes ................. 16 1.1 SAP-Software und -Architektur im Überblick ....................................... 19 1.2 Hinweise zum Einrichten eines SAP-Zugangs ....................................... 24 1.2.1 Reguläres System ..................................................................... 25 1.2.2 Testsystem unter Linux ............................................................ 26 1.2.3 Testsystem unter Windows ...................................................... 27 1.3 Checkliste für Programmierer zum Projektbeginn ................................ 29 1.4 Login, erste Schritte und Systemeinrichtung ........................................ 34 2.1 Erste Schritte im Object Navigator ....................................................... 58 2.2 Entwicklungsklassen/Pakete ................................................................ 67 2.3 Namensräume ...................................................................................... 70 2.4 Erstes Programm »Hallo Welt« – REPORT, INCLUDE, Anwendungsmenü ............................................................................... 77 2.5 Online-Hilfe, help.sap.com, service.sap.com, SAP-Hinweise ............... 103 Inhalt Vorwort 9 Einleitung 11 1 Technischer Überblick und erste Schritte im System 19 2 Arbeiten mit der Entwicklungsumgebung – Object Navigator 55

Embed Size (px)

Transcript of Praktischer Einstieg in ABAP Objects - Leseprobe - SAP … · 56 Arbeiten mit der...

  • Inhalt 5

    Was enthlt dieses Buch? .................................................................... 12

    Schriftkonventionen ............................................................................. 14

    Systemvoraussetzungen ....................................................................... 15

    Weiterfhrende Informationen, Download der Quellcodes ................. 16

    1.1 SAP-Software und -Architektur im berblick ....................................... 19

    1.2 Hinweise zum Einrichten eines SAP-Zugangs ....................................... 241.2.1 Regulres System ..................................................................... 251.2.2 Testsystem unter Linux ............................................................ 261.2.3 Testsystem unter Windows ...................................................... 27

    1.3 Checkliste fr Programmierer zum Projektbeginn ................................ 29

    1.4 Login, erste Schritte und Systemeinrichtung ........................................ 34

    2.1 Erste Schritte im Object Navigator ....................................................... 58

    2.2 Entwicklungsklassen/Pakete ................................................................ 67

    2.3 Namensrume ...................................................................................... 70

    2.4 Erstes Programm Hallo Welt REPORT, INCLUDE, Anwendungsmen ............................................................................... 77

    2.5 Online-Hilfe, help.sap.com, service.sap.com, SAP-Hinweise ............... 103

    Inhalt

    Vorwort 9

    Einleitung 11

    1 Technischer berblick und erste Schritte im System 19

    2 Arbeiten mit der Entwicklungsumgebung Object Navigator 55

  • 6 Inhalt

    3.1 Grundlegende Befehle und Felder WRITE, PARAMETERS, MOVE, SY-Felder ................................................................................. 116

    3.2 Daten und Datentypen DATA, PARAMETERS, CONSTANTS, FIELD-SYMBOLS, TYPE, CREATE, Textelemente .................................. 122

    3.3 Strukturen und interne Tabellen TABLE, MOVE-CORRESPONDING, INSERT, APPEND, READ, MODIFY, DELETE, LOOP ............................ 147

    3.4 Unterprogramme und Funktionen FORM, FUNCTION, EXCEPTIONS 159

    3.5 Verzweigungen und logische Ausdrcke IF, CASE ............................ 178

    3.6 Schleifen WHILE, DO ........................................................................ 192

    4.1 Feldeigenschaften DATA ELEMENT, DOMAIN ................................. 200

    4.2 Datenbanktabellen definieren und verarbeiten SELECT, INSERT, UPDATE, DELETE ................................................................................. 215

    5.1 Einfache Ein- und Ausgabeoberflchen SELECTION SCREEN, SELECT-OPTIONS, CALL SELECTION SCREEN, SAP List Viewer ......... 236

    5.2 Komplexe Ein- und Ausgabeoberflchen Dynpros ............................ 269

    6.1 Klassen und Objekte CLASS, CREATE OBJECT, METHOD ................ 333

    6.2 Vererbung und Polymorphie INHERITING FROM, REDEFINITION ... 365

    6.3 Ereignisse EVENTS ............................................................................ 384

    7.1 Fachliche Anforderungsdefinition und Funktionalittsliste ................. 4107.1.1 Funktionalittsliste .................................................................. 4117.1.2 Abgrenzungsliste ..................................................................... 413

    7.2 Softwarearchitektur ............................................................................. 415

    3 Prozedurale Sprachelemente 113

    4 Datenbanktabellen definieren und verwalten 199

    5 Bildschirmein- und -ausgabe 235

    6 Objektorientierte Sprachelemente 331

    7 Praxisszenario Automatisierte Buch-fhrung fr Konzernniederlassungen 409

  • Inhalt 7

    7.3 Softwaredesign .................................................................................... 4177.3.1 Grobdesign ............................................................................. 4187.3.2 Feindesign ............................................................................... 422

    7.4 Implementation .................................................................................... 4317.4.1 DDIC-Objekte ......................................................................... 4327.4.2 Programme ............................................................................. 4387.4.3 Funktionsgruppen ................................................................... 440

    A.1 Programmierrichtlinien ......................................................................... 467

    A.2 Tools zur Programmprfung ................................................................. 476

    A Programmierrichtlinien und Tools 467

    B Quellen und Literaturhinweise 479

    C Glossar 481

    Die Autoren 487

    Index 489

  • Arbeiten mit der Entwicklungsumgebung Object Navigator 55

    2 Arbeiten mit der Entwicklungsum-gebung Object Navigator

    Eigene ABAP-Programme entwickelt man mit Hilfe der inte-grierten Entwicklungsumgebung Object Navigator. Diese Software beinhaltet die wichtigsten Werkzeuge zur Erstellung und Pflege von Quelltexten, Programmoberflchen und Datenbanktabellen, die ein ABAP-Programmierer bei seiner tglichen Arbeit bentigt.

    GrundlagenDer Object Navigator ist natrlich selbst ein ABAP-Programm und kannfolglich von jedem Anwender mit SAP-Zugang ausgefhrt werden, soferner die notwendigen Berechtigungen besitzt. Innerhalb des Object Naviga-tors luft die Applikationserstellung immer nach dem gleichen Schema abund beinhaltet die folgenden Schritte:

    Vorhandenes Entwicklungsobjekt auswhlen oder neues anlegenDie Arbeit mit dem Object Navigator gestaltet sich sehr visuell und mitvielen Subfenstern, Dialogen und Sicherheitsabfragen. Der Grund hier-fr liegt in der Vielzahl an verschiedenartigen Entwicklungsobjekten,die es neben dem eigentlichen Quelltext gibt und die zusammenge-

    Abbildung 2.1 Der Weg vom Entwicklungsobjekt zur fertigen Applikation

    Entwicklungsobjekt prfen

    Entwicklungsobjekt aktivieren

    Debuggen und isolierte Tests durchfhren

    Informationen vervollstndigen, Code schreiben etc.

    Entwicklungsobjekt freigeben und transportieren

    Integrationstests durchfhren

    Applikation freigeben und transportieren

    Vorhandenes Entwicklungsobjekt auswhlen oder neues anlegen

  • 56 Arbeiten mit der Entwicklungsumgebung Object Navigator

    nommen das ABAP-Programm ergeben. Beispiele hierfr sind Daten-und Tabellendefinitionen, Suchhilfen und Transaktionen, um nur einigezu nennen. In den folgenden Kapiteln werden Sie sie alle kennenlernen.

    Informationen vervollstndigen, Code schreiben etc.Konkret werden Sie feststellen, dass Sie nur etwa die Hlfte Ihrer Pro-grammierzeit mit dem Schreiben von ABAP-Quelltext verbringen wer-den und die andere Hlfte mit dem Anlegen von anderen Entwick-lungsobjekten (z.B. Datenbanktabellen oder Funktionsgruppen).

    Entwicklungsobjekt prfenJedes Entwicklungsobjekt muss eine manuell gestartete oder automa-tische Prfung durchlaufen, analog zum Syntax-Check eines Quelltex-tes. Typisch fr Datenbankanwendungen im Allgemeinen und fr denObject Navigator im Besonderen ist die Penetranz, mit der daraufWert gelegt wird, fehlerhafte oder unvollstndige Angaben erst garnicht auf die Datenbank zu lassen. Der Ihnen abverlangte hohe Auf-wand ist jedoch einer der Hauptgrnde fr die hohe Laufzeitstabilittvon ABAP-Programmen, die bei SAP-Systemen mit potenziell Hunder-tausenden Anwendern notwendig ist.

    Entwicklungsobjekt aktivierenBevor ein Entwicklungsobjekt (z.B. Tabellendefinition) von einemanderen Entwicklungsobjekt (z.B. Quelltext) genutzt werden kann,muss es aktiviert werden. Die ganze Entwicklungsumgebung und dasTransportwesen zum Kopieren von ABAP-Programmen ist eingebettetin ein Versionskontrollsystem, das nicht nur ber die Versionen wacht,sondern zu jedem Entwicklungsobjekt zwischen einem aktiven undeinem inaktiven Zustand unterscheidet. Whrend die aktive Variantevon anderen Entwicklungsobjekten genutzt wird, knnen Sie undAndere an der inaktiven Variante unbehelligt Vernderungen vorneh-men, die die brigen Entwicklungsobjekte (und Teamkollegen, diedamit arbeiten) so lange nicht beeinflussen, bis Sie die nderungenaktiviert haben.

    Debuggen und isolierte Tests durchfhrenDer Object Navigator beinhaltet selbstverstndlich einen Debuggerzum Testen von ABAP-Programmen. So knnen Sie das entwickelteProgramm nicht nur als Ganzes, sondern auch Befehl fr Befehl nach-vollziehen und testen. Nicht selbstverstndlich ist indes, dass derObject Navigator eine Testumgebung fr einzelne Funktionen, Klassenund Methoden mitbringt, in der man funktionale Tests auf untersterEbene durchfhren kann, auch wenn das Programm als Ganzes noch

  • Arbeiten mit der Entwicklungsumgebung Object Navigator 57

    gar nicht lauffhig ist. Gerade bei greren Entwicklungsteams ist dasein ntzliches Feature, denn man muss nicht unbedingt auf die Arbeitder Kollegen warten. Ein angenehmes Komfortmerkmal ist auch, dassman beim Debuggen hnlich wie in Visual Basic den Befehlscursor ein-fach vor- oder zurcksetzen kann und so den Programmablauf direktbeeinflusst. Wir werden das spter ausprobieren.

    Entwicklungsobjekt freigeben und transportierenNach dem positiven Abschluss der isolierten Tests wird das Entwick-lungsobjekt fr gewhnlich in ein zweites, unabhngiges SAP-Systemspeziell zur Qualittssicherung transportiert. Zusammen mit den bri-gen Bestandteilen entsteht dort eine Kopie des ABAP-Programms.

    Integrationstests durchfhrenTester und Qualittsbeauftragte fhren auf dem Qualittssicherungs-system weitere Tests und Integrationsprfungen mit anderen Applika-tionen durch und probieren gegebenenfalls auch das Verhalten beiunterschiedlichen Customizing-Einstellungen, sofern Sie dies in IhremProgramm vorgesehen haben.

    Applikation freigeben und transportierenSchlielich kann die Applikation als Ganze in ein oder mehrere Produk-tivsysteme kopiert oder als verkaufsfertige Applikation auf CDgebrannt werden.

    Dezentrale BuildsIn seinem Buch The Road Ahead beschreibt Bill Gates, dass es in deneinzelnen Entwicklungsabteilungen bei Microsoft einen so genanntenBuild Master gibt, der den zentralen Compilerlauf organisieren und ber-wachen muss, bei dem alle Quelltexte zu einem Produkt gemeinsamkompiliert werden. Bei groen Produkten wie z.B. dem Windows-Betriebssystem kann die Vorbereitung und Durchfhrung dieses Build-Vorgangs durchaus eine ganze Nacht dauern und dementsprechendunbeliebt ist der Job. Zum Build Master ernannt wurde immer der Ent-wickler, dessen Quelltexte beim letzten Compilerlauf einen Abbruch oderFehler verursacht hatten, was dazu fhrte, dass die Tester am nchstenTag nichts Aktuelles zum Testen hatten, was wiederum den gesamten Ent-wicklungsprozess verzgerte. Diesen Job machte der arme Tropf so lange,bis einen anderen Entwickler dieses Schicksal ereilte. hnliche Vorge-hensweisen kennen wir von Unternehmen der Automatisierungstechnik,wo die Betriebssysteme fr die speicherprogrammierbaren Steuerungenebenfalls in C entwickelt werden.

  • 58 Arbeiten mit der Entwicklungsumgebung Object Navigator

    Im Gegensatz dazu mssen ABAP-Programme nicht zentral kompiliertund gelinkt werden, denn die ABAP-Laufzeitumgebung beherrscht sogenannte dezentrale Builds, d.h., jedes einzelne Entwicklungsobjekt wirdfr sich aktiviert, gegebenenfalls in Zwischencode bersetzt und letztlichgegen die vorherige Version ausgetauscht egal, wie umfangreich undkomplex die Gesamtapplikation sein mag. Umsteiger von anderen Pro-grammiersprachen mgen sich das ungefhr so vorstellen, als ob sie in C,Basic oder Delphi jede Methode, jede Funktion und sogar jeden Daten-typ in eine eigene DLL verpacken, die Sie unabhngig voneinander kom-pilieren und in ein Programmverzeichnis zur Ausfhrung stellen knnen.Startet ein Anwender das Programm in diesem Verzeichnis, arbeitet erautomatisch mit der aktuellsten Version aller Programmbestandteile, diedort abgelegt sind. Mit ebenso feiner Granularitt lsst sich bei ABAP-Programmen ein Update durchfhren: Dabei werden einfach die betrof-fenen Entwicklungsobjekte gegen neue ausgetauscht und der nchsteAufrufer des Programms arbeitet automatisch mit der aktualisierten Ver-sion. SAP nennt die Technologie, die hinter all diesen Fhigkeiten steckt,Transportwesen und wir werden ihr in diesem Buch immer wieder begeg-nen.

    2.1 Erste Schritte im Object Navigator

    Schauen wir uns nun den Object Navigator etwas genauer an und werfenwir einen Blick auf die Unterschiede der Releases 4.6 bis 6.30.

    Fhren Sie die Transaktion SE80 Object Navigator aus, indem Sie inder Kommandozeile /nSE80 eingeben oder auf die entsprechendeZeile im SAP Easy Access doppelklicken.

    Abbildung 2.2 Dezentrale Builds in ABAP Objects

    Quellcode(ABAP Objects)

    Ausfhrung (in der ABAP-

    Laufzeit-umgebung)

    Compiler LinkerABAP

    IntermediateLanguage

    (IL)

    Quellcode(ABAP Objects)

    Quellcode(ABAP Objects)

  • Erste Schritte im Object Navigator 59

    Unterschiede der Releases

    Die Programmoberflche des Object Navigators ist ber die Jahre weitge-hend unangetastet geblieben und dementsprechend hnlich sehen sichdie Programmversionen. Die Verbesserungen in neuen Releases beziehensich vor allem auf die Fhigkeiten behind the scenes: Hier ein Men-

    Abbildung 2.3 Der Object Navigator Release 4.6

    Abbildung 2.4 Der Object Navigator Release 6.10 6.30

    Werkzeugbereich

    Objektlistenbereich

    Browserbereich

  • 60 Arbeiten mit der Entwicklungsumgebung Object Navigator

    punkt mehr, dort eine neue Mglichkeit zur Vorwrtsnavigation. Einzigeraufflliger Unterschied sind die neuen Browser im Browserbereich:

    BrowserbereichLinks oben sehen Sie den Browserbereich, in dem Sie Entwicklungsob-jekte angeben, suchen und auswhlen knnen. Beim direkten Ver-gleich der Abbildung 2.3 und Abbildung 2.4 knnen Sie erkennen,dass der Browserbereich zum Release 6.10 stark ausgebaut wurde undneben dem Repository Browser nun vier weitere Browser beinhaltet.Sowohl das MIME Repository als auch der Tag Browser untersttzendie Entwicklung von Webanwendungen auf der Basis der so genann-ten Business Server Pages. Analog zu den Namensvettern Active ServerPages von Microsoft und Java Server Pages von Sun knnen Sie mitdieser Technik direkt in HTML-Seiten ABAP-Quelltext platzieren, dervom Webserver unmittelbar vor dem Verschicken der Seite an einenWebbrowser abgearbeitet wird und so die HTML-Seite um programm-gesteuerte Inhalte ergnzen kann. Das Repository Infosystem ermg-licht die Suche nach allen Entwicklungsobjekten und kann dabei auchPlatzhalter (*) oder Textbeschreibungen bercksichtigen. Es fasst dievielen Einzelwerkzeuge im Verzeichnis ABAP Workbench des SAP EasyAccess unter einer eigenen Oberflche zusammen. Wir kommen sp-ter in diesem Kapitel darauf zurck. Auch der Transport Organizer istnicht neu, sondern wurde lediglich in den Object Navigator integriert.

    ObjektlistenbereichDie Objektliste nimmt den gesamten Platz unterhalb des Browserbe-reichs fr sich in Anspruch. Sie korrespondiert direkt mit dem im Brow-serbereich gerade ausgewhlten Browser und enthlt eine hierarchi-sche Auflistung von Entwicklungsobjekten, die Sie auswhlen undbearbeiten knnen. Je nach Art des Listeneintrags stehen Ihnen hierunterschiedliche Befehle im Kontextmen zur Verfgung.

    WerkzeugbereichIm Werkzeugbereich werden die eigentlichen Bearbeitungsfenster frdas im Objektlistenbereich ausgewhlte Entwicklungsobjekt einge-blendet. Hier knnen Sie beispielsweise Quelltexte bearbeiten, Tabel-len definieren oder Datentypen verwalten.

    Beispiele Im Mensystem des Object Navigators sind weitere wichtige Funktionenuntergebracht. Besonders interessant sind die umfangreichen Program-mierbeispiele, die SAP zur Verfgung stellt.

    Whlen Sie den Menpunkt Umfeld Beispiele.

  • Erste Schritte im Object Navigator 61

    Hier gibt es eine umfangreiche Sammlung von Quelltexten zu den The-men Ergonomie, Performance und Controls sowie ab Release 6.20 unddarber hinaus auch zu jedem ABAP-Befehl (Menpunkt ABAP-Bei-spiele). Vor Release 6.20 ist diese Dokumentation mit Beispielen ber dieF1-Hilfe und dort den Dokumentation-Button bzw. ber die Transaktion/nABAPDOCU erreichbar. Wir wollen uns den Menpunkt Performance-Beispiele genauer anschauen.

    Whlen Sie den Menpunkt Umfeld Beispiele Performance-Beispiele.

    Im Objektlistenbereich sehen Sie eine strukturierte Liste, in der alle Per-formance-Beispiele aufgelistet werden. Meist dreht es sich um dieGegenberstellung zweier ABAP-Befehle, wobei inhaltlich jeweils einbestimmter Aspekt der Performanceoptimierung abgedeckt wird.

    Abbildung 2.5 Programmierbeispiele zu diversen Themen

    Abbildung 2.6 Tipps und Tricks zur Performance von ABAP Objects

  • 62 Arbeiten mit der Entwicklungsumgebung Object Navigator

    Doppelklicken Sie in der Liste auf das Beispiel Select Where vs. SelCheck. Zwei Quelltexte werden in den Werkzeugbereich geladen,deren Performanceverhalten zeitlich gegenbergestellt werden soll.

    Klicken Sie auf den Button Laufzeit messen.

    Wie Sie sehen, ist die Laufzeit des SELECT-WHERE-Konstrukts mit 1,7Mikrosekunden (gerundet) deutlich geringer als die Laufzeit derSELECT+CHECK-Anweisung mit 5,1 Mikrosekunde.

    Repository Info-system und ABAP

    Workbench

    Das Repository Infosystem gehrt seit Release 6.10 zum Ausstattungsum-fang des Object Navigators und gestattet den direkten Zugriff auf alle Ent-wicklungsobjekte. Hierfr stellt es ein leistungsfhiges Suchsystem zurVerfgung, mit dessen Hilfe nach Namen und Beschreibungen mit undohne Platzhalter gesucht werden kann. Wir wollen das einmal ausprobie-ren, indem wir eine Suchabfrage nach Transaktionenscodes starten, dieden Text SE8 beinhalten. Nach unseren Erwartungen msste sich dieTransaktion SE80 in der Ergebnisliste befinden. Ab Release 6.10 knnenSie die Abfrage wie folgt durchfhren:

    Klicken Sie im Browserbereich auf den Button Repository Infosystemoder whlen Sie den Menpunkt Umfeld Repository Infosystem.

    Whlen Sie im Objektlistenbereich den Eintrag Weitere Objekte/Transaktion aus.

    Abbildung 2.7 Nach Transaktionen suchen im Repository Infosystem

  • Erste Schritte im Object Navigator 63

    Geben Sie als Transaktionscode *SE8* ein, denn wir wollen belegen,dass die Abfrage auch mit Platzhalten problemlos funktioniert.

    Drcken Sie den Ausfhren-Button oder die Taste F8.

    Als Ergebnis erhalten Sie eine Liste mit allen Treffern, auf die die eingege-bene Suchbedingung zutrifft.

    Doppelklicken Sie auf den Transaktionscode SE80, um Details berdieses Entwicklungsobjekt anzuzeigen.

    Wie Sie sehen, stellt das Repository Infosystem daraufhin das Programmzum Bearbeiten von Transaktionen im Werkzeugbereich des Fensters dar.Wir knnten von hier aus die Transaktion modifizieren oder per Vorwrts-navigation, beispielsweise auf den Namen des Pakets, weitere Informa-tionen abfragen.

    Stattdessen wollen wir demonstrieren, wie mit dem Repository Infosys-tem das Suchen nach Entwicklungsobjekten in Release 4.6 und davormglich ist. Zum einen kann das Repository Infosystem zu Release 4.6ber das Hilfsmittel-Men im Object Navigator aufgerufen werden. DieProgramme, die das Repository Infosystem zum Anzeigen von Detailin-formationen eines Entwicklungsobjekts aufruft, lassen sich jedoch aucheinzeln starten und bieten dann ebenfalls die Mglichkeit zur Suche mitPlatzhaltern, was auch vor Release 4.6 bereits mglich war:

    Abbildung 2.8 Detailinformationen zur Parametertransaktion

  • 64 Arbeiten mit der Entwicklungsumgebung Object Navigator

    Klicken Sie in der gemeinsamen Symbolleiste so lange auf den Been-den-Button, bis Sie sich wieder im SAP Easy Access befinden.

    Im Anwendungsmen finden Sie unter Werkzeuge ABAP Work-bench Entwicklung alle Einzelprogramme, die vom Repository Info-system angesteuert werden.

    Fhren Sie das Programm SE93 Transaktionen aus, das Sie im Anwen-dungsmen unter Werkzeuge ABAP Workbench Entwicklung Weitere Werkzeuge finden.

    Es erscheint die Oberflche des Programms.

    Geben Sie den Suchtext *SE8* in das Eingabefeld ein.

    Klicken Sie auf den Auswahl-Button rechts neben dem Eingabefeldoder drcken Sie alternativ dazu die F4-Taste, um die so genannteWerthilfe aufzurufen. Die Werthilfe (auch Auswahl- oder F4-Hilfegenannt) steht Ihnen in ABAP-Programmen zur Verfgung, in denenBenutzereingaben gemacht werden mssen. Durch den Aufruf derWerthilfe erfhrt der Anwender, welche Werte fr ein bestimmtes Ein-gabefeld zulssig sind.

    Es erscheint die Trefferliste zu unserer Suchabfrage, in der auch die Trans-aktion SE80 enthalten ist.

    Abbildung 2.9 Applikation SE93 Transaktionen

  • Erste Schritte im Object Navigator 65

    Whlen Sie die Transaktion SE80 aus und besttigen Sie mit dem OK-Button. Alternativ gengt auch ein Doppelklick auf die Transaktion.

    Daraufhin schliet der Auswahldialog und der ausgewhlte Transaktions-code wird in das Eingabefeld bernommen.

    Klicken Sie anschlieend auf den Anzeigen-Button.

    Sie gelangen nun in die gleiche Detailanzeige, die auch vom RepositoryInfosystem aus angesteuert wird (siehe Abbildung 2.8).

    Sptestens ab diesem Punkt wird offensichtlich, dass dasselbe Programmauch vom Repository Infosystem angesprungen wird und deshalb letzt-lich die Funktionalitt ab diesem Punkt identisch ist. Im Prinzip liee sichdiese Demonstration der Gegenberstellung auch fr alle anderen Ent-wicklungsobjekte wiederholen. Als Entwickler in Release 4.6 hat man alsofunktional keine Nachteile. In Ausnahmefllen ist lediglich die Bedienungetwas anders.

    Abbildung 2.10 Der Startbildschirm der Transaktionsoberflche

    Abbildung 2.11 Auswahldialog zum Transaktionscode

  • 66 Arbeiten mit der Entwicklungsumgebung Object Navigator

    TransportOrganizer

    Der Transport Organizer ist seit Release 6.10 Bestandteil des Object Navi-gators. Er residiert als separate Anwendung im Anwendungsmen desSAP Easy Access unter Werkzeuge ABAP Workbench bersicht Transport Organizer und ist ber die Transaktion SE09 erreichbar. AlsProgrammierer wird er fr Sie relevant, wenn Sie eine (Teil-)Entwicklungabgeschlossen haben und nun Ihr Ergebnis in ein anderes SAP-Systemkopiert werden soll. Der Transport luft dabei in vier Schritten ab, vondenen fr Sie als Programmierer nur die ersten beiden und fr Administ-ratoren die letzten beiden interessant sind:

    1. Bevor Sie ein vorhandenes Entwicklungsobjekt neu anlegen bzw.modifizieren knnen, werden Sie in einem Dialog gefragt, in welchenAuftrag Sie Ihre Arbeit aufzeichnen lassen wollen. Entweder Ihr Pro-jektleiter oder Administrator legt einen solchen Auftrag an oder Siebesitzen die Erlaubnis, sich selbst einen anzulegen. In einem Auftragentsteht automatisch fr jeden Programmierer eine Aufgabe, so dassman die Arbeit der einzelnen Mitarbeiter besser auseinander haltenkann. Das Verfahren wird in Abschnitt 2.3 demonstriert.

    2. Sobald Sie Ihre Entwicklung abgeschlossen bzw. einen ersten funkti-onsfhigen Stand erreicht haben, geben Sie ber den Transport Orga-nizer Ihre Aufgabe frei. Dazu rufen Sie in Release 4.6 die TransaktionSE09 auf, geben als Auswahlkriterium zur Anzeige von Auftrgen IhrenLogin-Namen an und whlen aus der Liste dann den relevanten Auftragmit der freizugebenden Aufgabe aus. Ab Release 6.10 ist der TransportOrganizer in den Object Navigator integriert und Sie bekommen diebersicht ber Ihre Auftrge und Aufgaben, indem Sie den entspre-chenden Button im Browserbereich auswhlen. ber die rechte Maus-taste erreichen Sie nun in jedem Fall das Kontextmen, in dem Sie auchden Menpunkt Aufgabe freigeben finden. Falls Sie auch den Auftragselbst angelegt haben, knnen Sie diesen ebenfalls per Kontextmenfreigeben, sobald alle Aufgaben freigegeben wurden. Daraufhin ber-nimmt das Transportwesen alle modifizierten und erstellten Entwick-lungselemente und schreibt sie in eine Datei, die im Export-Verzeichnisauf dem Server abgelegt wird.

    3. Von dort kann Ihr Administrator mit der Datei anstellen, was ermchte. blich ist, dass die Entwicklung zunchst auf einem separatenSAP-System erneut getestet wird. Dazu wird die Datei in das Import-Verzeichnis des entsprechenden SAP-Systems kopiert und vom Admi-nistrator mittels des so genannten Transport Management Systems,einem Werkzeug zum Konfigurieren, Ausfhren und berwachen vonnderungen an einem SAP-System, importiert.

  • Entwicklungsklassen/Pakete 67

    4. Im Falle von SAP und seinen Implementierungspartern, aber auch beiKunden mit weit verteilter Systemlandschaft, wird die Datei nacherfolgreichem Test auf eine CD gebrannt, um sie als Produkt zu verschi-cken.

    2.2 Entwicklungsklassen/Pakete

    Pakete bzw. Entwicklungsklassen helfen bei der Strukturierung grererEntwicklungen, denn man kann mit ihnen Entwicklungsobjekte thema-tisch ordnen und zusammenfassen. Namensrume lassen sich bei SAPreservieren und sind Voraussetzung fr ein reibungsloses Kopieren vonABAP-Programmen auf beliebige fremde SAP-Systeme.

    GrundlagenDie Entwicklung von ABAP-Programmen wird in Release 4.6 ber sogenannte Entwicklungsklassen strukturiert. Diese haben nichts mit Klas-sen im objektorientierten Sinn zu tun, sondern man kann sie sich wie einVerzeichnis vorstellen, in das man andere Entwicklungsobjekte ablegt.Und genauso wie eine Dateiablage in thematisch geordneten Verzeichnis-sen zur Ordnung beitrgt, erhht die Zuordnung von Entwicklungsobjek-ten zu einer Entwicklungsklasse die bersichtlichkeit grerer Pro-gramme.

    Seit Release 6.10 tragen Entwicklungsklassen den neuen Namen Pakete,da sie neben der Ordnung von Entwicklungsobjekten einige wesentlicheEigenschaften hinzugewonnen haben. Vom Konzept her lassen sich dieseneuen Eigenschaften mit den Paketkonzepten in Java, Microsoft.NEToder Borland Delphi vergleichen. Im Gegensatz zu letzteren beiden kn-nen in ABAP jedoch keine unterschiedlichen Versionen eines Pakets imSAP-System gleichzeitig vorhanden sein und auch Kompatibilittsanga-ben (z.B. Paket A luft mit den Versionen 1.0 bis 1.3 des Pakets B) werdennicht untersttzt.

    Als Beispiel fr die Nutzung von Paketen bzw. Entwicklungsklassen stelleman sich eine grere Applikation vor, in der alle Datenbank-relevantenFunktionen in einem Paket liegen, die Funktionalitt der Anwendungslo-gik in einem anderen, die Benutzerdialoge und -fenster in einem weiterenusw. Groe SAP-Applikationen, wie z.B. der SAP Bank Analyzer, bestehenim Kern aus mehr als 190 Paketen, die ihrerseits auf mehr als 20 weiterePakete aus angrenzenden Entwicklungen und Basisfunktionalittenzurckgreifen.

  • 68 Arbeiten mit der Entwicklungsumgebung Object Navigator

    Strukturpakete Eine Verschachtelung der Pakete ineinander ist mglich, wobei man diebergeordneten Pakete als Strukturpakete bezeichnet und diese schlie-lich in einem Hauptpaket mnden, das im Regelfall die gesamte Applika-tion umfasst. Abbildung 2.13 verdeutlicht dies in einem Beispiel.

    Pakete suchenund deren

    Verschachtelungverfolgen

    Um ein besseres Gefhl fr den Umgang mit Paketen bzw. Entwicklungs-klassen zu bekommen, wollen wir uns einige vorhandene Pakete undderen Verschachtelung ineinander etwas nher anschauen. Die folgendeDemonstration ist nur mit einem SAP Web Application Server ab Release6.10 nachvollziehbar.

    Starten Sie den Object Navigator und whlen Sie den Browser Reposi-tory Infosystem.

    Whlen Sie im Objektlistenbereich den Eintrag Entwicklungskoordi-nation/Pakete aus.

    Abbildung 2.12 Pakete bzw. Entwicklungsklassen erhhen die Ordnung

    Abbildung 2.13 Verschachtelte Pakete einer Applikation

  • Entwicklungsklassen/Pakete 69

    Geben Sie als Paketnamen S* ein und whlen Sie den Ausfhren-Button oder F8.

    Als Ergebnis erhalten Sie eine Liste mit allen Treffern, auf die die eingege-bene Suchbedingung zutrifft.

    Doppelklicken Sie auf das Paket SABA, um Details ber dieses Ent-wicklungsobjekt anzuzeigen.

    Daraufhin erscheint die Detailansicht zum Paket SABA im Werkzeugbe-reich und wir lesen, dass das Paket SABA ein direkt umgebendes Paketmit Namen BASIS besitzt. Natrlich knnen Sie nun per Doppelklick aufden Namen BASIS zu diesem Paket wechseln, um nhere Informationendarber zu erhalten. bersichtlicher ist jedoch ein anderer Weg, den wirnun beschreiten wollen.

    Markieren Sie den Namen SABA und whlen Sie die Tastenkombina-tion Strg+C zum Kopieren des Namens in die Zwischenablage.

    Whlen Sie im Browserbereich den Button Repository Browser aus.

    Fgen Sie den Namen des Pakets mit Strg+V in das Eingabefeld ein.

    Drcken Sie die Enter-Taste oder klicken Sie auf den Anzeigen-Button(mit dem Brillen-Icon), um das Paket in den Object Navigator zu laden.

    Abbildung 2.14 Suche nach Paketen mit dem Anfangsbuchstaben S

  • 70 Arbeiten mit der Entwicklungsumgebung Object Navigator

    Klicken Sie nun auf den Button bergeordnete Objektliste, um dieHierarchie der Pakete anzuzeigen.

    Nun sehen wir, dass das Paket SABA neben vielen anderen Bestandteildes Pakets BASIS ist und es sich um eine sehr groe Pakethierarchie han-delt. ber diese Hierarchie knnen wir nun bequem zwischen den the-matisch verwandten Paketen navigieren.

    2.3 Namensrume

    Jeder kennt das Problem, wenn man zwei Dateien mit gleichem Namen,jedoch unterschiedlichem Inhalt im gleichen Verzeichnis ablegen will.Man muss eine davon umbenennen, will man nicht den Inhalt einer Dateiverlieren. Ein analoges Problem zeigt sich beim Anlegen sowie beimKopieren von Entwicklungsobjekten, denn Entwicklungsobjekte mssenimmer einen eindeutigen Namen haben. Verschrft wird diese Forderungdadurch, dass dies sogar bergreifend ber Pakete bzw. Entwicklungs-klassen gilt. In ABAP ist daher beinahe jedes Entwicklungsobjekt global,d.h. im gesamten SAP-System bekannt, und lediglich direkt innerhalbeines Quelltextes definierbare Entwicklungsobjekte (z.B. Unterpro-gramme oder lokale Klassen) knnen vom Namen her mehrfach vorkom-men.

    Abbildung 2.15 bernahme des Paketnamens in den Objektlistenbereich per Cut & Paste

  • Namensrume 71

    Vermeidung von Namenskonflikten

    Nun gibt es aber neben SAP Hunderte von Implementierungspartnern,die Applikationen in ABAP entwickeln. Sprechen die sich alle ab, oder wievermeiden sie Namenskonflikte, wenn zwei Applikationen unterschiedli-cher Hersteller auf einem System, beispielsweise bei einem gemeinsamenKunden installiert werden? Die Lsung liegt in den Namensrumen, dieman als Kunde oder Partner bei SAP exklusiv fr sich reservieren kann.Letztlich handelt es sich dabei um ein Prfix, mit dem alle Entwicklungs-objekte beginnen mssen. Der Namensraumbezeichner beginnt undendet mit einem / (Delimiter) und kann insgesamt maximal 10-stelligsein. So hat man sich beispielsweise bei SAP fr das Produkt Bank Analy-zer den Namensraum /BA1/ reserviert und folglich beginnt jedes zuge-hrige Entwicklungsobjekt mit diesem Prfix (z.B. gibt es dort eine Funk-tion /BA1/B1_API_FP_TOTALS_GET).

    Namensrume auflisten und ergnzen

    Wer einmal einen Blick auf die in seinem SAP-System bekanntenNamensrume werfen will, der kann die folgenden Schritte ausfhren:

    Wechseln Sie in das SAP Easy Access-Men und rufen Sie den Men-punkt Werkzeuge ABAP Workbench bersicht Transport Orga-nizer auf bzw. die Transaktion SE09.

    Daraufhin startet der Transport Organizer und es wird die Einstiegsober-flche des Programms angezeigt.

    Klicken Sie auf den Button Transport Organizer Tools oder drcken SieUmsch+F6.

    Abbildung 2.16 Aufruf der Transport Organizer Tools

  • 72 Arbeiten mit der Entwicklungsumgebung Object Navigator

    Es erscheint eine Programmoberflche, die etwas hnlichkeit mit demSAP Easy Access-Men hat, im Objektlistenbereich jedoch ausschlielichHilfsprogramme zum Thema Transport-Organisation beinhaltet.

    Whlen Sie den Menpunkt Administration Namensrume anzei-gen/ndern.

    Je nachdem, mit welchem SAP-System Sie arbeiten, erscheinen nun mehroder weniger viele Namensrume, die bereits registriert wurden.

    Wenn Sie bei SAP einen Namensraum fr Ihr Projekt reserviert haben,knnen Sie ihn ber diese Oberflche eintragen. Danach steht er Ihnenfr Ihre eigenen Entwicklungen zur Verfgung.

    Namenskonven-tionen fr dieses

    Buch

    Bevor wir nun mit der Erstellung unseres ersten Entwicklungsobjekts fort-fahren, mchten wir noch auf die Namenskonventionen fr dieses Buchhinweisen, die das Arbeiten sowohl allein als auch in einer Gruppeermglicht. Speziell fr Gruppenschulungen ist zu beachten, dass jederTeilnehmer eine eindeutige zweistellige Nummer (01, 02 etc.) erhlt under diese statt der 00 (fr den Trainer reserviert) in den Namensbestandteiljedes Entwicklungsobjekts mit aufnimmt. Wird im Buch beispielsweisedas Anlegen eines Pakets oder Programms mit Namen Z00_PRACTICE_TRAINING_BEGINNER bzw. ZPTB00_HELLO_WORLD beschrieben, gilt

    Abbildung 2.17 Reservierte Namensrume im System

  • Namensrume 73

    fr den ersten Schulungsteilnehmer der Paketname Z01_PRACTICE_TRAINING_BEGINNER respektive fr den Programmnamen ZPTB01_HELLO_WORLD, fr den zweiten Schulungsteilnehmer Z02_PRACTICE_TRAINING_BEGINNER respektive ZPTB02_HELLO_WORLD usw.Dadurch werden Namenskonflikte vermieden, wie sie sonst bei derArbeit am gleichen SAP-System entstehen knnen.

    Sollten Sie statt des allgemeinen Kundennamensraums Z einen anderenNamensraum fr sich reserviert haben bzw. im SAP-Namensraum operie-ren, ersetzen Sie den Anfangsbuchstaben Z eines jeden Entwicklungsob-jekts einfach durch Ihren eigenen Namensraum (beispielsweise S01_PRACTICE_TRAINING_BEGINNER, /ABB/01_PRACTICE_TRAINING_BEGINNER etc.).

    Paket/Entwick-lungsklasse anlegen

    Wir wollen uns nun der ganzen Thematik noch mehr von der praktischenSeite aus nhern und legen als Vorbereitung fr unser erstes Programmein eigenes Paket bzw. eine Entwicklungsklasse an.

    Whlen Sie den Button Anderes Objekt oder die TastenkombinationShift+F5.

    Abbildung 2.18 Namen und ihre Verwendung bei Gruppenschulungen

    Aufgabe 2.1

    Legen Sie eine Entwicklungsklasse bzw. ein Paket mit Namen Z00_PRACTICE_TRAINING_BEGINNER an.

  • 74 Arbeiten mit der Entwicklungsumgebung Object Navigator

    Daraufhin ffnet sich ein Dialog, in dem Sie geordnet unterhalb verschie-dener Karteireiter Entwicklungsobjekte auswhlen oder anlegen knnen.

    Wechseln Sie auf den Karteireiter Entwicklungskoordination undgeben Sie im Eingabefeld Paket bzw. Entwicklungsklasse den NamenZ00_PRACTICE_TRAINING_BEGINNER an.

    Whlen Sie den Anlegen-Button oder die Taste F5.

    Daraufhin erscheint ein weiterer Dialog, in dem Sie nhere Informationenzum Paket bzw. der Entwicklungsklasse angeben mssen.

    Geben Sie eine kurze Beschreibung des Pakets bzw. der Entwicklungs-klasse an, z.B. Praxistraining fr Umsteiger und Einsteiger.

    Geben Sie als Softwarekomponente HOME an.

    Whlen Sie den Sichern (Enter)-Button oder die Taste Enter.

    Als letzter Dialog erscheint die Abfrage des Transportauftrags, unter demIhre Entwicklung mitprotokolliert und spter von einem System insnchste kopiert werden kann.

    Normalerweise sollte Ihr Administrator Ihnen das Anlegen von Auftrgenerlauben oder Ihnen bereits einen Auftrag eingerichtet haben, unter demSie nun das Paket anlegen knnen.

    Abbildung 2.19 Aufrufen der Objektauswahl zum Anlegen eines Pakets

  • Namensrume 75

    Geben Sie entweder den von Ihrem Administrator eingerichteten Auf-trag ein und besttigen Sie Ihre Eingabe mit OK oder klicken Sie aufden Neu-Button.

    Fr den Fall, dass Sie einen neuen Transportauftrag anlegen mssen, sindzustzlich die folgenden Schritte notwendig:

    Geben Sie eine kurze Beschreibung des Transportauftrags ein, z.B.Praxistraining fr Umsteiger und Einsteiger und besttigen Sie IhreEingabe mit OK.

    Nachdem der Auftrag angelegt wurde, wird dieser mit Nummer undBeschreibung im Dialog angezeigt.

    Besttigen Sie Ihre Eingaben mit OK, bis alle Dialoge geschlossen sind.

    Abbildung 2.20 Anlegen eines neuen Transportauftrags

    Abbildung 2.21 Kurzbeschreibung eines Auftrags angeben

  • 76 Arbeiten mit der Entwicklungsumgebung Object Navigator

    Im Werkzeugbereich sehen Sie nun eine ganze Reihe der Detailinforma-tionen angezeigt, die Sie zuvor eingegeben haben. Wir wollen nun unserPaket auch im Objektlistenbereich anzeigen lassen, um dort komfortabelweitere Entwicklungsobjekte anlegen bzw. auswhlen zu knnen.

    Markieren Sie den Namen des Pakets und kopieren Sie den Text perStrg+C in die Zwischenablage.

    Whlen Sie als Objekttyp Paket bzw. Entwicklungsklasse aus.

    Fgen Sie den Text per Strg+V in das Eingabefeld ein und quittieren Sieber den Anzeigen-Button oder per Enter.

    Abbildung 2.22 Auftragsnummer quittieren

    Abbildung 2.23 Paket bzw. Entwicklungsklasse in den Objektlistenbereich laden

  • Erstes Programm Hallo Welt 77

    Alle Vorbereitungen fr die Erstellung unseres ersten eigenen Programmssind nun abgeschlossen. Im Objektlistenbereich wird unser noch leeres Paket angezeigt und wir knnen darin nun weitere Entwicklungsobjektehinzufgen.

    2.4 Erstes Programm Hallo Welt REPORT, INCLUDE, Anwendungsmen

    Das Wort Programm gehrt heutzutage zum Wortschatz eines jedenErstklsslers und unter den hufigsten Assoziationen befinden sich dieBegriffe Computer, Software und Internet. Doch was steckt speziell inBezug auf ABAP eigentlich hinter einem Programm, wie kann man eserstellen und wie kann es von einem Endanwender genutzt werden?

    GrundlagenWohl keine andere Programmiersprache hat ber die letzten 30 Jahreeine derart bewegte Vergangenheit durchlaufen wie ABAP. In den Anfn-gen der Sprache bis hin zu R/2 war ABAP lediglich fr das Entwerfen sogenannter Reports konzipiert, d.h. betriebswirtschaftlicher Berichte wieeine Auflistung aller offenen Forderungen gegenber Kunden oder eineUnternehmensbilanz zum Jahresende. Tatschlich konnten ABAP-Pro-gramme lediglich lesend auf die Daten in der Datenbank zugreifen unddiese Daten in Form von tabellarisch angeordnetem Text, so genanntenListen, auf dem Bildschirm ausgeben. Kunden, die SAP-Software einsetz-ten, konnten die ABAP-Quelltexte dieser Reports selbst modifizierenoder neue entwerfen, die ihren Anforderungen gengen. Programme mitschreibendem Zugriff auf die Datenbank mussten zu dieser Zeit in Assem-bler (direkt in Maschinensprache) programmiert werden, und man kannsich aufgrund der damit einhergehenden Komplexitt und Mhsal vor-stellen, dass diese Aufgabe ausschlielich SAP vorbehalten war.

    Mit der Einfhrung von R/3 Anfang der 90er Jahre wurde die Program-miersprache ABAP so weit ausgebaut, dass sich mit ihr auch schreibendeZugriffe auf die Daten einer Datenbank realisieren lieen. Damit wurde esmglich, alle R/3-Applikationen vollstndig in ABAP und ohne die Hilfeanderer Programmiersprachen zu verfassen.

    Modulpool vs. Report

    Generell gibt es unter ABAP mehrere Mglichkeiten, ein startbares Pro-gramm zu schreiben, wovon die beiden wichtigsten der so genannteModulpool und der Report sind. Anfnglich war die Regelung eindeutig,wann welche Alternative zu benutzen war. Komplexere Eingabemasken,die per SAP Dynpro-Oberflchentechnik (siehe Abschnitt 5.2) realisiertwerden mussten, setzten einen Modulpool voraus, wie z.B. die Erfassungeines Buchungsbelegs in der Buchhaltung. Einfache Eingabemasken, wie

    SAP PRESS - LeseprobePraktischer Einstieg in ABAP Objects - Gnther Frber, Julia Kirchner --------------------Inhaltsverzeichnis--------------------[...]2 Arbeiten mit der Entwicklungsumgebung - Object Navigator2.1 Erste Schritte im Object Navigator2.2 Entwicklungsklassen/Pakete2.3 Namensrume2.4 Erstes Programm 'Hallo Welt' ...[...]

    [...]-------------------Bestellinformationen:Frber/Kirchner: Praktischer Einstieg in ABAP Objects496 S., geb., 29,90 Euro, ISBN 3-89842-349-2http://www.sap-press.de/(C) Galileo Press GmbH 2003--------------------Unbenannt