ABAP Naming Conventions PDF

Als pdf oder txt herunterladen
Als pdf oder txt herunterladen
Sie sind auf Seite 1von 530

BC - ABAP Workbench:

Werkzeuge

HELP.BCDWBTOO

Release 4.6C
BC - ABAP Workbench: Werkzeuge SAP AG

Copyright

© Copyright 2001 SAP AG. Alle Rechte vorbehalten.

Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem
Zweck und in welcher Form
auch immer, ohne die ausdrückliche schriftliche Genehmigung durch SAP AG nicht gestattet. In
dieser Publikation enthaltene Informationen können ohne vorherige Ankündigung geändert
werden.

Die von SAP AG oder deren Vertriebsfirmen angebotenen Software-Produkte können Software-
Komponenten auch anderer Software-Hersteller enthalten.
® ® ® ® ® ® ®
Microsoft , WINDOWS , NT , EXCEL , Word , PowerPoint und SQL Server sind eingetragene
Marken der
Microsoft Corporation.
® ® ® ® ® ® ® ® ®
IBM , DB2 , OS/2 , DB2/6000 , Parallel Sysplex , MVS/ESA , RS/6000 , AIX , S/390 ,
® ® ®
AS/400 , OS/390 und OS/400 sind eingetragene Marken der IBM Corporation.
®
ORACLE ist eine eingetragene Marke der ORACLE Corporation.

® ® TM
INFORMIX -OnLine for SAP und Informix Dynamic Server sind eingetragene Marken der
Informix Software Incorporated.
® ® ® ®
UNIX , X/Open , OSF/1 und Motif sind eingetragene Marken der Open Group.
®
HTML, DHTML, XML, XHTML sind Marken oder eingetragene Marken des W3C , World Wide
Web Consortium,
Massachusetts Institute of Technology.
®
JAVA ist eine eingetragene Marke der Sun Microsystems, Inc.
®
JAVASCRIPT ist eine eingetragene Marke der Sun Microsystems, Inc., verwendet unter der
Lizenz der von Netscape entwickelten und implementierten Technologie.

SAP, SAP Logo, R/2, RIVA, R/3, ABAP, SAP ArchiveLink, SAP Business Workflow, WebFlow,
SAP EarlyWatch, BAPI, SAPPHIRE, Management Cockpit, mySAP.com Logo und mySAP.com
sind Marken oder eingetragene Marken der SAP AG in Deutschland und vielen anderen Ländern
weltweit. Alle anderen Produkte sind Marken oder eingetragene Marken der jeweiligen Firmen.

2 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge

Symbole

Symbol Bedeutung
Achtung

Beispiel

Empfehlung

Hinweis

Syntax

Tip

April 2001 3
BC - ABAP Workbench: Werkzeuge SAP AG

Inhalt

BC - ABAP Workbench: Werkzeuge........................................................................... 11


Neuerungen zum Release 4.6C ................................................................................................................ 12
Object Navigator ........................................................................................................................................ 18
Arbeiten mit Entwicklungsobjekten......................................................................................... 22
Objekte auswählen ................................................................................................................................. 25
Neue Objekte anlegen............................................................................................................................ 27
Programm anlegen............................................................................................................................ 29
Objekte kopieren .................................................................................................................................... 31
Objekte löschen...................................................................................................................................... 32
Zuordnung zur Entwicklungsklasse ändern............................................................................................ 33
Objekte aktivieren................................................................................................................................... 34
Mengenmodus verwenden ..................................................................................................................... 35
Navigation .................................................................................................................................. 36
Bereiche der Navigation ......................................................................................................................... 37
Navigationsbereich ausblenden ........................................................................................................ 39
Navigation im Werkzeugbereich............................................................................................................. 40
Funktionen der Objektliste...................................................................................................................... 41
Navigationsstapel ................................................................................................................................... 42
Navigationskontext ................................................................................................................................. 43
Arbeitsvorrat ........................................................................................................................................... 44
Sprungmarken setzen ....................................................................................................................... 46
Benutzerspezifische Einstellungen ......................................................................................... 47
Integration von Internet-Services ............................................................................................................ 51
Web Application Builder ........................................................................................................... 52
Internet-Service anlegen ........................................................................................................................ 53
Mixed-Modus verwenden .................................................................................................................. 56
HTML-Templates anlegen ...................................................................................................................... 57
HTML-Templates erweitern.................................................................................................................... 60
MIME-Objekte hinzufügen ...................................................................................................................... 62
Sprachressourcen anlegen..................................................................................................................... 64
Service publizieren ................................................................................................................................. 66
Service ausführen................................................................................................................................... 67
Benutzereinstellungen zum Internet-Service.......................................................................... 69
Tutorial: MiniApps implementieren ......................................................................................... 72
Komponenten der Architektur................................................................................................................. 73
Schritt 1: User Interface Design entwerfen............................................................................................. 75
Schritt 2: Service anlegen....................................................................................................................... 76
Schritt 3: HTML-Templates anlegen....................................................................................................... 79
Schritt 4: Layout definieren..................................................................................................................... 81
Schritt 5: Flow-Logik implementieren ..................................................................................................... 84
Schritt 6: Service publizieren.................................................................................................................. 86
Schritt 7: MiniApp ausführen .................................................................................................................. 88
ABAP Workbench: Werkzeuge................................................................................................................. 90
Überblick über die Workbench................................................................................................. 92
Integration der Werkzeuge und Arbeitsmethoden.................................................................................. 93
Entwicklungsobjekte und Entwicklungsklassen ..................................................................................... 94

4 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge

Entwickeln im Team .......................................................................................................................... 95


Weiterführende Dokumentationen.......................................................................................................... 97
ABAP Editor ............................................................................................................................... 98
Überblick über den ABAP Editor ............................................................................................................ 99
Frontend Editor................................................................................................................................ 100
Backend Editor ................................................................................................................................ 103
Editor-Modus ändern....................................................................................................................... 105
Lokales Editieren............................................................................................................................. 106
Programm anlegen ............................................................................................................................... 108
Quelltext editieren................................................................................................................................. 110
Im Quelltext navigieren.................................................................................................................... 111
Navigation mit Doppelklick......................................................................................................... 113
Komprimierungslogik verwenden............................................................................................... 115
Quelltext bearbeiten (Frontend Editor)............................................................................................ 116
Quelltext bearbeiten (Backend Editor) ............................................................................................ 119
Zwischenablage verwenden............................................................................................................ 121
Suchen und Ersetzen (Frontend Editor).......................................................................................... 123
Suchen und Ersetzen (Backend Editor) .......................................................................................... 125
Anweisungsmuster einfügen ........................................................................................................... 127
Muster mit Drag and Drop einfügen ................................................................................................ 130
Includes auflösen ............................................................................................................................ 131
Hilfe zu ABAP aufrufen.................................................................................................................... 132
Layout verbessern........................................................................................................................... 134
Funktionsumfang des Pretty Printers......................................................................................... 136
Programm sichern und aktivieren......................................................................................................... 137
Programm prüfen.................................................................................................................................. 138
Erweiterte Programmprüfung .......................................................................................................... 140
Textelementpflege ................................................................................................................... 142
Textelementpflege im Überblick ........................................................................................................... 143
Einstiegsbild .................................................................................................................................... 144
Textelemente anlegen und pflegen ...................................................................................................... 145
Listen- und Spaltenüberschriften anlegen....................................................................................... 146
Selektionstexte pflegen ................................................................................................................... 148
Textsymbole pflegen ....................................................................................................................... 150
Textelemente abgleichen ..................................................................................................................... 153
Selektionstexte abgleichen.............................................................................................................. 154
Textsymbole abgleichen.................................................................................................................. 156
Textelemente kopieren ......................................................................................................................... 161
Textelemente übersetzen ..................................................................................................................... 162
Variantenpflege........................................................................................................................ 164
Varianten in Übersicht .......................................................................................................................... 165
Einstiegsbild .................................................................................................................................... 167
Variantenübersicht anzeigen................................................................................................................ 168
Varianten anlegen und pflegen ............................................................................................................ 169
Variante anlegen ............................................................................................................................. 170
Attribute von Varianten.................................................................................................................... 173
Varianten ändern............................................................................................................................. 176

April 2001 5
BC - ABAP Workbench: Werkzeuge SAP AG

Varianten löschen............................................................................................................................ 177


Varianten drucken ........................................................................................................................... 178
Variable Werte in Varianten.................................................................................................................. 179
Variable für Datumsberechnung verwenden................................................................................... 180
Benutzerspezifische Selektionsvariablen........................................................................................ 182
Benutzerspezifische Variablen anlegen..................................................................................... 183
Werte interaktiv ändern.............................................................................................................. 184
Werte vom Programm aus ändern............................................................................................. 185
Festwerte aus der Tabelle TVARV.................................................................................................. 186
Tabellenvariable aus TVARV anlegen ....................................................................................... 187
Einträge in der Tabelle TVARV ändern...................................................................................... 189
Programme mit Varianten ausführen ................................................................................................... 192
Nachrichtenpflege ................................................................................................................... 193
Nachrichtenklasse anlegen .................................................................................................................. 194
Nachrichten hinzufügen........................................................................................................................ 195
Langtexte zu Nachrichten erfassen...................................................................................................... 196
IMG-Aktiviät einer Nachricht zuordnen................................................................................................. 197
Splitscreen-Editor.................................................................................................................... 198
Verwendung und Funktionen in Übersicht ........................................................................................... 199
Den Splitscreen-Editor aufrufen ........................................................................................................... 200
Einstiegsbild der SE39 ......................................................................................................................... 201
Spezielle Splitscreen-Funktionen ......................................................................................................... 202
Editor-Funktionen ................................................................................................................................. 204
Class Builder............................................................................................................................ 205
Class Builder: Einführung ..................................................................................................................... 206
Namenskonventionen für ABAP Objects ........................................................................................ 209
Übersicht über vorhandene Objekttypen.............................................................................................. 214
Class Browser ................................................................................................................................. 215
Objekttypen anlegen............................................................................................................................. 217
Einstiegsbild .................................................................................................................................... 218
Neue Klasse anlegen ...................................................................................................................... 220
Neues Interface anlegen ................................................................................................................. 223
Definieren von Komponenten............................................................................................................... 225
Class Editor ..................................................................................................................................... 227
Attribute anlegen ............................................................................................................................. 229
Methoden anlegen........................................................................................................................... 231
Parameter und Ausnahmen anlegen .............................................................................................. 233
Methoden implementieren............................................................................................................... 236
Ereignisse anlegen.......................................................................................................................... 237
Klasseninterne Typen anlegen........................................................................................................ 239
Beziehungen zwischen Objekttypen definieren ................................................................................... 241
Interfaces in Klassen aufnehmen.................................................................................................... 243
Unterklassen erstellen..................................................................................................................... 245
Unterklassen erweitern .............................................................................................................. 247
Interfaces schachteln ...................................................................................................................... 249
Aktivieren von Klassen und Interfaces ................................................................................................. 251
Testumgebung...................................................................................................................................... 253
Testumgebung aufrufen .................................................................................................................. 254

6 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge

Instanz erzeugen............................................................................................................................. 256


Attribute testen ................................................................................................................................ 258
Methoden testen.............................................................................................................................. 260
Ereignisbehandlung testen.............................................................................................................. 262
Interface-Sicht auf Objekte testen................................................................................................... 263
Screen Painter.......................................................................................................................... 265
Screen Painter: Konzepte..................................................................................................................... 266
Das Einstiegsbild des Screen Painters ................................................................................................ 268
Dynpros anlegen .................................................................................................................................. 269
Der Ablauflogik-Editor........................................................................................................................... 272
Schlüsselwörter der Ablauflogik ...................................................................................................... 274
Der grafische Layout Editor .................................................................................................................. 276
Bildlayout: Überblick........................................................................................................................ 279
Bildelemente .............................................................................................................................. 280
Felder übernehmen............................................................................................................... 284
Bildelemente ohne Felder anlegen ....................................................................................... 286
Bildelemente bearbeiten ....................................................................................................... 287
Verwendung von Ikonen ....................................................................................................... 289
Arbeiten mit Auswahlknöpfen ............................................................................................... 291
Tabstrips ............................................................................................................................... 292
Tabstrips definieren ......................................................................................................... 295
Wizard für Tabstrips einsetzen ........................................................................................ 299
Table Controls....................................................................................................................... 301
Table Controls definieren ................................................................................................ 303
Wizard für Table Controls einsetzen ............................................................................... 305
Table Controls bearbeiten ............................................................................................... 307
SAP Custom Container anlegen........................................................................................... 308
Arbeiten mit Step Loops ....................................................................................................... 310
Step Loops umwandeln ................................................................................................... 312
Elementliste im grafischen Modus .................................................................................................. 313
Der alphanumerische Fullscreen Editor ............................................................................................... 315
Bildelemente anlegen...................................................................................................................... 317
Dict./Programmfelder übernehmen............................................................................................ 319
Table Controls anlegen und bearbeiten..................................................................................... 321
Tabstrips anlegen....................................................................................................................... 325
SAP Custom Container anlegen ................................................................................................ 328
Step Loops anlegen und bearbeiten .......................................................................................... 330
Bildelemente bearbeiten.................................................................................................................. 332
Elemente umwandeln...................................................................................................................... 334
Arbeiten mit der Elementliste .......................................................................................................... 335
Arbeiten mit Elementattributen ............................................................................................................. 337
Allgemeine Attribute ........................................................................................................................ 338
Dictionary-Attribute.......................................................................................................................... 342
Programmattribute........................................................................................................................... 344
Anzeigeattribute .............................................................................................................................. 347
TabStrip-Attribute ............................................................................................................................ 349

April 2001 7
BC - ABAP Workbench: Werkzeuge SAP AG

Table Control-Attribute .................................................................................................................... 350


Custom Container-Attribute............................................................................................................. 351
Feldformate auswählen ................................................................................................................... 352
Dynpros testen ..................................................................................................................................... 354
Dynpros prüfen ..................................................................................................................................... 355
Dynpros sichern, aktivieren und löschen.............................................................................................. 356
Menu Painter ............................................................................................................................ 357
Einführung: der Menu Painter .............................................................................................................. 358
Das Arbeitsblatt des Menu Painters ..................................................................................................... 361
Das Einstiegsbild des Menu Painters................................................................................................... 363
GUI-Titel anlegen ................................................................................................................................. 365
Definieren eines Status ........................................................................................................................ 366
GUI-Status anlegen......................................................................................................................... 367
Kontextmenü anlegen ..................................................................................................................... 369
Arbeiten mit Menüleisten................................................................................................................. 371
Menüleisten anlegen .................................................................................................................. 372
Normen einhalten....................................................................................................................... 373
Menüeinträge hinzufügen .......................................................................................................... 374
Tastenzuordnung definieren............................................................................................................ 377
Drucktastenleisten definieren.......................................................................................................... 379
Ikonen für die Drucktastenleiste definieren................................................................................ 381
Ortskonstanz definieren ............................................................................................................. 383
Trennstriche einfügen ................................................................................................................ 384
Symbolleiste anlegen ...................................................................................................................... 385
Status testen und aktivieren ................................................................................................................. 386
Arbeiten mit der erweiterten Prüfung .............................................................................................. 387
Status kopieren..................................................................................................................................... 388
Objekte in einen GUI-Status übernehmen ........................................................................................... 391
Arbeiten mit Übersichtslisten................................................................................................................ 393
Bereichsmenüpflege ab Release 4.6A............................................................................................ 394
Funktionen............................................................................................................................................ 395
Funktionstypen verwenden ............................................................................................................. 396
Direktanwahl definieren................................................................................................................... 397
Funktionscode aktivieren und deaktivieren..................................................................................... 398
Funktion zur Laufzeit deaktivieren .................................................................................................. 400
Dynamische Funktionstexte definieren ........................................................................................... 401
Dynamischen Menütext definieren.................................................................................................. 403
GUI-Status und GUI-Titel setzen.......................................................................................................... 404
Funktionscodeabfrage im Programm ................................................................................................... 405
Function Builder ...................................................................................................................... 406
Übersicht über Funktionsbausteine...................................................................................................... 407
Einstiegsbild des Function Builders ................................................................................................ 411
Funktionsbausteine suchen ............................................................................................................ 413
Informationen über Schnittstellenparameter anzeigen ................................................................... 415
Funktionsbausteine aus Ihrem Coding aufrufen ............................................................................. 418
Anlegen neuer Funktionsbausteine...................................................................................................... 423
Eine Funktionsgruppe anlegen ....................................................................................................... 424

8 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge

Einen Funktionsbaustein anlegen ................................................................................................... 425


Parameter und Ausnahmen festlegen ....................................................................................... 427
Überblick über das Coding von Funktionsbausteinen ............................................................... 429
Bausteine prüfen und aktivieren ................................................................................................ 434
Funktionsbausteine testen .............................................................................................................. 435
Tests und Testsequenzen sichern .................................................................................................. 438
Funktionsbausteine dokumentieren und freigeben ......................................................................... 440
Debugger .................................................................................................................................. 443
Laufzeitanalyse ........................................................................................................................ 446
Performance-Trace .................................................................................................................. 449
Performance-Trace im Überblick.......................................................................................................... 451
Architektur und Navigation .............................................................................................................. 452
Einstiegsbild .................................................................................................................................... 454
Meßdaten erheben ............................................................................................................................... 455
Die Trace-Aufzeichnung starten...................................................................................................... 456
Die Trace-Aufzeichnung beenden................................................................................................... 458
Meßdaten auswerten............................................................................................................................ 459
Anzeigefilter..................................................................................................................................... 460
Weitere Abgrenzungen .............................................................................................................. 463
Listen mit Tracesätzen anzeigen .................................................................................................... 465
Tracesätze analysieren ................................................................................................................... 468
SQL-Traceanalyse ..................................................................................................................... 472
Embedded SQL .................................................................................................................... 473
Gemessene DB-Operationen ............................................................................................... 474
Logische Reihenfolge der DB-Operationen.......................................................................... 475
Pufferung .............................................................................................................................. 476
Analyse einer Beispiel-SQL-Datei ........................................................................................ 477
Beispielanalyse einer Oracle-Anweisung ............................................................................. 479
Beispielanalyse einer Informix-Anweisung ........................................................................... 481
Enqueue-Traceanalyse.............................................................................................................. 483
Enqueue-Tracesätze............................................................................................................. 484
Detailanzeige der Enqueue-Tracesätze ............................................................................... 485
RFC-Traceanalyse ..................................................................................................................... 486
RFC-Tracesätze.................................................................................................................... 487
Detailanzeige der RFC-Tracesätze ...................................................................................... 488
Weitere Funktionen .............................................................................................................................. 489
Tracefile konfigurieren..................................................................................................................... 490
Listen lokal sichern.......................................................................................................................... 492
Die Funktion Explain SQL ............................................................................................................... 493
Dictionary-Informationen abrufen.................................................................................................... 495
Information zu Entwicklungsobjekten................................................................................................... 496
Übersicht über das Navigations- und Informationssystem ................................................ 497
Das Repository-Infosystem .................................................................................................... 498
Umfeldermittlung .................................................................................................................................. 501
Umfeld ermitteln .............................................................................................................................. 502
Die Funktion Verwendungsnachweis ................................................................................................... 503

April 2001 9
BC - ABAP Workbench: Werkzeuge SAP AG

Die Anwendungshierarchie .................................................................................................... 505


Der Data Browser..................................................................................................................... 507
Kundenspezifische Data-Browser-Anzeige .......................................................................................... 509
Weitere Funktionen des Data Browser................................................................................................. 511
Weitere Konzepte..................................................................................................................................... 512
Inaktive Sourcen ...................................................................................................................... 513
Konzept................................................................................................................................................. 514
Unterstützung in den Werkzeugen ....................................................................................................... 516
Objekte aktivieren............................................................................................................................ 518
Übersicht zu inaktiven Objekten...................................................................................................... 519
Statusanzeige.................................................................................................................................. 520
Aktivieren von Klassen und Interfaces ............................................................................................ 522
Auswirkungen auf Operationen ............................................................................................................ 524
Weitere Auswirkungen.......................................................................................................................... 527
Besonderheiten bei Modifikationen ...................................................................................................... 528
Business Add-Ins .................................................................................................................... 529

10 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
BC - ABAP Workbench: Werkzeuge

BC - ABAP Workbench: Werkzeuge

Themen der Dokumentation


Neuerungen zum Release 4.6C [Seite 12]

Object Navigator [Seite 18]

Integration von Internet-Services [Seite 51]

Werkzeuge der ABAP Workbench [Seite 90]

Information zu Repository-Objekten [Seite 496]

Weitere Konzepte [Seite 512]

April 2001 11
BC - ABAP Workbench: Werkzeuge SAP AG
Neuerungen zum Release 4.6C

Neuerungen zum Release 4.6C


Die einschneidende Neuerung zum Release 4.6C besteht in der Integration von Internet-Services
innerhalb der ABAP Workbench. Hierzu wird ein neues Werkzeug, der Web Application Builder,
bereitgestellt.
Ferner bietet der Screen Painter eine komfortable Unterstützung beim Anlegen von Tabstrips
und Table Controls mit Hilfe von Wizards. Daneben kommen einige neue Navigationsfunktionen
und funktionelle Erweiterungen in den einzelnen Werkzeugen und bei Business Add-Ins hinzu.

12 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Neuerungen zum Release 4.6C

Neuerungen im einzelnen
I
n
t
e
g
r
a
ti
o
n
v
o
n
I
n
t
e
r
n
e
t-
S
e
r
v
i
c
e
s
i
n
d
e
r
S
E
8
0
[
S
e
it
e
5
1
]

April 2001 13
BC - ABAP Workbench: Werkzeuge SAP AG
Neuerungen zum Release 4.6C

S
c
r
e
e
n
P
a
i
n
t
e
r
§ Wizard für Tabstrip Controls [Seite 299]
§ Wizard für Table Controls [Seite 305]
§ Bezug auf den ABAP-Datentyp STRING bei Dynproelementen vom Typ Ein/Ausgabefeld.
Siehe auch: Zusatz zum Attribut Name bei Allgemeinen Attributen [Seite 338].
§ Weiteres Dynproattribut: Halten Scrollposition. Mehr dazu in Dynpros anlegen [Seite 269].

14 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Neuerungen zum Release 4.6C

Z
u
s
ä
t
z
li
c
h
e
F
u
n
k
ti
o
n
e
n
i
m

O
b
j
e
c
t
N
a
v
i
g
a
t
o
r
§ Persistenter Arbeitsvorrat [Seite 44] im Object Navigator.
§ Verwendung von Drag and Drop, um Muster im Quelltext einzufügen. Mehr dazu in
Muster mit Drag and Drop einfügen [Seite 130].
§ Historie für die Objektlistennavigation.
§ Ein- und Ausblenden des Navigationsbereichs [Seite 39].

April 2001 15
BC - ABAP Workbench: Werkzeuge SAP AG
Neuerungen zum Release 4.6C

A
B
A
P
E
d
it
o
r
Zusätzliche Funktionen über das Kontextmenü des Frontend Editors verfügbar:
§ Navigation zu einer beliebigen Zeile. Mehr dazu: Im Quelltext navigieren [Seite 111].
§ Zugriff auf die Zwischenablage und Blockoperationen. Siehe auch: Zwischenablage
verwenden [Seite 121].
K
l
a
s
s
if
i
k
a
ti
o
n
v
o
n
T
r
a
n
s
a
k
ti
o
n
e
n
Transaktionen können klassifiziert werden als Professional User Transaction oder als Easy
Web Transaktion. Über die Kennzeichnung ihrer GUI-Fähigkeit wird gesteuert, welches GUI
zum Ausführen der Transaktion vom Workplace gestartet wird.

16 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Neuerungen zum Release 4.6C

N
e
u
e
F
u
n
k
ti
o
n
e
n
b
e
i
B
u
s
i
n
e
s
s
A
d
d
-
I
n
s
[
S
e
it
e
5
2
9
]
§ Anlegen von Beispiel- und Defaultimplementierungen
Für ein definiertes Business Add-In können eine Beispiel- und eine Defaultimplementierung
mit entsprechendem Quelltext bereitgestellt werden.
• Erweiterbare Filtertypen
Waren Implememtierungen zu filterabhängigen Definitionen von Business Add-Ins nur für
existierende Filterwerte möglich, so können ab dem Release 4.6C auch Implementierungen
zu bisher nicht existierenden Filterwerten angelegt werden.

April 2001 17
BC - ABAP Workbench: Werkzeuge SAP AG
Object Navigator

Object Navigator
Verwendung
Der Object Navigator gewährt einen zentralen Einstieg in die ABAP Workbench und ist als
Nachfolger des Repository Browsers über den Transaktionscode SE80 erreichbar.
Sie verwenden den Object Navigator, um Ihre Entwicklungsarbeit in einer integrierten
Entwicklungsumgebung zu organisieren und Entwicklungsobjekte anzulegen, zu ändern und zu
verwalten.
Entwicklungsobjekte werden in Objektlisten zusammengefaßt, die sämtliche Elemente gleicher
Kategorie z.B. einer Entwicklungsklasse, eines Programms oder einer globalen Klasse enthalten.
Ausgehend von der angezeigten Objektliste, wählen Sie das interessierende Objekt mit
Doppelklick aus. Damit wird automatisch das entsprechende Werkzeug aufgerufen, mit dem das
Objekt erstellt wurde. Siehe auch Arbeiten mit Entwicklungsobjekten [Seite 22].
Um Ihre Entwicklungsarbeit möglichst effizient zu gestalten, stellt der Object Navigator einen
umfangreichen Satz von Navigationsfunktionen zur Verfügung. Weitere Informationen hierzu
finden Sie unter Navigation [Seite 36].

Besonderheiten
§ Einbindung von Controls

Beim Redesign der Workbench-Oberfläche wurde auf die Infrastruktur des Control
Frameworks zurückgegriffen. Die Implementierung der verschiedenen Controls erfolgte auf
der Grundlage von ABAP Objects. Eine Übersicht über die in der Workbench eingesetzten
Controls erhalten Sie unter Controls und die Workbench [Extern].

§ Trennung von Navigations- und Werkzeugbereich

Der Object Navigator realisiert eine Trennung in einen Navigations- und einen
Werkzeugbereich. Weitere Informationen finden Sie unter Bereiche der Navigation [Seite 37].
Während der Navigationsbereich die Objektliste anzeigt, werden im Werkzeugbereich die
Entwicklungsobjekte in den sie definierenden Werkzeugen angezeigt.
Die folgenden Werkzeuge sind im Werkzeugbereich des Object Navigators integriert:
das Dictionary, der Class Builder, der ABAP Editor, der Function Builder, der Screen Painter,
der Menu Painter und die Textelementpflege.
Die übrigen Werkzeuge nehmen das ganze Bild ein und überlagern auch den
Navigationsbereich.

§ Übersicht über Teilobjekte der Anwendung

Bei der Bearbeitung eines Einzelobjektes in einem bestimmten Werkzeug bleibt die Anzeige
weiterer Teilobjekte eines Programms, Entwicklungsklasse, usw. parallel dazu bestehen.

§ Kontextsensitive rechte Maustaste im Browser

Im Navigationsbereich sind alle objektbezogenen Funktionen über die kontextsensitive


rechte Maustaste (Kontextmenü) verfügbar. Der Benutzer kann die Funktionen, die vom
Objekt unterstützt werden, über das Kontextmenü direkt auswählen und zum Beispiel das

18 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Object Navigator

zugehörige Werkzeug zur Bearbeitung des Objektes aufrufen.

§ Unterstützung benutzerspezifischer Sichten

Entwicklungsobjekte, für die eine häufige Bearbeitung in der Workbench ansteht, können in
eine Favoritenliste aufgenommen werden.
Ausgewählte Objekte können für die Dauer einer Sitzung in einen Arbeitsvorrat
aufgenommen werden.

Komponenten der Oberfläche

April 2001 19
BC - ABAP Workbench: Werkzeuge SAP AG
Object Navigator

Navigationsbereich
§ Objektliste
§ Toolbar der Objektlistenanzeige

20 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Object Navigator

§ Kontextmenü

Werkzeugbereich
§ Werkzeuge der ABAP Workbench
§ Funktionen der Werkzeuge
§ Menüs
§ Symbolleiste
§ Drucktastenleiste
§ Kontextmenü (nur im ABAP Editor mit Edit Control Modus)

zusätzliche Fenster

April 2001 21
BC - ABAP Workbench: Werkzeuge SAP AG
Arbeiten mit Entwicklungsobjekten

Arbeiten mit Entwicklungsobjekten


Bestandteile von Anwendungsprogrammen, die als separate Objekte im R/3-Repository abgelegt
werden, bezeichnet man als Entwicklungsobjekte oder auch als Repository-Objekte. Im SAP-
System werden alle logisch zusammenhängenden Entwicklungsobjekte zu Entwicklungsklassen
zusammengefaßt.

Objektlisten
Im Object Navigator werden Entwicklungsobjekte in Objektlisten angeordnet, die sämtliche
Elemente einer Entwicklungsklasse, eines Programms, einer globalen Klasse etc. enthalten.
Objektlisten bieten jedoch nicht nur eine hierarchisch angeordnete Übersicht über die
Entwicklungsobjekte einer Kategorie, sondern geben auch den Zusammenhang der Objekte
untereinander wieder. Der Object Navigator stellt eine Objektliste in Form einer Baumstruktur
dar.
Der oberste Knoten einer jeden Objektliste ist eine Entwicklungsklasse. Von der
Entwicklungsklasse aus können Sie bis zur untersten Hierarchiestufe von Objekten navigieren.
Wählen Sie ein Objekt innerhalb der Baumstruktur aus, das selbst eine eigene Objektliste
definiert, so reduziert sich die Darstellung im Object Navigator auf die neue Objektliste
(Fokussierung).
Beispiel:

22 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Arbeiten mit Entwicklungsobjekten

Entwicklungsklasse

Objektarten Entwicklungsklasse

DDIC-Objekte

Klassenbibliothek

Programme

PROG_NAME_01 PROG_NAME_01

PROG_NAME_02 Objektarten Programm

PROG_NAME_03 DDIC-Objekte

Felder
Funktionsgruppen
PBO-Module
Includes
PAI-Module

Nachrichtenklassen Unterprogramme

Includes

Objektlistenauswahl im Object Navigator


Die Auswahl der Entwicklungsobjekte erfolgt im Object Navigator über eine Auswahlliste. Diese
enthält folgende Kategorien von Objektlisten:
Kategorie Bedeutung
Anwendungshierarchie Liste aller Entwicklungsobjekte in einem SAP-System. Diese Liste ist
hierarchisch nach Anwendungskomponenten, Komponentenkürzel
und der darin enthaltenen Entwicklungsklassen angeordnet.
Entwicklungsklasse Liste aller Objekte einer Entwicklungsklasse.
Programm Liste aller Teilobjekte eines ABAP-Programms auf.
Funktionsgruppe Liste aller Funktionsbausteine und ihrer Teilobjekte, die innerhalb
einer Funktionsgruppe definiert sind.
Klasse Liste aller Komponenten einer globalen Klasse. Zusätzlich werden
Superklassen und alle geerbten und redefinierten Methoden der
aktuellen Klasse aufgeführt.

April 2001 23
BC - ABAP Workbench: Werkzeuge SAP AG
Arbeiten mit Entwicklungsobjekten

Internet Service Liste aller Teilobjekte eines Internet-Services: Servicebeschreibung,


Themes, Sprachressourcen, HTML-Templates und MIME-Objekte.
Mit der Auswahl eines Internet-Services aus der Baumanzeige der
Objektliste ist der Aufruf des Web Application Builders verbunden.
Siehe auch: Integration von Internet-Services [Seite 51].
lokale Objekte Liste aller lokalen privaten Objekte eines Benutzers.
Die Objekte dieser Liste gehören zur Entwicklungsklasse $TMP und
werden nicht weiter transportiert. Sie können nicht nur Ihre eigenen
lokalen privaten Objekte anzeigen, sondern auch die anderer
Benutzer. Lokale Objekte werden insbesondere zu Testzwecken
verwendet. Sie haben aber auch die Möglichkeit, lokale Objekte zum
Transport einer anderen Entwicklungsklasse zuzuordnen. Siehe dazu
Entwicklungsklasse ändern [Seite 33]

24 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Objekte auswählen

Objekte auswählen

Nach dem Aufruf der ABAP Workbench mit dem Object Navigator wird initial die
zuletzt vom Benutzer bearbeitete Objektliste angezeigt. Dies gilt insbesondere nach
einer erneuten Anmeldung am System.

Vorgehensweise
Um ein beliebiges, bereits existierendes Entwicklungsobjekt im Object Navigator für eine weitere
Bearbeitung auszuwählen, gehen Sie wie folgt vor:
1. Wählen Sie im Einstiegsbild des Object Navigators aus der Objektlistenauswahl die Art der
Objektliste aus.
2. Geben Sie den Namen des Objektes im Eingabefeld ein.
Standardmäßig ist das Eingabefeld mit dem Namen des zuletzt verwendeten Objektes
vorbelegt.
Falls Sie auf die Liste der von Ihnen zuletzt verwendeten Objekte zugreifen möchten,
klicken Sie auf die Taste und wählen den interessierenden Eintrag aus.
Der Schritt 2 entfällt bei Auswahl von Anwendunghierarchie im Schritt 1.

3. Klicken Sie auf oder bestätigen Sie mit ENTER.


Die angeforderte Objektliste wird in Form eines Trees angezeigt.
4. Wählen Sie das gewünschte Objekt mit Dopppelklick aus.
Falls das gewählte Objekt eine eigene Objektliste definiert (zum Beispiel ein Programm
innerhalb einer Entwicklungsklasse), dann ändert sich die Tree-Darstellung abermals
und es ist nur das gewählte Objekt sichtbar.
Das interessierende Teilobjekt ist in diesem Fall mit einen erneuten Doppelklick
auszuwählen.

Sie können im Schritt 4 das gewünschte Objekt auch über die Funktion Ändern aus
dem Kontextmenü öffnen. Das Objekt wird dann im Änderungsmodus angezeigt.
Alternativ können Sie bei der Auwahl des Objektes im Schritt 4 einen separaten
Modus starten. Wählen Sie dann die Funktion Anzeigen → Im neuen Fenster.

Ergebnis
Der Object Navigator ruft automatisch das Werkzeug auf, in dem das Objekt erstellt wurde. Das
Objekt wird in Anzeigemodus geöffnet. Um in den Änderungsmodus umzuschalten, wählen Sie
in der Drucktastenleiste.
Wenn Sie zum Beispiel ein Include auswählen, ruft der Object Navigator den ABAP Editor auf
und öffnet das Include. Wählen Sie dagegen einen GUI-Satus mit Doppelklick aus, dann wird der
Menu Painter aufgerufen und der Status geöffnet.

April 2001 25
BC - ABAP Workbench: Werkzeuge SAP AG
Objekte auswählen

Sie haben in jedem Werkzeug die Möglichkeit, über die Menü-Funktion Anderers Objekt
ein weiteres Objekt derselben oder einer anderen Kategorie auszuwählen. Wenn Sie
zum Beispiel ein Include im ABAP Editor geöffnet haben, wählen Sie die Funktion
Programm → Anderers Objekt, um ein anderes Include oder ein weiteres Objekt bzw.
Teilobjekt anzuzeigen.
Siehe auch:
Arbeiten mit Entwicklungsobjekten [Seite 22]
Neue Objekte anlegen [Seite 27]

26 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Neue Objekte anlegen

Neue Objekte anlegen


Die Prozedur zum Anlegen von Entwicklungsobjekten im Object Navigator unterscheidet sich
geringfügig in Abhängigkeit davon, ob bereits ein Objekt derselben Kategorie innerhalb der
Objektliste existiert oder nicht. Existiert ein solches, so ist ein entsprechender Objektknoten
innerhalb der Tree-Anzeige der Objektliste sichtbar. In diesem Falle ist das zugehörige
Kontextmenü verfügbar.

Vorgehensweise
So legen Sie ein neues Entwicklungsobjekt bei bereits vorhandenem Objektknoten innerhalb der
Objektliste an:
1. Markieren Sie den entsprechenden Objektknoten.
2. Wählen Sie Anlegen über die rechte Maustaste.
Ein Dialogfenster zum Anlegen des Objektes erscheint.
3. Geben Sie den Namen des neuen Objektes an.
Beachten Sie dabei, daß im Kundennamensraum alle Repository-Objekte mit Y oder mit
Z beginnen.
4. Bestätigen Sie mit Weiter.
Das System überprüft, ob ein Objekt mit dem eingegebenen Objektnamen bereits im
R/3-System angelegt wurde.
5. Machen Sie die erforderlichen Angaben zum Objekt und wählen Sie Sichern.
Es erscheint das Dialogfenster Objektkatalogeintrag anlegen.
6. Ordnen Sie dem Objekt eine Entwicklungsklasse zu.

7. Bestätigen Sie mit .

So legen Sie im Einstiegsbild des Object Navigators ein neues Entwicklungsobjekt an, falls noch
kein entsprechender Objektknoten existiert.
1. Wählen Sie die Funktion Anderes Objekt, indem Sie die Ikone aus der Drucktastenleiste
anklicken.
2. Wählen Sie im Fenster Objektauswahl die gewünschte Tabstrip-Seite aus.
3. Geben Sie den Namen des anzulegenden Objektes an.
Beachten Sie, daß im Kundennamensraum alle Repository-Objekte mit Y oder mit Z
beginnen.
4. Wählen Sie .
Das System überprüft, ob ein Objekt mit dem eingegebenen Objektnamen bereits im
R/3-System angelegt wurde.
5. Machen Sie die erforderlichen Angaben zum Objekt und wählen Sie Sichern.
Es erscheint das Dialogfenster Objektkatalogeintrag anlegen.
6. Ordnen Sie dem Objekt eine Entwicklungsklasse zu.

April 2001 27
BC - ABAP Workbench: Werkzeuge SAP AG
Neue Objekte anlegen

7. Bestätigen Sie mit .

Ergebnis
Das Objekt wurde im R/3-Repository angelegt und liegt in inaktiver Fassung vor. Durch die
Zuordnung zu einer Entwicklungsklasse ist das Objekt automatisch an das Transport- und
Korrekturwesen angeschlossen.

Alternativ können Sie Entwicklungsobjekte vom Einstiegsbild des entsprechenden


Werkzeugs anlegen.
Siehe auch:
Beispiel: Ein Programm anlegen [Seite 108]

28 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Programm anlegen

Programm anlegen
Voraussetzungen
In der nachfolgenden Beschreibung wird davon ausgegangen, daß Sie ein neues ABAP-
Programm im Object Navigator anlegen. Darüber hinaus bezieht sich die Vorgehensweise auf
den allgemeinen Fall und läßt sich insbesondere auch dann anwenden, wenn noch kein
Objektknoten Programme innerhalb der Objektliste vorhanden ist.
Anderenfalls können Sie die Funktion Anlegen aus dem Kontextmenü des Objektknotens
verwenden. Siehe auch Neue Objekte anlegen [Seite 27].

Vorgehensweise
8. Wählen Sie die Funktion Anderes Objekt, indem Sie die Ikone aus der Drucktastenleiste
anklicken.
9. Wählen Sie im Fenster Objektauswahl die Tabstrip-Seite Programm aus.
10. Geben Sie den Namen des neuen Programms an.
Beachten Sie, daß im Kundennamensraum alle Programme mit Y oder mit Z beginnen.
11. Wählen Sie .
Es erscheint das Dialogfenster Programm anlegen.
12. Schalten Sie die Option Mit Top-Include aus, falls daß das anzulegende Programm vom Typ
Ausführbares Programm (Report) sein soll. Im entgegengesetzten Fall legen Sie ein
Programm mit TOP-Include, also ein Modulpool an.

13. Verlassen Sie das Fenster mit .


14. Sofern Sie ein Programm mit TOP-Include anlegen, erscheint erneut ein Dialogfenster, in
dem Sie den Namen des TOP-Includes eingeben.
15. Verlassen Sie dieses Fenster mit .
Es erscheint ein Dialogfenster für die Festlegung von weiteren Programmeigenschaften.
Zur Bedeutung der einzelnen Eigenschaften siehe auch Programmattribute pflegen
[Extern].
16. Vergeben Sie die erforderlichen Attribute zum Programm und wählen Sie Sichern.
Es erscheint das Dialogfenster Objektkatalogeintrag anlegen.
17. Ordnen Sie dem Programm eine Entwicklungsklasse zu.

April 2001 29
BC - ABAP Workbench: Werkzeuge SAP AG
Programm anlegen

18. Bestätigen Sie mit .


Das angelegte Programm wird in die Objektliste der zugeordneten Entwicklungsklasse
aufgenommen und unter dem Objektknoten Programme angezeigt. Ferner wird der
ABAP Editor aufgerufen und das Programm im Änderungsmodus angezeigt.

Ergebnis
Das Programm wurde im R/3-Repository angelegt und liegt im ABAP Editor in inaktiver Fassung
vor. Durch die Zuordnung zu einer Entwicklungsklasse ist das Programm automatisch an das
Transport- und Korrekturwesen angeschlossen.

Alternativ können Sie ein Programm vom Einstiegsbild des ABAP Editors (SE38)
anlegen.

30 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Objekte kopieren

Objekte kopieren
Sie können das Anlegen von neuen Objekten eventuell vereinfachen, indem Sie bereits
vorhandene Objekte oder nur ihre Teilobjekte kopieren.

Beim Kopieren wird auf die aktive Fassung des Quellobjektes zurückgegriffen. Nur
bei Funktionsgruppen und Funktionsbausteinen wird nachgefragt, ob die aktive oder
die inaktive Fassung kopiert werden soll.

Voraussetzungen
Falls das Quellobjekt aus Teilobjekten besteht, vergewissern Sie sich, welche Teilobjekte Sie
kopieren möchten.

Vorgehensweise
1. Klicken Sie das gewünschte Objekt an.
2. Wählen Sie die Funktion Kopieren aus dem Kontextmenü.
3. Geben Sie einen Namen für das Zielobjekt ein.

4. Wählen Sie Kopieren.


Es erschient ein Dialogfenster für die Auswahl weiterer Teilobjekte.
5. Markieren Sie die einzelnen Teilobjekte, die Sie kopieren möchten.
Falls Sie Includes zu einem Programm kopieren möchten, erscheint ein weiteres
Dialogfenster, in dem Sie diese einzeln auswählen und neu benennen können.
6. Wählen Sie abermals Kopieren.
7. Ordnen Sie dem Zielobjekt eine Entwicklungsklasse zu.
Dieser Schritt entfällt bei lokalen Objekten.

8. Bestätigen Sie mit .

Ergebnis
Das neue Objekt wurde im R/3-Repository angelegt und wird in seiner inaktiven Fassung in die
Objektliste aufgenommen.

April 2001 31
BC - ABAP Workbench: Werkzeuge SAP AG
Objekte löschen

Objekte löschen
Voraussetzungen
Es können nur diejenigen Entwicklungsobjekte gelöscht werden, die von keinen weiteren
Objekten verwendet werden. Führen Sie daher einen Verwendungsnachweis durch.

Vorgehensweise
So löschen Sie ein einzelnes Objekt aus der Objektliste.
9. Klicken Sie das gewünschte Objekt an.
10. Wählen Sie die Funktion Löschen aus dem Kontextmenü.
11. Bestätigen Sie mit Löschen.

12. Geben Sie einen Transportantrag an und bestätigen Sie mit .

Wenn Sie mehrere Objekte aus ein und derselben Objektliste löschen möchten,
dann markieren Sie diese. Verwenden Sie dabei die Taste <STRG> (bzw. SHIFT)
und führen die Schritte 2 - 4 durch. Wiederholen Sie jedoch den Schritt 3 für jedes
einzelne Objekt. Siehe auch Mengenmodus verwenden [Seite 35].

Ergebnis
Sowohl die aktive als auch die inaktive Fassung des (der) Objekte(s) werden gelöscht.

32 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Zuordnung zur Entwicklungsklasse ändern

Zuordnung zur Entwicklungsklasse ändern

Verwendung
Sie können einzelne Objekte einer anderen Entwicklungsklasse zuordnen. So können Sie
beispielsweise ein ABAP-Programm in der Liste Ihrer lokalen privaten Objekte
(Entwicklungsklasse $TMP) anlegen und testen; anschließend ordnen Sie das Programm zum
Transport einer anderen Entwicklungsklasse zu.

Vorgehensweise
So ändern Sie im Einstiegsbild des Object Navigators die Entwicklungsklasse eines Objektes:
1. Markieren Sie das betreffende Entwicklungsobjekt in der angezeigten Objektliste.
2. Wählen Sie Weitere Funktionen → Entwicklungsklasse ändern über die rechte
Maustaste.
Es erscheint ein Dialogfenster Umhängen Objekt …
3. Geben Sie den Namen der neuen Entwicklungsklasse an.

4. Bestätigen Sie mit .


Wenn das Objekt noch keinem Änderungsauftrag zugeordnet war, müssen Sie einen
Änderungsauftrag angeben.
5. Geben Sie einen zulässigen Änderungsauftrag an und wählen Sie .

Ergebnis
Das System fügt das Objekt dem Änderungsauftrag hinzu und verschiebt es in die neue
Entwicklungsklasse.

Um mehrere Objekte der gleichen Objektliste zu verschieben, markieren Sie diese


und verwenden den Mengenmodus [Seite 35]. Daraufhin werden alle ausgewählten
Objekte in die angegebene Entwicklungsklasse verschoben.

April 2001 33
BC - ABAP Workbench: Werkzeuge SAP AG
Objekte aktivieren

Objekte aktivieren
Verwendung
Sie können die Gesamtheit aller Ihrer inaktiven Objekte, ausgewählte Objekte oder auch nur
Teilkomponenten eines Entwicklunsobjektes (Klassen in ABAP Objects) aktivieren.

Voraussetzungen
Um die Aktivierung von Entwicklungsobjekten erfolgreich durchzuführen, wird eine Prüfung des
Gesamtobjektes (Rahmenprogramm, Funktionsgruppe, Klasse,…) durchgeführt. Bei nicht
korrekter Syntax wird die Ausgabe einer Fehlerliste angeboten. Es ist aber auch möglich,
Objekte mit nicht korrekter Syntax zu aktivieren. Dies kann z.B. bei Templates, wie sie bei Code-
Generatoren verwendet werden, von Bedeutung sein.

Vorgehensweise
1. Wählen Sie das entsprechende Objekt aus der Objektliste aus.
2. Wählen Sie die Funktion Aktivieren aus dem Kontextmenü des Object Navigators oder über
die entsprechende Ikone in der Drucktastenleiste des zugehörigen Werkzeugs.
Die Liste des Ihrer inaktiven Objekte wird angezeigt. Das ausgewählte Objekt wird
markiert hervorgehoben.
3. Bestätigen Sie die Auswahl mit .
Bei Includes, die nicht eindeutig einem Rahmenprogramm zugeordnet sind, erscheint
eine Abfrage nach dem Rahmenprogramm. Wählen Sie dann aus der Liste aller
Verwender ein Rahmenprogramm aus.
Bei erfolgreicher Aktivierung erscheint die Meldung Objekt(e) wurde(n) aktiviert in der
unteren Statuszeile.

Ergebnis
Mit dem Aktivieren wird zunächst das Gesamtobjekt in der ausgewählten Konfiguration auf
syntaktische Korrektheit geprüft. Hierbei werden die ausgewählten Teilobjekte in inaktiver, die
übrigen Teilobjekte der Konfiguration dagegen in aktiver Fassung berücksichtigt.
Aus der inaktiven Fassung wird zu jedem Teilobjekt eine aktive erstellt. Danach wird eine neue
Laufzeitversion generiert und schließlich die inaktive Fassung gelöscht und aus der Liste der
inaktiven Objekte entfernt.

Besonderheiten
Beim Aktivieren eines Gesamtobjektes von der Objektliste aus werden zunächst nur die inaktiven
Objekte des Gesamtobjektes in der Auswahlliste angeboten. Über die Drucktaste Alle inaktiven
Objekte wird auch das Umfeld angezeigt und kann eventuell in die Auswahl einbezogen werden.

34 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Mengenmodus verwenden

Mengenmodus verwenden
Verwendung
Bestimmte Operationen können Sie im Object Navigator auch auf einer Menge von
Entwicklungsobjekten in einem Schritt durchführen.
Dieser Mengenmodus kann für die folgenden Operationen ausgeführt werden:
§ Löschen
§ Anzeigen
§ Ändern
§ Drucken
§ Transportauftrag schreiben
§ Entwicklungsklasse ändern

Vorgehensweise
So führen Sie im Object Navigator eine Operation auf einer Menge von Objekten aus:
1. Markieren Sie mehrere Objekte einer Objektliste. Halten Sie dazu die Taste <STRG> (bzw.
<SHIFT>) gedrückt und klicken nacheinander die einzelnen Einträge innerhalb der
Baumanzeige an.
2. Öffnen Sie das Kontextmenü (rechte Maustaste) und wählen Sie die zulässige Operation
aus.
Bei Auswahl der Operationen Anzeigen oder Ändern gelangen die gewählten Einträge in
den Arbeitsvorrat. Die dort enthaltenen Einträge stehen für die Dauer der
Systemsitzung zur Verfügung.
3. Führen Sie die weiteren Schritte durch, die sich aus der gewählten Operation ableiten.
Siehe auch:
Objekte löschen [Seite 32]
Neue Entwicklungsklasse zuordnen [Seite 33]
Arbeitsvorrat [Seite 44]

April 2001 35
BC - ABAP Workbench: Werkzeuge SAP AG
Navigation

Navigation
Trennung von Navigations- und Werkzeugbereich
Der Navigations- und der Werkzeugbereich sind getrennt navigierbar. Ein Navigationsschritt in
einem Bereich hat keine automatische Anpassung in dem anderen Bereich zur Folge.
Angenommen, Sie wählen zunächst ein Include aus einer Objektliste aus. Daraufhin wird dieses
im ABAP Editor angezeigt. Wählen Sie anschließend eine im Include referenzierte globale
Klasse mit Doppelklick aus, so wird der Class Builder gestartet und die betreffende Klasse dort
ausgegeben. Der Navigationsbereich zeigt, nach wie vor, die Objektliste des zuvor ausgewählten
Progremms an.
Wählen Sie umgekehrt aber eine andere Objektliste aus, dann bewirkt dies keine automatische
Anpassung im Werkzeugbereich.
Siehe auch:
Bereiche der Navigation im Object Navigator [Seite 37]
Navigation im Werkzeugbereich [Seite 40]

36 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Bereiche der Navigation

Bereiche der Navigation


Grundsätzlich kann im Object Navigator zwischen drei unabhängigen Navigationsbereichen
unterschieden werden:
§ Navigation innerhalb der Objektliste
§ Navigation innerhalb der Werkzeuge
§ Navigation im zusätzlichen Fenster
- integriertes Fenster im Object Navigator (Syntaxcheck, Navigationsstapel, Arbeitsvorrat,
…)
- separates Fenster (Zum Beispiel nach dem Öffnen eines Objektes im neuen Modus)

Menü-
Symbol-
Drucktastenleiste

Objektliste Werkzeug

zusätzliche Dialogfenster

Funktionen der Werkzeuge


Die Funktionen der Menü-, der Symbol- und der Drucktastenleiste beziehen sich (mit Ausnahme
von Beenden) auf den Arbeitsbereich. Insbesondere bewirkt Zurück aus der Symbolleiste
nur eine Rückwärtsnavigation im Werkzeugbereich.

Anpassen der Objektliste


Wenn Sie im Werkzeugbereich in einem Navigationsschritt zu einem anderen Objekt (und damit
eventuell zu einem anderen Werkzeug) verzweigen, dann können Sie die Objektliste
entsprechend angepassen.
Alle Werkzeuge, die im Werkzeugbereich des Object Navigators integriert sind, verfügen über
eine Funktion, die eine Aktualisierung der Objektliste bewirkt.

April 2001 37
BC - ABAP Workbench: Werkzeuge SAP AG
Bereiche der Navigation

Wählen Sie hierzu die Funktion Objektliste anzeigen über die entsprechende Ikone in der
Drucktastenleiste des Werkzeugs.

Angenommen, Sie verzweigen vom ABAP Editor aus mit Doppelklick auf eine im
Programm referenzierte globale Klasse und gelangen so zur Definition der
betreffenden Klasse im Class Builder. Nach Verwendung dieser Funktion wird
die Objektliste der entsprechenden ABAP Klasse (mit allen Teilkomponenten)
angezeigt.

Ausblenden der Objektliste


Dazu mehr unter Navigationsbereich ausblenden [Seite 39].
Siehe auch:
Funktionen im Navigationsbereich
[Seite 41]

38 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Navigationsbereich ausblenden

Navigationsbereich ausblenden
Verwendung
Sie können den Navigationsbereich innerhalb des Object Navigators mit der Funktion Vollbild
ein/aus ausblenden, um so den Werkzeugbereich zu vergrößern. Dies kann insbesondere bei
kleinerem Bildschirm von Nutzen sein.

Vorgehensweise
Klicken Sie im Object Navigator die entsprechende Ikone auf der Drucktastenleiste an, um
das Vollbild einzuschalten.
(Wenn Sie wiederholt diese Ikone anklicken, schalten Sie das Vollbild wieder aus, womit der
Navigationsbereich wieder angezeigt wird.)

Object Navigator Object Navigator


Vollbild ein/aus Vollbild ein/aus

Vollbild ausschalten Vollbild einschalten

Siehe auch:
Bereiche der Navigation [Seite 37]

April 2001 39
BC - ABAP Workbench: Werkzeuge SAP AG
Navigation im Werkzeugbereich

Navigation im Werkzeugbereich
Im Werkzeugbereich stellt der Object Navigator einige Navigationsfunktionen bereit:
Einzelschritt-Navigation (Voriges Objekt und Nächstes Objekt)
Der Navigations- und der Bereich der Werkzeuge sind getrennt navigierbar. Ein
Navigationsschritt in einem Bereich hat keine automatische Anpassung in dem anderen Bereich
zur Folge.
Die Auswahl Voriges Objekt und Nächstes Objekt erlaubt eine unabhängige Vorwärts- und
Rückwärtsnavigation in den Werkzeugen. Diese Funktionen sind über die Drucktastenleiste und
vom Navigationsstapel aus, erreichbar und können für ein schnelles Umschalten zwischen zwei
Navigationszielen eines Stapels verwendet werden.
Bereitstellung von Listen mit Navigationszielen
Navigationsstapel [Seite 42]
Arbeitsvorrat [Seite 44]
Erhaltung des Navigationskontextes
Navigationskontext [Seite 43]
Vorwärtsnavigation in den Werkzeugen
Navigation mit Doppelklick [Seite 113]

40 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Funktionen der Objektliste

Funktionen der Objektliste


Die Baumanzeige der Objektliste verfügt über spezielle Navigationsfunktionen, die in einer
separaten Drucktastenleiste angeordnet sind. Sie erlauben einen schnellen Wechsel zwischen
den Navigationszielen, verschiedenen Hierarchieebenen der Objektliste und ermöglichen
darüber hinaus die Pflege von Favoriten.

Funktion Ikone Beschreibung


Vorige Objektliste Rückwärtsnavigation in der Objektlistenanzeige mit
Historie.
Nächste Objektliste Vorwärtsnavigation in der Objektlistenanzeige mit
Historie.
Alle Knoten expandieren Expadiert die Objeklistenanzeige vollständig.
Alle Knoten kompriemieren Kompriemiert die Objeklistenanzeige.
Übergeordnete Objektliste Bringt die übergeordnete Hierarchiestufe zur Anzeige.
Nach der Anzeige der Teilobjekte eines Programms wird
die Objektliste der zugeordneten Entwicklungsklasse
angezeigt.
Favoriten Erlaubt die Pflege von Favoriten. Die aktuell angezeigte
Objektliste kann direkt in die Favoritenliste aufgenommen
werden. Die Einträge der vorhandenen Favoritenliste
können auch bearbeitet werden.
Objektliste aktualisieren Zeigt die aktuelle Objektliste (nach Änderungen) an.
Änderungen, die im anderen Modus durchgeführt
werden, können so aktualisiert werden. Im gleichen
Modus wird die Aktualisierung automatisch nachgezogen.
Schließen Schließt den Navigationsbereich. Der Werkzeugbereich
nimmt anschließend das gesamte Bild ein.

Objektliste zu den Favoriten aufnehmen


1. Bringen Sie die aufzunehmende Objektliste im Navigationsbereich zur Anzeige.
2. Klicken Sie auf Favoriten
3. Wählen Sie dann Hinzufügen.
Eine bestätigende Meldung in der Statusleiste wird ausgegeben, sofern dieObjektliste
nicht schon in der Favoritenliste enthalten ist.

April 2001 41
BC - ABAP Workbench: Werkzeuge SAP AG
Navigationsstapel

Navigationsstapel
Die Schritte, die Sie im Object Navigator innerhalb einer Arbeitssitzung ausgeführt haben,
werden vom System automatisch in einem Navigationsstapel aufgezeichnet. Sie können diese
Aufzeichnung verwenden, um zu bestimmten Navigationsschritten der Sitzung zurückzukehren.
Der Navigationsstapel kann in einem separaten Fensterbereich angezeigt werden und gewährt
somit einen stets aktuellen Überblick über die Navigationsschritte im Object Navigator während
einer Sitzung.

Objekte über den Navigationsstapel auswählen


Klicken Sie zunächst auf in der Drucktastenleiste des Object Navigators, um den
Navigationsstapel anzuzeigen. In einem separaten Fensterbereich wird eine Liste mit
aufgezeichneten Navigationsschritten ausgegeben.

Sie können nun neben der Einzelschritt-Navigation Voriges Objekt und Nächstes Objekt einen
beliebigen Eintrag mit Doppelklick auswählen, um zum entsprechenden Objekt oder Teilobjekt
zurückzukehren. Damit ist auch ein gezielter Zugriff auf ein Navigationsziel durch Überspringen
mehrerer Schritte innerhalb eines Stapels möglich.

Die Aufzeichnung des Navigationsstapels ist nicht persistent und erlischt nach
Verlassen des Object Navigators. Ferner wird zu jedem internen Modus jeweils ein
separater Navigationsstapel gepflegt.

42 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Navigationskontext

Navigationskontext
Bei Naviagtion zwischen Entwicklungsobjekten bleibt der Navigationskontext erhalten, sofern es
sich entweder um Teilkomponenten einer globalen Klasse oder um Teilobjkete eines Programms
oder einer Funktionsgruppe handelt. Welche Auswirkungen dies hat, sei an einem Beispiel
erläutert.

Eine bereits implementierte Methode M1 (siehe Skizze) einer globalen Klasse wird
aus der Objektliste mit Doppelklick ausgewählt. Demzufolge wird der ABAP Editor
gestartet und die Methode im Anzeigemodus geöffnet. Ein nachfolgender Aufruf
einer weiteren Methode M2 derselben Klasse öffnet diese ebenfalls Anzeigemodus.
Schaltet man anschließend in den Änderundmodus um, so bedingt der nachfolgende
Aufruf einer weiteren Methode M3, daß deren Implementierung ebenfalls im
Änderungsmodus des Editors ausgegeben wird.

M1 Öffnen

Öffnen Ändern
M2

Öffnen
M3

Objektliste Methoden-Editor: Anzeigen Methoden-Editor: Ändern

April 2001 43
BC - ABAP Workbench: Werkzeuge SAP AG
Arbeitsvorrat

Arbeitsvorrat
Die Übernahme von Entwicklungsobjekten und ihrer Teilobjekte in den Arbeitsvorrat stellt eine
weitere Möglichkeit dar, die interessierenden Navigationsziele zusammenzustellen.
Der Arbeitsvorrat ist stets benutzerbezogen und wird durch eine Liste repräsentiert, welche die
interessierenden Objekte enthält. Diese Liste muß vom Benutzer explizit gefüllt werden.
Der Arbeitsvorrat kann mit dem Release 4.6C auch gesichert werden und geht nach der
Beendigung der Sitzung nicht verloren.
Sie können zum Beispiel nach erfolgreicher Suche über das Repository Infosystem ein Objekt in
Ihren Arbeitsvorrat übernehmen, um anschließend die Sie interessierenden Quelltextzeilen in Ihr
Programm zu kopieren.

Den Arbeitsvorrat können Sie auch verwenden, um Sprungmarken im Editor zu


setzen. Mehr dazu in Sprungmarken setzen [Seite 46].

Einträge in den Arbeitsvorrat übernehmen


Der Arbeitsvorrat kann auf folgende Weise gefüllt werden:
§ durch Übernahme des aktuell bearbeiteten Objekts über eine Menüfunktion
Öffnen Sie dazu das gewünschte Objekt im zugehörigen Werkzeug und wählen Sie die
Menüfunktion Hilfsmittel → Arbeitsvorrat → Aktuelles Objekt aufnehmen.
§ bei Auswahl der Operationen Anzeigen oder Ändern im Mengenmodus
Markieren Sie dazu mehrere Objekte in der Objektliste und wählen Sie über die rechte
Maustaste die Funktion Anzeigen oder Ändern. Siehe auch Mengenmodus verwenden
[Seite 35].
§ durch Ziehen mit Drag & Drop aus der Objektliste
Lassen Sie sich den Arbeitsvorrat anzeigen. Wählen Sie dazu die Menüfunktion
Hilfsmittel → Arbeitsvorrat → Anzeigen.
Markieren Sie ein oder mehrere Objekte bzw. Teilobjekte in der Objektliste und ziehen
Sie diese mit Drag & Drop in den zuvor geöffneten Arbeitsvorrat.

Einträge des Arbeitsvorrats sichern


Gehen Sie dazu wie folgt vor:
1. Falls der Arbeitsvorrat noch nicht angezeigt wird, wählen Sie die Menüfunktion Hilfsmittel →
Arbeitsvorrat → Anzeigen.
Der Arbeitsvorrat wird im separaten Dialogfenster angezeigt.
2. Überprüfen Sie, ob alle vorhandenen Einträge in einen persistenten Arbeitsvorrat
übernommen werden sollen.
3. Wählen Sie die entsprechende Ikone zum Sichern des Arbeitsvorrats.

44 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Arbeitsvorrat

Der explizit gesicherte Arbeitsvorrat ist über die aktuelle Sitzung hinaus persistent.

Sofern es bei den Einträgen des Arbeitsvorrats um globale Klassen, ihre Methoden,
Funktionsbausteine oder Unterprogramme handelt, können Sie diese auch
verwenden, um mit Drag and Drop Quelltextmuster in Ihr ABAP-Programm
einzufügen. Siehe auch Muster mit Drag and Drop einfügen [Seite 130].

April 2001 45
BC - ABAP Workbench: Werkzeuge SAP AG
Sprungmarken setzen

Sprungmarken setzen
Verwendung
Im ABAP Editor werden keine impliziten Marken gepflegt. Sie können jedoch explizite Marken
setzen, um zu bestimmten Zeilen im Quelltext innerhalb eines Programms oder über
verschiedene Programme hinweg zu navigieren. Dazu müssen Sie nur die betreffenden Zeilen in
den Arbeitsvorrat übernehmen.

Vorgehensweise
So legen Sie eine Sprungmarke an:
1. Positionieren Sie den Cursor auf der gewünschten Zeile im Quelltext.
2. Wählen Sie die Menüfunktion Hilfsmittel → Arbeitsvorrat → Aktuelles Objekt aufnehmen.

So navigieren Sie zu einer Sprungmarke:


4. Wählen Sie die Menüfunktion Hilfsmittel → Arbeitsvorrat → Anzeigen.
Der Arbeitsvorrat wird im separaten Fenster angezeigt.
5. Führen Sie einen Doppelklick auf den gewünschten Eintrag aus.
Der Editor gibt den entsprechenden Quelltext aus und setzt den Cursor auf diejenige
Zeile, die die Sprungmarke definiert.

Sie können die gesetzen Sprungamarken auch sichern. Siehe dazu "Einträge des
Arbeitsvorrats sichern" unter Arbeitsvorrat [Seite 44].

46 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Benutzerspezifische Einstellungen

Benutzerspezifische Einstellungen
Eine Vielzahl von benutzerspezifischen Optionen für die Entwicklungswerkzeuge der ABAP
Workbench können voreingestellt werden. Diese sind übersichtlich auf einem Tabstrip
angeordnet und in allen Werkzeugen aufrufbar. Die Änderungen der Einstellungen werden
persistent gesichert.

Aufruf
Benutzerspezifische Einstellungen können Sie vom Object Navigator und von jedem anderen
Werkzeug aufrufen. Wählen Sie dazu den Menüpfad Hilfsmittel → Einstellungen.

Einstellungen für die ABAP Entwicklungswerkzeuge

Werkzeug Einstellung Bedeutung


Workbench Hintergrundbild Das Einstiegbild des Object Navigators zeigt bei
allgemein anzeigen aktivierter Einstellung das Hintergrundbild an.
Diese Einstellung ist nur innerhalb eines LAN, nicht
jedoch im WAN wirksam.
Leeres Bild anzeigen Anzeige des Hintergrundbildes wird bei aktivierter
Einstellung unterdrückt.
ABAP Editor Fronted Editor Der Quellcode eines ABAP-Programms wird in
diesem Editor-Modus ans Frontend geladen und kann
dort lokal bearbeitet werden.
Siehe auch: Frontend Editor [Seite 100].
Backend Editor Der traditionelle, zeilenorientierte Backend-Editor.
Siehe auch: Backend Editor [Seite 103].
Nummerierung Die Auswahl Mit oder Ohne Zeilennumerierung ist nur
für den Table Control-Modus möglich und dient dem
Ein- bzw. dem Ausschalten der Zeilennummerierung
im Editor.
Komprimierung Für den Table Control-Modus können mit der Option
mit Komprimierungslogik logische Blöcke im ABAP-
Coding komprimiert dargestellt werden. Somit kann
eine übersichtliche Darstellung eines komplexen
ABAP-Programms erzielt werden. Siehe auch
Komprimierungslogik verwenden [Seite 115].
Pfad für lokales Festlegen des Pfades für lokales Editieren.
Editieren Unter dem angegebenen Pfad wird der aktuelle
Programmcode nach Auswahl der entsprechenden
Funktion heruntergeladen, zwischengespeichert und
in einem lokalen Editor aufgerufen.
Diese Option ist nur für den Table Control-Modus
wirksam.

April 2001 47
BC - ABAP Workbench: Werkzeuge SAP AG
Benutzerspezifische Einstellungen

Groß- Wird das Flag gesetzt, so hat dies ausschließlich


/Kleinkonvertierung Auswirkungen auf die Quelltextdarstellung im
im Anzeigemodus Anzeigemodus. Die Quelltextdarstellung bezüglich der
Groß-/Kleinschreibung wird dann dauerhaft für den
Anzeigemodus so gesetzt wie dies durch die
Einstellungen zum Pretty Printer unter Groß-
/Kleinkonvertierung durchführen festgelegt wurde.
Die Option Schlüßelwort groß im Pretty Printer wird
allerdings aus Performance-Gründen nicht unterstützt.
Wird dagegen diese Option nicht aktiviert, so kann
keine gesonderte Darstellung für den Anzeigemodus
angeboten werden. In diesem Fall stimmt die
Darstellungsweise im Anzeige- und Änderungsmodus
überein. Der Quelltext wird dann genauso
ausgegeben wie er auf der Datenbank abgelegt
wurde.
Pretty Printer Einrücken Führt Zeileneinrückungen im ABAP-Quelltext durch.
Zum Beispiel werden alle zu einem Ereignis
gehörenden Anweisungszeilen um 2 Positionen
eingerückt.
Siehe auch: Layout verbessern [Seite 134].
Groß- Möglichkeit, die Darstellung des Quelltextes zu
/Kleinkonvertierung normalisieren:
durchführen
§ Kleinschreibung (für den gesamten Quelltext, bis
auf Literale und Kommentare).
§ Großschreibung (für den gesamten Quelltext, bis
auf Literale und Kommentare).
§ Schlüsselwort groß (Hervorheben der ABAP
Schlüsselworte).
Beachten Sie, daß die Hervorhebung der ABAP-
Schlüsselworte, insbesondere bei langen
Programmtexten, laufzeit-intensiv sein kann.
Splitscreen Fensteranordnung Die zu vergleichenden Programme können in
horizontaler oder vertikaler Anordnung im
Splittscreen-Editor dargestellt werden.

48 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Benutzerspezifische Einstellungen

Vergleichsoperation Bei Auswahl der Option Einrückungen ignorieren zeigt


en das System Programmzeilen, die zwar unterschiedlich
weit eingerückt sind, jedoch den gleichen Inhalt
haben, als gleich an.
Bei Auswahl der Option Kommentare ignorieren zeigt
das System Programme, die sich bis auf die
Kommentarzeilen sowie Zeilen, die sich bis auf die mit
< " > angehängten Kommentare nicht unterscheiden,
als gleich an.
Die Option Groß/Klein ignorieren ist initial
voreingestellt.
Siehe auch Spezielle Splitscreen-Funktionen [Seite
202].
Class Builder Anzeigefilter Optionen für die Anzeige der Komponenten von
globalen Klassen oder Interfaces im Class Builder. Mit
Auswahl der Optionen kann die Standardanzeige
entweder erweitert oder weiter eingeschränkt werden
Scope-Filter Einschränkungen der Anzeige von Klassen-
Komponenten auf Instanz- oder auf statische
Komponenten.
Screen Painter Grafischer Layout Bei aktivierter Einstellung wird der grafische Layout
Editor Editor des Screen Painters aufgerufen, ansonsten der
alphanumerische Editor.
Menu Painter Ausgabelänge in der Option Funktionscode: Die Länge für die Eingabe
Statuspflege eines Funktionscodes in der Statuspflege des Menu
Painters kann in den Grenzen zwischen 4 bis maximal
20 Zeichen vorbelegt werden.
Ist der einzugebende Funktionscode länger als die mit
der Option angegebene Länge, so ist bei
Überschreitung das entsprechende Feld in der
Statuspflege nicht mehr eingabe-bereit.
Option Textlänge: Die Länge für die Eingabe eines
Funktionstextes zum Funktionscode in der
Statuspflege des Menu Painters kann zwischen 10 bis
maximal 40 Zeichen variieren. Ist der einzugebende
Text länger als die mit der Option angegebene Länge,
so ist bei Überschreitung das entsprechende Feld in
der Statuspflege nicht mehr eingabe-bereit.
Beachten Sie, daß diese benutzerspezifischen
Einstellungen nur in der Statuspflege des Menu
Painters gültig sind.

April 2001 49
BC - ABAP Workbench: Werkzeuge SAP AG
Benutzerspezifische Einstellungen

Frontendplattform Option Frontend: Die Funktionstastenzuordnung ist in


Abhängigkeit von der jeweiligen Plattform verfügbar.
Alle im Menu Painter gepflegten Funktionscodes sind
zwar plattform-unabhängig, nicht jedoch die
Bezeichnungen der Funktionstasten. Die Auswahl
einer Plattform bewirkt, daß die Funktionstasten im
Menu Painter gemäß der ausgewählten Plattform
bezeichnet werden.
Function Builder Beim Testen die Beim Aufruf der Testumgebung kann eine
Syntaxprüfung beim Syntaxprüfung der Funktionsgruppe durchgeführt
Testen werden, zu der der zu testende Funktionsbaustein
gehört.
Diese Prüfung ist standardmäßig ausgeschaltet, um
eine bessere Performance beim Aufruf der
Testumgebung zu erzielen.

50 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Integration von Internet-Services

Integration von Internet-Services


Im Rahmen der Initiative mySAP.com wurde seit dem Release 4.6C mit der Integration von
Internet Services in der ABAP Workbench begonnen. Web-Entwicklungsobjekte können somit
als Repository-Objekte angelegt und an ITS-Server publiziert werden.

Themen dieser Dokumentation


Web Application Builder [Seite 52]

Internet Service anlegen [Seite 53]

HTML-Templates anlegen [Seite 57]

HTML-Templates erweitern [Seite 60]

MIME-Objekte hinzufügen [Seite 62]

Sprachressourcen anlegen [Seite 64]

Service publizieren [Seite 66]

Service ausführen [Seite 67]

Benutzereinstellungen zum Internet-Service [Seite 69]


Tutorial: MiniApps implementieren [Seite 72]

Weterführende Dokumentation
HTMLBusiness-Sprachbeschreibung [Extern]
Internet-Anwendungen mit SAP Web Studio entwickeln [Extern]

April 2001 51
BC - ABAP Workbench: Werkzeuge SAP AG
Web Application Builder

Web Application Builder


Einsatzmöglichkeiten
Das Werkzeug Web Application Builder ermöglicht es Ihnen, innerhalb der ABAP Workbench
Web-Entwicklungsobjekte anzulegen. Bestehende R/3-Transaktionen benötigen diese Objekte
zur Ausführung als entsprechende Web-Transaktion im Web-Browser. Ferner können Sie den
Web Application Builder als integrierte Entwicklungsumgebung für MiniApps einsetzen.

Integration
Der Web Application Builder ist als Entwicklungswerkzeug vollständig in die ABAP Workbench
integriert. Die hier angelegten Web-Entwicklungsobjekte, wie Service-Files, HTML-Templates
und MIME-Objekte werden im R/3-Repository abgelegt und sind an das R/3 Change and
Transport System angeschlossen.

Funktionsumfang
• Anlegen von Internet Services zu bestehenden R/3-Transaktionen oder MiniApps.
• Implementieren der Dialoglogik.
• Generieren von HTML-Templates zu Dynpros von Transaktionen. Diese Templates enthalten
Business
Standard-HTML und HTML -Anweisungen, die das Dynpro-Layout nachahmen.
• Editieren des generierten HTML-Templates mit dem Sprachschatz von HTML und
Business
HTML , um sie individuell weiter zu entwickeln.
• Einbinden von MIME-Objekten (Ikonen, Grafiken, Java Applets, Animationen, …) als
zusätzliche Mittel zur Layoutgestaltung.
• Anlegen von sprachspezifischen Texten (Sprachressourcen).
• Publizieren der Services oder einzelner Service-Komponenten an den Internet Transaction
Server (ITS).
• Ausführen der kompletten Web-Anwendung, ausgehend von der ABAP Workbench.
• Anschluß an das Change and Transport System (CTS).
• Anschluß an die Versionsverwaltung.

Einschränkungen
Zur Zeit sind einige Funktionen noch nicht verfügbar:
• kein Syntaxcheck möglich

Business
derzeit ist noch kein Debuggeranschluß für HTML und die Flow-Logik gegeben.

52 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Internet-Service anlegen

Internet-Service anlegen
Verwendung
Um sich am R/3-System anzumelden und eine Web-Anwendung zu starten, benötigt der ITS
(Internet Transaction Server) einen entsprechenden Internet Service.
Ein solcher Service besteht aus einem Satz von Komponenten:
• Servicebeschreibung: Parameter zur Beschreibung, wie der Service ausgeführt wird. Hierzu
zählen vor allem Logon-Daten und eventuell Angaben zur Transaktion, die ausgeführt
werden soll.
• HTML-Templates: Sie können zu jedem Dynpro einer EWT ein HTML-Template anlegen und
somit für ein flexibles Layout sorgen.
• Sprachressourcen: Eine Sprachressource enthält alle Texte, die erforderlich sind, um einen
Service in einer bestimmten Sprache auszuführen. Sprachressourcen ermöglichen es also,
den Internet-Service sprachunabhängig zu halten.
• MIME-Objekte: Diese Objekte können aus Ikonen, Grafiken, Java Applets, Ton- und Video-
Komponenten bestehen und werden ergänzend zur Oberflächengestaltung verwendet.
Eine konkrete Instanz eines Services wird durch eine Theme festgelegt. Eine Theme ist jeweils
mit eigenem Satz von HTML-Templates, Sprachressourcen und MIME-Objekten ausgestattet
und verleiht einem Service ein spezifisches Aussehen. Die Funktionalität bleibt dabei
unverändert.

Voraussetzungen
Falls Sie ein Service zu einer R/3-Transaktion anlegen möchten, sollten Sie die Klassifikation
dieser Transaktion überprüfen und gegebenfalls ändern. Der Defaultwert für die Transaktionen
ist Professional User Transaction.

Vorgehensweise
So legen Sie im Einstiegsbild des Object Navigators einen neuen Internet-Service an.
19. Rufen Sie den Object Navigator (SE80) auf.
20. Wählen Sie die Kategorie Internet Service in der Objektlistenauswahl.
21. Geben Sie den Namen des anzulegenden Services an.
Beachten Sie, daß im Kundennamensraum alle Repository-Objekte mit Y oder mit Z
beginnen.

22. Klicken Sie auf oder bestätigen Sie mit ENTER.


Das System überprüft, ob ein Service mit dem eingegebenen Namen bereits im R/3-
System angelegt wurde. Falls dieser nicht existiert, erscheint ein Dialogfenster Objekt
anlegen.
23. Bestätigen Sie mit Ja, um den Service anzulegen.
Das Dialogfenster Service anlegen.
24. Falls es sich bei der Web-Anwendung um eine Web-Transaktion handelt, geben Sie den
Transaktionscode der zugehörigen R/3-Transaktion ein.

April 2001 53
BC - ABAP Workbench: Werkzeuge SAP AG
Internet-Service anlegen

Setzen Sie den Flag ITS-Mixed-Mode, wenn Sie nur zu ausgewählten Dynpros der R/3-
Transaktion HTML-Templates generieren möchten.
Für weitere Informationen siehe auch Mixed-Modus verwenden [Seite 56].

25. Wählen Sie .


Es erscheint das Dialogfenster Objektkatalogeintrag anlegen.
26. Ordnen Sie dem Service eine Entwicklungsklasse zu.

Ergebnis
Der Internet-Service wurde als Entwicklungsobjekt im R/3-Repository angelegt und in die
Baumanzeige der Objektliste aufgenommen. Die Theme 99 wird als die zur Zeit aktuelle Theme
dem angelegten Internet-Service zugeordnet.
Falls Sie im Schritt 6 eine R/3-Transaktion angegeben haben, wird der entsprechende Parameter
~TRANSACTION zum Service generiert. Wenn darüber hinaus den Flag ITS-Mixed-Mode
aktiviert haben, werden die zugehörigen Parameter mit aktuellen Werten vorbelegt.

Siehe auch:

54 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Internet-Service anlegen

Mixed-Modus verwenden [Seite 56]


HTML-Templates generieren [Seite 57]
Web-Anwendung publizieren [Seite 66]

April 2001 55
BC - ABAP Workbench: Werkzeuge SAP AG
Mixed-Modus verwenden

Mixed-Modus verwenden
Verwendung
Mit dem Mixed-Modus haben Sie die Möglichkeit, Templates und die automatische WebGUI-
Generierung gleichzeitig für ein und dieselbe Web-Transaktion einzusetzen. Dynpros ohne
Templates werden dann automatisch vom WebGUI generiert.
Falls dagegen ein Template zu einem Dynpro vorhanden ist, so benutzt der ITS dieses vorrangig
Business
und generiert für das empfangene Dynpro unter Verwendung der HTML -Funktionen aus
dem Template ein entsprechendes HTML-Dokument, bevor er es über den Web Server an den
Web Browser verschickt.
Der Einsatz des Mixed-Modus erlaubt Ihnen, Templates nur für ausgesuchte Dynpros oder
Subscreens einer Transaktion anzulegen. Dies ist insbesondere dann sinnvoll, wenn bestimmte
Dynpros oder Subscreens vom WebGUI nur fehlerhaft abgebildet werden oder wenn deren
Darstellung nicht Ihren Wünschen oder Anforderungen entspricht. Sie können dann an einzelnen
Dynpos oder Subscreens Verbesserungen am Layout vornehmen.

Voraussetzungen
Um die automatische Generierung von Dynpros innerhalb einer Transaktion mittels des WebGUI-
Mechanismus des ITS überhaupt zu ermöglichen, müssen einige Parameter zum Internet
Service hinzugefügt werden. Die automatische Generierung des ITS wird nämlich aus Gründen
der Abwärtskompatibilität nicht standardmäßig unterstützt.
Falls Sie beim Anlegen des Internet Services den Flag ITS-Mixed-Mode nicht gesetzt haben,
fügen Sie die folgenden Parameter und Werte manuell hinzu. Anderenfalls werden diese
Parameter beim Anlegen des Services generiert und mit gültigen Werten vorbelegt.
Parameter Wert Beschreibung
~generateDynpro 1 Einschalten des automatischen Generierungsmodus, sobald zu
einem Dynpro kein Template gefunden wurde.
~listscrolling 0 Simulation des Hinunter-Blätterns in List-Reports.
~popups 1 Zeigt Dialogfenster an, anstatt sie zu unterdrücken.
~style DHTML Gibt an, welcher Generator verwendet werden soll.
~autoscroll 0 Simulation des Hinunter-Blätterns für Step Loops und Table
Controls.

56 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
HTML-Templates anlegen

HTML-Templates anlegen
Verwendung
Wenn Sie eine MiniApp implementieren, müssen Sie HTML-Templates anlegen. Die Dialoglogik
läuft bei MiniApps nicht im R/3, sondern auf dem ITS.
Bei Transaktionen können Sie wählen, ob Sie überhaupt oder zu einzelnen (Mixed-Modus [Seite
56]) oder auch zu allen Dynpros einer Transaktion jeweils ein HTML-Template explizit generieren
lassen wollen. Die explizit angelegten Templates sind mit den HTML-Dokumenten identisch, die
aus der automatischen WebGUI-Generierung resultieren.
Die explizite Generierung von Templates bietet sich immer dann an, wenn Sie mit den
Möglichkeiten des WebGUI nicht auskommen und Erweiterungen gegenüber der
Standardgenerierung vornehmen möchten. Dies kann insbesondere dann der Fall sein, wenn Sie
eine Verbesserung des Layouts anstreben oder wenn Sie Hyperlinks einfügen möchten.

Der Großteil aller Web-Transaktionen sollte jedoch mit der Standardgenerierung des
WebGUIs auskommen. Der WebGUI kann die notwendigen Dynproelemente einer
einfach gestalteten Transaktion (Textfeld, Ein-/Ausgabefeld, Drucktasten, Auswahl- ,
Ankreuzfelder, Tabstrips, Table Controls, Subscreens, …) ohne den zusätzlichen
Aufwand eines Templates darstellen.

Voraussetzungen
§ Der zugehörige Internet-Service wurde bereits angelegt.
Business
§ Sie sind mit der Sprachsatz von HTML und HTML genügend vertraut, um die
Möglichkeiten des template-basierten Ansatzes zu nutzen.

Vorgehensweise
So legen Sie aus der Baumanzeige der Objektliste ein HTML-Template zu einem Internet
Service an:
8. Klicken Sie mit der rechten Maustaste den Service an.
9. Wählen Sie Anlegen → Template aus dem Kontextmenü.
Das Dialogfenster Template anlegen wird angezeigt.
10. Geben Sie die Theme zum Service an und nehmen Sie die weiteren Einstellungen vor.
Falls es sich bei der Web-Anwendung um eine Web-Transaktion handelt und Sie zu
einem bestimmten Dynpro ein Template generieren möchten, dann wählen Sie HTML
aus Dynpro generieren und geben Sie die Dynpronummer der Transaktion an.
Bei Anwendungen ohne Dynprobezug (MiniApps) wählen Sie dagegen Name des
Templates und geben Sie den Namen für das Template an.

April 2001 57
BC - ABAP Workbench: Werkzeuge SAP AG
HTML-Templates anlegen

11. Bestätigen Sie mit Sichern.


Es erscheint das Dialogfenster Objektkatalogeintrag anlegen.

12. Ordnen Sie dem Template eine Entwicklungsklasse zu und bestätigen Sie mit .

Ergebnis
Das generierte Template wird in die Baumanzeige der Objektliste unter Templates eingefügt und
der generierte Inhalt des Templates im Editor ausgegeben. Es werden nur die statischen Dynpro-
Business
Informationen ausgewertet, indem für jedes Dynpro-Element eine entsprechende HTML -
Funktion (blau hervorgehoben) in das Basis-Template eingefügt wird. Der Inhalt des Templates
Business
kann nun mit Standard-HTML und HTML -Anweisungen erweitert werden.

58 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
HTML-Templates anlegen

Siehe auch:
HTML-Tempaltes erweitern [Seite 60]
MIME-Objekte hinzufügen [Seite 62]
Service publizieren [Seite 66]

April 2001 59
BC - ABAP Workbench: Werkzeuge SAP AG
HTML-Templates erweitern

HTML-Templates erweitern
Nachdem Sie ein HTML-Template angelegt haben, können Sie die gewünschten Erweiterungen
am generierten Quelltext vornehmen.
Dazu sollten Sie jedoch mit Grundlagen von HTML und zusätzlich mit dem Sprachschatz von
Business
HTML vertraut sein.

Business
HTML ist eine von SAP entwickelte Erweiterung des Standard-HTML, um R/3-
Bilddaten mit Feldern auf HTML-Templates dynamisch abmischen zu können und
dem ITS die Datenübergabe zwischen dem R/3-System und dem Web Server zu
erleichtern.
Weitere Informationen finden Sie unter HTMLBusiness-Sprachbeschreibung
[Extern].

Beispiel
Im nachfolgenden Beispiel wird lediglich ein Hyperlink für eine bestimmte Position auf HTML-
Seite eingefügt:

Siehe auch:
Service publizieren [Seite 66]
MIME-Objekte hinzufügen [Seite 62]

60 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
HTML-Templates erweitern

April 2001 61
BC - ABAP Workbench: Werkzeuge SAP AG
MIME-Objekte hinzufügen

MIME-Objekte hinzufügen
Verwendung
MIME-Objekte (Ikonen, Grafiken, Audiodateien, Animationen, …) können Sie als weitere
Stilmittel zur Oberflächengestaltung in die Web-Anwendung einbinden.

Voraussetzungen
Der zugehörige Internet Service wurde bereits angelegt.

Vorgehensweise
So fügen Sie aus der Baumanzeige der Objektliste ein MIME-Objekt zu einem Internet-Service
hinzu:
13. Klicken Sie mit der rechten Maustaste den entsprechenden Service an.
14. Wählen Sie Anlegen → Mime aus dem Kontextmenü.
Es erscheint das Dialogfenster Von lokaler Datei einlesen

15. Geben Sie den Pfadnamen der zu übertragenden Datei an und passen Sie gegebenfalls den
Datenformat an.
16. Wählen Sie Übertragen.
Das Dialogfenster Mime anlegen wird angezeigt.
17. Geben Sie die Theme und ändern Sie eventuell den Namen für das MIME-Objekt ab.
Im Eingabefeld Name können Sie auch einen Unterverzeichnis anlegen, welches durch
einen Schrägstrich " / " vom Namen des MIME-Objektes getrennt wird.

18. Bestätigen Sie mit .


Es erscheint das Dialogfenster Objektkatalogeintrag anlegen

62 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
MIME-Objekte hinzufügen

19. Ordnen Sie dem MIME-Objekt eine Entwicklungsklasse zu und bestätigen Sie mit .

Ergebnis
Das eingefügte MIME-Objekt wurde als eigenständiges Objekt ins R/3-Reposistory
aufgenommen. In der Baumanzeige der Objektliste wird es unter Mimes eingefügt und der Inhalt
(bei Grafiken) angezeigt.
Sie können nun dieses Objekt bei der Gestaltung der Oberfläche der generierten HTML-
Templates verwenden.

Nach dem Publizieren werden die MIME-Objekte nicht in einem ITS-Verzeichnis,


sondern im Verzeichnis des HTTP-Servers abgelegt und sind dort unter dem im
Schritt 5 angegebenen Namen (und Unterverzeichnis) zu finden.
Siehe auch:
Web-Anwendung publizieren [Seite 66]

April 2001 63
BC - ABAP Workbench: Werkzeuge SAP AG
Sprachressourcen anlegen

Sprachressourcen anlegen
Verwendung
Eine Sprachressource enthält alle sprachspezifischen Anteile einer Theme einenes Internet-
Services und versetzt Sie in die Lage Ihre Web-Anwendung sprachunabhängig zu halten. Ein
weiter Vorteil gegenüber hart kodierten Texten im HTML-Template besteht in einer verbesserten
Lesbarkeit und Wartbarkeit des Quelltextes.
Für jeden sprachspezifischen Text auf Ihrer Web-Oberfläche fügen Sie entsprechende
Platzhalter in den HTML-Templates ein (ähnlich wie bei den Textelementen zu einem ABAP-
Programm). Die eigentlichen Texte dagegen werden über die gleichnamigen Theme-Parameter
gepflegt. Zur Laufzeit erkennt der ITS die Platzhalter zu jedem Template und ersetzt sie mit dem
Text in der jeweiligen Anmeldesprache.

Voraussetzungen
Die HTML-Templates zum Internet-Service sind bereits angelegt.

Vorgehensweise
Platzhalter zu einem HTML-Template hinzufügen
1. Öffnen Sie das betreffende Template.
2. Fügen Sie die Platzhalter für die sprachspezifischen Texte innerhalb des HTML-Quelltextes
ein.
Verwenden Sie dabei die folgende Syntax: `#Platzhalter`

Im nachfolgenden Beispiel wurden im Quelltext 3 Platzhalter (`#windowtitle`,


`#text001` und `#action`) definiert.

64 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Sprachressourcen anlegen

Sprachspezifische Texte angeben


1. Doppelklicken Sie auf die Theme.
2. Führen Sie in der Spalte Parametername die jeweilgen Platzhalter (ohne # ) auf und geben
Sie die sprachspezifischen Texte der Orginalsprache als Wert an.

Ergebnis
Die angelegten Theme-Parameter sind Bestandteil des Services. Als übersetzungsrelevanter
Anteil dieses R/3 Repository-Objektes gelangen sie nach der Freigabe in den Arbeitsvorrat der
Übersetzung.
Wenn Sie den Service in der Orginalsprache starten, zeigt das obige Beispiel die folgende
Oberfläche an.

Falls keine Übersetzung dieser sprachspezifischen Texte in der Anmeldesprache


vorhanden ist, wird bei der Ausführung des Services an den betreffenden Stellen
kein Text ausgeben.

April 2001 65
BC - ABAP Workbench: Werkzeuge SAP AG
Service publizieren

Service publizieren
Verwendung
Damit ein in der Workbench angelegter Internet-Service vom ITS überhaupt ausgeführt werden
kann, muß er zunächst im ITS-Filesystem abgelegt werden. Dieser Vorgang wird mit Publizieren
bezeichnet. Dabei können Sie sowohl den gesamten Service als auch einzelne Komponenten
publizieren. Beim Publizieren des gesamten Services werden der zugehörige Internet-Service
und die HTML-Templates ins Filesystem des AGate-Rechners, die MIME-Objekte dagegen ins
Filesystem des WGate-Rechners kopiert.

Beachten Sie, daß der Internet-Service standardmäßig an alle angeschlossenen


ITS-Server publiziert wird. Sie können aber auch eine Auswahl einzelner, dem R/3-
System zugeordneter ITS-Server vornehmen. Wählen Sie hierfür die Menüfunktion
Hilfsmittel → Einstellungen und wählen Sie anschließend unter den Einstellungen
zum ITS den gewünschten ITS-Server aus. Weitere Informationen finden Sie unter
Benutzereinstellungen [Seite 69].

Voraussetzungen
Mindestens ein ITS-Server wurde bereits dem betreffenden R/3-System zugeordnet und ist zum
Zeitpunkt des Publizierens aktiv.

Vorgehensweise
So publizieren Sie aus der Baumanzeige der Objektliste den gesamten Internet Service:
20. Klicken Sie den entsprechenden Service mit der rechten Maustaste an.
21. Wählen Sie Publizieren → Gesamter Service aus dem Kontextmenü.
Sofern irgendwelche Fehler beim Publizieren an irgendeinen ITS-Server auftreten, wird
ein Protokoll mit entsprechenden Meldungstexten ausgegeben.
Falls keine Fehler auftreten, wird in der Statusleiste die Meldung Das Objekt wurde
erfolgreich publiziert ausgegeben.

Ergebnis
Nachdem Sie den gesamten Service erfolgreich publiziert haben, können Sie die Web-
Anwendung starten.
Siehe auch:
Benutzereinstellungen zum Internet-Service [Seite 69]
Service ausführen [Seite 67]

66 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Service ausführen

Service ausführen
Verwendung
Diese Funktionen verwenden Sie, um ausgehend von der ABAP Workbench die Web-
Anwendung (Web-Transaktion oder Mini App) zu testen.

Voraussetzungen
Der gesamte Internet Service wurde erfolgreich an den ITS-Server publiziert. Der ITS-Server ist
zur Zeit aktiv.

Vorgehensweise
So starten Sie die Web-Anwendung aus dem Object Navigator heraus:
1. Klicken Sie den entsprechenden Service an.
2. Wählen Sie Taste Service ausführen auf der Drucktastenleiste
Der Web-Browser wird gestartet und eventuell ein Logon-Fenster angezeigt.
3. Wählen Sie gegebenfalls eine andere Anmeldesprache aus und melden Sie mit Logon am
ITS an.
4. Führen Sie die Web-Anwendung aus.

Sie haben die Möglichkeit, das Logon-Fenster zu unterdrücken, wenn Sie den
Service-Paramter ~LANGUAGE pflegen und ihn mit einem Wert (z.B. EN)
vorbelegen.

Ergebnis
Der Service wird über die HTTP-Adresse http://<ITS>:<Port>/scripts/wgate/<service>/!
gestartet.

April 2001 67
BC - ABAP Workbench: Werkzeuge SAP AG
Service ausführen

Die Darstellung einer Web-Transaktion hängt von der Klassifikation der


zugrundeliegenden R/3-Transaktion. So werden nur bei einer Transaktion vom Typ
Professional User Transaction der Standard R/3- Header mit CUA-Menüs,
Funktionscode-Feld, der Symbol- und Drucktastenleiste im Web Browser
ausgegeben. Transaktionen vom Typ Easy Web Transaction (EWT) hingegen
werden mit einem speziellen EWT-Header angezeigt.

68 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Benutzereinstellungen zum Internet-Service

Benutzereinstellungen zum Internet-Service


Verwendung
Sie können die Einstellungen zum ITS verwenden,
§ um festzustellen, welche ITS-Serverinstanzen dem SAP-System zugeordnet sind.
§ um die Auswahl der ITS-Serverinstanzen für das Publizieren der Services auf eine einzelne
Serverinstanz einzuschränken.
§ um den Namen des Standard Web-Servers zum Starten des Services zu erfahren.
§ um eventuell einen anderen (gültigen) Web-Server anstelle des Standard Web-Servers
anzugeben.

Aktivitäten
Um ITS-Einstellungen zu ändern, gehen Sie wie folgt vor:
1. Wählen Sie den Menüpfad Hilfsmittel → Einstellungen.
2. Unter dem Tabreiter ITS wählen Sie die gewünschte Filtereinstellung aus und ändern Sie
diese.
3. Bestätigen Sie mit .

Die neuen Einstellungen wirken sich auf alle nachfolgenden Publizierungsaktionen


aus.

Filtereinstellungen
Einstellung Bedeutung

Web-Server Standard Web- Der Name des Web-Servers, der standardmäßig


(Hostname) Server zum Starten des Services im aktuellen SAP-
System verwendet wird.
für Testausfrufe
Dieser Name leitet sich aus dem entsprechenden
Eintrag in der Customizig-Tabelle TWPURLSVR
(Transaktion SM30) ab.
Falls diese Einstellung keine Angabe enthält,
dann wurde der Name des Web-Servers noch
nicht in der SM30 gepflegt. In diesem Fall sollten
Sie den Systemadministrator benachrichtigen,
sofern Sie keine Pflegeberechtigung haben.

April 2001 69
BC - ABAP Workbench: Werkzeuge SAP AG
Benutzereinstellungen zum Internet-Service

Anderer ITS-Web- Unabhägig vom Standard Web-Server können


Server Sie einen gültigen Namen eines beliebigen Web
Servers in diesem Eingabefeld angeben.

Beachten Sie jedoch die Zuordnung des Web-


Servers zum SAP-System. Wenn Sie nämlich
einen Web-Server angeben, der zur ITS-
Serverinstanz eines anderen SAP Systems
zugeordnet wurde, veranlassen Sie, daß der
Service auf einem anderen SAP-System
gestartet wird als auf dem er publiziert wurde.

Publizieren auf alle ITS- Der Service wird an alle dem SAP-System
Server/Instanzen zugeordneten ITS-Serverinstanzen publiziert.
Die Meldung über ein erfolgreiches Publizieren
wird nur dann ausgegeben, wenn an alle
zugeordneten ITS-Serverinstanzen erfolgreich
publiziert werden konnte. Tritt jedoch an
irgendeiner Instanz ein Fehler auf, dann wird
dies in einem Fehlerprotokoll vermerkt.

auf <einzelne Mit der Auswahl einer ITS-Instanz aus der


Instanzen> Listbox schränken Sie das Publizieren nur auf
diese ITS-Instanz ein.
Der Name der ITS-Instanz leitet sich aus
Angaben zur RFC Destination ab, wie sie in der
SM30 gepflegt wurde.
Falls die Listbox keine Einträge enthält, so
wurde bisher keine entsprechende Destination
angelegt. Für die Destinationspflege rufen Sie
die Transaktion SM30 auf, geben dort den View
IACORDES an und legen Sie dann die RFC-
Destination an.
Falls Sie jedoch keine Pflegeberechtigung
haben, benachrichtigen den
Systemadministrator.

70 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Benutzereinstellungen zum Internet-Service

April 2001 71
BC - ABAP Workbench: Werkzeuge SAP AG
Tutorial: MiniApps implementieren

Tutorial: MiniApps implementieren


Aufgabenstellung
Es soll eine einfache MiniApp für die Anzeige aller Flugverbindungen zwischen einem beliebigen
Start- und Zielflughafen im Web Application Builder angelegt, implementiert und ausgeführt
werden.
Die Dialoglogik ist mittels Flow-Logik zu realisieren.
Die Business-Logik ist bereits im BAPI GetList des Business-Objektes FlightConnection
implementiert.

Überblick: Lerninhalte
In diesem Tutorial lernen Sie
 Internet-Services für MiniApps anzulegen.
 einfache HTML-Templates anzulegen und mittels HTML- und HTML
Business
-Quelltext zu
definieren.
 die Dialoglogik zu den Templates mittels Flow-Logik zu implementieren.
 den Service auf dem ITS zu publizieren und auszuführen.
 die Zuordung zu Komponenten der ITS-Architektur und deren Zusammenspiel kennen.

Voraussetzungen
Systeme und Installationen
SAP-System mit Release 4.6C (oder höher).
Ein erfolgreiches Testen der MiniApp setzt ferner voraus, daß das SAP-System über
entsprechende Business-Daten verfügt.
Der Internet Transaction Server ist installiert und dem SAP-System zugeordnet.
Ein Standard Web-Server zum Starten der Internet-Services im aktuellen SAP-System ist
installiert und dem ITS-Server zugeordnet.

Kenntnisse und Berechtigungen


Business
Grundkenntnisse in HTML und HTML sind von Vorteil.
Grundverständnis der Flow-Logik ist von Vorteil.
Schnittstellendefinition des BAPIs GetList zum Business-Objekt FlightConnection wurde
ermittelt (Transaktion BAPI).

Fortsetzung
Schritt 1: User Interface Design entwerfen [Seite 75]

72 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Komponenten der Architektur

Komponenten der Architektur


Die nachfolgende Abbildung stellt die wesentlichen Komponenten im ITS-Umfeld dar, die bei der
Ausführung einer MiniApp als Standalone-Anwendung (ohne Einbindung in die Workplace-
Architektur) eine Rolle spielen. Ferner können Sie anhand der Architektur die einzelnen Schritte
der Ablaufsequenz nachvollziehen, die nach der Dateneingabe im Einagbeformular bis zum
Eintreffen der Ausgabeliste auf dem Web-Browser erfolgen.

ITS-Architektur (ohne Workplace-Integration)

Web-Serverprozess SAP-System
Frontend

Web-
Server
Web- Internet Transaction Server
Browser 1 2 3 4

AGate
WGate
9 8 7 6 5

Web-Seiten Templates

Erläuterungen
Der Web-Browser sendet nach Eingabe der Daten eine HTTP-Anforderung an den Web-Server
(1).
Der Web-Server ruft den WGate auf (2), der wiederum diese Anforderung an den ITS-
Serverprozess, den AGate weiterleitet (3).
AGate lädt den zugehörigen Service und öffnet die Verbindung zum SAP-System. Über den
entsprechenden Kontext werden die Daten zum Applikationsserver des SAP-Systems geschickt
(4).

April 2001 73
BC - ABAP Workbench: Werkzeuge SAP AG
Komponenten der Architektur

Im SAP-System findet der BAPI-Aufruf statt. Die resultierenden Ausgabedaten werden zunächst
an den AGate des ITS-Servers übergeben (5).
Das AGate sucht das passende HTML-Template aus und mischt die Ausgabedaten über einen
Interpreter ins Template ein (6).
Die resultierende formatierte Web-Seite wird an den WGate weitergeleitet (7) und dann über den
Web-Server (8) an den Web-Browser übergeben (9). Der Browser bringt schließlich die
Ergebnisse des BAPI-Aufrufs zur Ansicht.

74 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Schritt 1: User Interface Design entwerfen

Schritt 1: User Interface Design entwerfen


Die zu implementierende MiniApp soll lediglich eine Übersicht zu allen Flugverbindungen
zwischen einem beliebigen Start- und Zielflughafen liefern.
Das entsprechende Eingabeformular besteht aus 4 Eingabefeldern für alle obligatorischen
Inputparameter des BAPIs. Die Ausgabe der Flugdaten wird über eine Drucktaste ausgelöst und
erfolgt auf einer separaten Web-Seite.

Von Frankfurt Land DE

Nach New York Land US

Flugverbindungen

Flüge …

Flug ID Flugverb. Flugdatum Abflugzeit

Fazit:
Es ist eine Anwendung mit einem Bildwechsel zu realisieren, die nur wenige Bereiche auf jeder
Seite enthält und sich durch eine einfache, sequentielle Navigation und intuitive Bedienung
auszeichnet.

Fortsetzung
Schritt 2: Service anlegen [Seite 76]

April 2001 75
BC - ABAP Workbench: Werkzeuge SAP AG
Schritt 2: Service anlegen

Schritt 2: Service anlegen


Verwendung
Um eine MiniApp zu starten und sich am SAP-System anzumelden, benötigt der ITS einen
entsprechenden Service. Das Servicefile wird in der SE80 durch ein Entwicklungsobjekt vom Typ
Internet Service repräsentiert. Für die Zuordnung der MiniApp zu einem Service wird zusätzlich
noch ein Satz von spezifischen Parametern benötigt.

Vorgehensweise
So legen Sie einen neuen Internet-Service für die MiniApp an.
27. Rufen Sie den Object Navigator (SE80) auf.
28. Wählen Sie die Kategorie Internet Service in der Objektlistenauswahl.
29. Geben Sie den Namen des anzulegenden Services an.

30. Klicken Sie auf oder bestätigen Sie mit ENTER.


Das System überprüft, ob ein Service mit dem eingegebenen Namen bereits im R/3-
System angelegt wurde. Falls dieser nicht existiert, erscheint ein Dialogfenster Objekt
anlegen.
31. Bestätigen Sie mit Ja, um den Service anzulegen.
Das Dialogfenster Service anlegen wird angezeigt:

32. Wählen Sie Sichern.


Es erscheint das Dialogfenster Objektkatalogeintrag anlegen.
8. Ordnen Sie dem Service eine Entwicklungsklasse zu.
Der angelegte Service wird in die Baumanzeige der Objektliste aufgenommen.
Standardmäßig wird die Theme 99 als die derzeit aktuelle Theme dem Service
automatisch zugeordnet.
9. Doppelkicken Sie auf den neuen Service.
10. Schalten Sie in den Änderungsmodus um und klicken Sie den Tabreiter Parameter an.
11. Fügen Sie die unten angegebenen Parameter und Werte ein:

76 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Schritt 2: Service anlegen

Über die Werthilfetaste erhalten eine Auflistung aller Service-Parameter inclusive


ihrer Kurzbeschreibung.
Parameter Wert Beschreibung
~INITIALTEMPLATE <Name des Frei wählbarer Name des HTML-
Templates> Templates, mit dem die MiniApp
gestartet wird.
z.B. initial
Der Parameter ist obligatorisch für
MiniApps.
~WEBAPPLICATIONTYP miniapp Typ des Services.
E
Der Parameter ist obligatorisch für
MiniApps.
~XGATEWAY sapxginet Name des X Gateways.
Der Parameter ist obligatorisch für
MiniApps.
~LOGIN Der Parameter für den Benutzernamen
wird ohne Wert eingetragen.
~PASSWORD Der Password-Parameter wird ebenfalls
ohne Wert eingetragen.

Es ist erforderlich die beiden Service-Parameter ~LOGIN und ~PASSWORD ohne


Wert einzutragen, damit bei der späteren Einbindung der MiniApp im Workplace der
Cookie-Benutzer gezogen wird. (Bei der Anmeldung am Workplace werden Benutzer
und Passwort am Frontend in einem Cookie gespeichert, um damit den Single Sign-
On zu ermöglichen.)
Diese beiden Parameter führen dazu, daß das Testen der MiniApp als Standalone-
Anwendung (im Schritt 7 des Tutorials) mit einer Anmeldung verbunden ist.

12. Wählen Sie .

Ergebnis
Der Internet-Service wurde als Entwicklungsobjekt im R/3-Repository abgelegt.
Die Theme 99 wird als die derzeit aktuelle Theme zum Service angelegt. Die zusätzlich
definierten Parameter legen den Typ des Services fest und die Art wie dieser vom ITS ausgeführt
wird. In unserem Beispiel handelt es um die Ausführung einer MiniApp, die mit dem Tempalte
initial über den X Gateway sapxginet gestartet wird.

April 2001 77
BC - ABAP Workbench: Werkzeuge SAP AG
Schritt 2: Service anlegen

Fortsetzung
Schritt 3: HTML-Templates anlegen [Seite 79]

78 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Schritt 3: HTML-Templates anlegen

Schritt 3: HTML-Templates anlegen


Verwendung
Zu jeder MiniApp müssen HTML-Templates angelegt werden, um die entsprechenden Web-
Seiten zu realisieren. Jedes Template ist mit einem Layout und einer Dialoglogik zu vesehen. In
unserem Beispiel ermöglicht die MiniApp einen Seitenwechsel. Demzufolge sind zwei Tempaltes
anzulegen.

Voraussetzungen
Der Internet-Service wurde bereits angelegt.

Vorgehensweise
So legen Sie aus der Objektliste die HTML-Templates zum Service an:
22. Klicken Sie mit der rechten Maustaste den Service an.
23. Wählen Sie Anlegen → Template aus dem Kontextmenü.
Das Dialogfenster Template anlegen wird angezeigt.
24. Geben Sie die Theme zum Service an und geben Sie unter Name des Templates den
Namen für das erste Template an (Vorschlag: INITIAL). Dieser Name stimmt mit dem
Parameterwert von ~INITIALTEMPLATE überein.

25. Bestätigen Sie mit Sichern.


Es erscheint das Dialogfenster Objektkatalogeintrag anlegen.

5. Ordnen Sie dem Template eine Entwicklungsklasse zu und bestätigen Sie mit .
6. Wiederholen Sie die Schritte 1-5 für das zweite Template. Geben Sie im Schritt 3 den Namen
für das Template (Vorschlag: RESULTS ) an.

April 2001 79
BC - ABAP Workbench: Werkzeuge SAP AG
Schritt 3: HTML-Templates anlegen

Ergebnis
Die angelegten Templates werden in die Baumanzeige der Objektliste eingefügt und der
Business
vorgenerierte Rahmen für den HTML- bzw. HTML -Quelltext im Editor ausgegeben.

Fortsetzung
Schritt 4: Layout definieren [Seite 81]

80 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Schritt 4: Layout definieren

Schritt 4: Layout definieren


Voraussetzungen
§ Die HTML-Templates wurden bereits angelegt.
§ Die Schnittstellendefinition des BAPIs ist bekannt.
Business
§ Sie sind mit Grundlagen von HTML und HTML ausreichend vertraut, um ein einfaches
Layout für die Web-Seiten zu realisieren.

Vorgehensweise
Für das erste Template (INITIAL) fügen Sie zwischen den Tags <body> </body> die folgende
Formulardefinition ein:

April 2001 81
BC - ABAP Workbench: Werkzeuge SAP AG
Schritt 4: Layout definieren

<!-- Form definition -->


<form ACTION="`wgateURL()`" METHOD="POST">
<br>
<table>
<tr>
<td>Von &nbsp </td>
<td><INPUT TYPE="TEXT" NAME="FromCity" Value="FRANKFURT"></td>
<td> &nbsp Land &nbsp
<INPUT TYPE="TEXT" NAME="FromCountry" Value="DE"SIZE=2
MAXLENGTH=2>
</td>
</tr>
<tr>
<td>Nach &nbsp </td>
<td><INPUT TYPE="TEXT" NAME="ToCity" Value="NEW YORK"></td>
<td> &nbsp Land &nbsp
<INPUT TYPE="TEXT" NAME="ToCountry" Value="US" SIZE=2
MAXLENGTH=2></td>
</tr>
<tr>
<td colspan=3> <br> <br>
<!-- To raise a Flow Logic event clicking on the button -->
<INPUT TYPE="SUBMIT" NAME="~Event" VALUE="Flugverbindungen">
</td>
</tr>
</table>
</form>

Für das zweite Template (RESULTS) fügen Sie zwischen den Tags <body> </body> den
folgenden Quelltext ein:

82 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Schritt 4: Layout definieren

<!-- BAPI RETURN message in case of error -->


`if ( RETURN-TYPE == "E" )`
`RETURN-MESSAGE`
`else`
<br>
Flüge von `FromCity` (`FromCountry`) nach `ToCity`
(`ToCountry`):<br> <br>
`end`
<!-- Listing output data -->
<table border=0 cellspacing=0>
<tr>
<th>Flug ID</th> <th>Flugverbindung</th> <th>Flugdatum</th>
<th>Abflugzeit</th>
</tr>
`repeat with I from 1 to FLIGHTLIST-CARRID.dim`
<tr>
<td width=40 align=center> `FLIGHTLIST-CARRID[i]`</td>
<td width=60 align=center> `FLIGHTLIST-CONNID[i]`</td>
<td width=80 align=center> `FLIGHTLIST-FLDATE[i]`</td>
<td width=80 align=center> `FLIGHTLIST-DEPTIME[i]`</td>
</tr>
`end`
</table>

Ergebnis
Sie haben eine einfache Darstellung der Oberfläche der beiden Templates (ohne Dialoglogik)
Business
mittels HTML und HTML definiert.

Fortsetzung
Schritt 5: Flow-Logik implementieren [Seite 84]

April 2001 83
BC - ABAP Workbench: Werkzeuge SAP AG
Schritt 5: Flow-Logik implementieren

Schritt 5: Flow-Logik implementieren


Verwendung
Die Sprachelemente der Flow-Logik verwenden Sie, um zu jedem Template die zugehörige
Dialoglogik zu implementieren. Mittels dieser Logik sind Sie in der Lage den BAPI-Aufruf
abzusetzen. Flow-Logik ermöglicht ferner einen impliziten Datentransfer vom BAPI zum HTML-
Template (und umgekehrt) und bestimmt auch wie Templates mit Daten gefüllt werden.

Voraussetzungen
§ Die beiden HTML-Templates wurden bereits angelegt.
§ Sie sind mit dem grundlegenden Ablaufschema der Flow-Logik vertraut.

Vorgehensweise
1. Klicken Sie das Initialtemplate (INITIAL) in der Baumanzeige der Objektliste an.
2. Wählen Sie die Funktion Flow-Logik anlegen aus der Drucktastenleiste.
3. Für das erste Template (INITIAL) definieren Sie die Flow-Logik wie folgt:
<flow>
<event name = "Flugverbindungen" next_template="results">
</event>
</flow>

Wiederholen Sie die Schritte 1-3 für das zweite Template (RESULTS) und definieren Sie die
Dialoglogik wie folgt:

84 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Schritt 5: Flow-Logik implementieren

<flow>
<state name="GetList">
<module name="BAPI_SFLIGHT_GETLIST" type="RFC">
<inputmapping source="FromCountry" target="FROMCOUNTRYKEY" />
<inputmapping source="FromCity" target="FROMCITY" />
<inputmapping source="ToCountry" target="TOCOUNTRYKEY" />
<inputmapping source="ToCity" target="TOCITY" />
</module>
</state>
<event name = "onLoad" next_state = "GetList">
</event>
</flow>

Sie können alternativ zum Typ "RFC" beim Modulaufruf auch den Typ "BOR"
verwenden. In einem solchen Fall müßten Sie "FlightConnection.GetList" als
den Namen des Moduls angeben.

Ergebnis
Sie haben die Dialoglogik zu den beiden HTML-Templates vollständig implementiert und können
nunmehr den gesamten Service an den ITS-Server publizieren.

Fortsetzung
Schritt 6: Service publizieren [Seite 86]

April 2001 85
BC - ABAP Workbench: Werkzeuge SAP AG
Schritt 6: Service publizieren

Schritt 6: Service publizieren


Verwendung
Damit der in der Workbench angelgte Internet-Service vom ITS überhaupt ausgeführt werden
kann, muß er (einschließlich aller Teilobjekte) ins ITS-Filesystem kopiert werden. Sie erreichen
dies, indem Sie den gesamten Service publizieren.

Voraussetzungen
Mindestens eine ITS-Serverinstanz wurde bereits dem betreffenden SAP-System zugeordnet
und ist zum Zeitpunkt des Publizierens aktiv.

Welche ITS-Serverinstanzen Ihrem System zugeordnet sind, können Sie den


Benutzereinstellungen entnehmen. Siehe auch Benutzereinstellungen zum Internet-
Service [Seite 69].

Vorgehensweise
So publizieren Sie aus der Baumanzeige der Objektliste den gesamten Internet-Service:
26. Klicken Sie den entsprechenden Service mit der rechten Maustaste an.
27. Wählen Sie Publizieren → Gesamter Service aus dem Kontextmenü.

86 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Schritt 6: Service publizieren

Ergebnis
Falls keine Fehler auftreten, wird in der Statusleiste die Meldung Das Objekt wurde erfolgreich
publiziert ausgegeben.
Nachdem Sie den gesamten Service erfolgreich publiziert haben, können Sie die MiniApp
starten.

Fortsetzung
Schritt 7: MiniApp ausführen [Seite 88]

April 2001 87
BC - ABAP Workbench: Werkzeuge SAP AG
Schritt 7: MiniApp ausführen

Schritt 7: MiniApp ausführen


Zum Testen der MiniApp wird sie als Standalone-Anwendung (ohne Einbindung in die
Workplace-Architektur) ausgeführt.

Voraussetzungen
Der gesamte Internet-Service wurde erfolgreich publiziert. Der Web-Server und der ITS-Server
sind zum Zeitpunkt der Ausführung aktiv.

Vorgehensweise
So starten Sie die MiniApp aus dem Object Navigator heraus:
5. Klicken Sie den entsprechenden Service an.
6. Wählen Sie Service starten aus dem Kontextmenü (oder F8).
Der Web-Browser wird gestartet und ein Logon-Fenster angezeigt.
7. Geben Sie den Benutzer und das Password ein und melden Sie sich mit Logon am ITS-
Server an.

Ergebnis
Der Service wird über die HTTP-Adresse http://<web_server><web_path_prefix>/<service>/!
gestartet und die erste Web-Seite der MiniApp im Web-Browser angezeigt.

Mit der Drucktaste Flugverbindungen lösen Sie ein Event der Flow-Logik aus, das wiederum den
BAPI-Aufruf antriggert. Das Resultat des BAPI-Aufrufs wird in das Ausgabe-Template
eingemischt und auf nächsten Web-Seite der MiniApp zur Anzeige gebracht.

88 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Schritt 7: MiniApp ausführen

Wie sich die einzelnen Schritte beim Testaufruf der MiniApp in der ITS-Architektur
wiederspiegeln, ersehen Sie unter Komponenten der Architektur [Seite 73].

April 2001 89
BC - ABAP Workbench: Werkzeuge SAP AG
ABAP Workbench: Werkzeuge

ABAP Workbench: Werkzeuge


Übersicht und Navigation
Object Navigator [Seite 18]

Überblick über die Workbench [Seite 92]

Information zu Repository-Objekten [Seite 496]


Entwicklung von Web-Entwicklungsobjekten
Web Application Builder [Seite 52]
ABAP-Entwicklung
ABAP Dictionary [Extern]

ABAP Editor [Seite 98]

Class Builder [Seite 206]

Function Builder [Seite 406]

Screen Painter [Seite 265]

Menu Painter [Seite 357]

Context Builder [Extern]


Programmierumfeld
Textelementpflege [Seite 142]

Variantenpflege [Seite 164]

Splitscreen-Editor [Seite 198]

Pflege von Nachrichtenklassen [Seite 193]


Testwerkzeuge in der ABAP-Entwicklung
ABAP Debugger [Seite 443]

Laufzeitanalyse [Seite 446]

Performance-Trace [Seite 449]


Weitere Werkzeuge
Bereichsmenüpflege (ab Rel. 4.6A) [Seite 394]

Transaktionspflege [Extern]
Modifikationen

90 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
ABAP Workbench: Werkzeuge

Modifikationsassistent [Extern]
Siehe auch:

Weiterführende Dokumentation im Umfeld der ABAP-Programmierung [Seite 97]

April 2001 91
BC - ABAP Workbench: Werkzeuge SAP AG
Überblick über die Workbench

Überblick über die Workbench


Dieser Teil der Dokumentation führt Sie in die ABAP Workbench und die Konzepte ein, mit
denen Sie vertraut sein müssen, um mit der Workbench arbeiten zu können.

Themen:
Integration der Werkzeuge und Arbeitsmethoden [Seite 93]

Entwicklungsobjekte und Entwicklungsklassen [Seite 94]

Entwicklung im Team [Seite 95]

Weiterführende Dokumentationen [Seite 97]

92 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Integration der Werkzeuge und Arbeitsmethoden

Integration der Werkzeuge und Arbeitsmethoden


Die einzelnen Werkzeuge der Workbench fügen sich zu einem integrierten System zusammen.
Wenn Sie beispielsweise im ABAP Editor mit Programmobjekten arbeiten, kennt der Editor auch
Objekte, die mit anderen Werkzeugen angelegt wurden. Durch Auswahl eines Objektes mit
Doppelklick wird automatisch das Werkzeug von der Workbench gestartet, in dem das Objekt
erstellt wurde und Sie können dieses Objekt bearbeiten.
Um Ihre Entwicklungsprozesse in dieser integrierten Umgebung zu organisieren, bietet SAP den
Object Navigator an. Dieser liefert auch den notwendigen Zusammenhang, um die Beziehungen
zwischen Entwicklungsobjekten zu erfassen. Anstatt mit Werkzeugen und Entwicklungsklassen
zu arbeiten, arbeiten Sie mit Objekten, und die Workbench ruft für jedes Objekt das
entsprechende Werkzeug auf.
SAP empfiehlt, Anwendungen vom Object Navigator aus zu entwickeln. Aus diesem Grund ist
diese Dokumentation aus der Perspektive eines Navigator-Benutzers geschrieben.
Siehe auch:
Entwicklungsobjekte und Entwicklungsklassen [Seite 94]
Object Navigator [Seite 18]

April 2001 93
BC - ABAP Workbench: Werkzeuge SAP AG
Entwicklungsobjekte und Entwicklungsklassen

Entwicklungsobjekte und Entwicklungsklassen


Bei der Arbeit in der Workbench stoßen Sie auf Entwicklungsobjekte und Entwicklungsklassen.
Entwicklungsobjekte sind Bestandteile der ABAP-Anwendungen. Beispiele für
Entwicklungsobjekte sind Programme wie Reports, Transaktionen und Funktionsbausteine.
Programmteile wie Ereignisblöcke, Bilder und Menüs sind ebenfalls Entwicklungsobjekte.
Schließlich gelten auch von mehrere Programmen verwendete Objekte als Entwicklungsobjekte.
Zu diesen Objekten gehören Datenbankfelder, Felddefinitionen und Programmnachrichten.
Eine Entwicklungsklasse faßt logisch zusammenhängende Entwicklungsobjekte zusammen,
beispielsweise alle Objekte einer Anwendung. Eine Entwicklungsklasse kann jedoch selbst auch
ein Entwicklungsobjekt bilden. Eine Beispiel für eine Entwicklungsklasse ist etwa die
Hauptbuchhaltung.
Wenn Sie ein neues Objekt anlegen oder ein bereits vorhandenes ändern, fordert Sie das
System auf, das Objekt einer Entwicklungsklasse zuzuordnen.

Entwicklungsobjekte speichern
Das R/3-System speichert Entwicklungsobjekte im Repository, das ein Teil der Datenbank
darstellt.
Wenn Sie die Arbeit an einem Entwicklungsobjekt wie etwa einem Programm, Bild oder Menü
abschließen, generieren Sie ein Laufzeitobjekt, das zusammen mit dem Objekt im Repository
abgelegt wird. Eine Anwendung besteht aus mehreren Laufzeitobjekten, die von Workprozessen
des R/3-Systems verarbeitet werden.
In einer Standard-SAP-Installation ist das Entwicklungssystem und das Produktivsystem
voneinander getrennt. Neue Anwendungen werden im Entwicklungssystem entwickelt und
anschließend in das Produktivsystem transportiert. Die tägliche Arbeit findet also im
Produktivsystem statt, das im Entwicklungssystem erstellte Laufzeitobjekte verwendet.
Die Trennung von Produktiv- und Entwicklungssystem ist erforderlich, da Änderungen an einer
bestehenden ABAP-Anwendung sofort für alle Nutzer des Systems wirksam werden. Um den
täglichen Arbeitsfluß im Produktivsystem nicht zu stören, werden daher Entwicklungen in einem
eigens dafür eingerichteten Entwicklungssystem durchgeführt.

Der Workbench Organizer


Mit dem Workbench Organizer transportieren Sie Anwendungen aus dem Entwicklungssystem in
das Produktivsystem. Weiterhin können Sie Versionen verwalten und Transporte verfolgen. Bei
der Arbeit in der Workbench werden Sie feststellen, daß der Workbench Organizer
Schutzmechanismen bereithält. Einen Überblick über diese Prüfungen und ihre Auswirkungen
auf den Entwicklungsprozeß finden Sie unter Entwicklung im Team [Seite 95].
In der Dokumentation Workbench Organizer [Extern] finden Sie Einzelheiten zum Workbench
Organizer.

94 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Entwickeln im Team

Entwickeln im Team
Mit ABAP können Sie die Arbeit an großen Projekten unter mehreren Entwicklern aufteilen.
Nehmen wir z.B. ein Projekt, in dem eine Finanzbuchhaltungsanwendung mit einem Debitoren-
und einem Kreditorenmodul entwickelt werden soll. Die ABAP-Umgebung unterstützt Sie beim
Anlegen eines Arbeitsbereichs für das Projekt in Ihrem System. Sie können dann jedem
Entwickler bestimmte Aufgaben zuweisen und den Fortschritt der Arbeit verfolgen.
Das Werkzeug, das Sie für die Verfolgung von Entwicklungsprojekten einsetzen, ist der
Workbench Organizer. Der Organizer verfolgt Änderungen an vorhandenen SAP-
Entwicklungsobjekten und das Anlegen neuer Objekte. Wenn Sie ein neues Objekt anlegen,
fordert Sie der Organizer beim Sichern des Objekts auf, eine Entwicklungsklasse anzugeben:

Der Organizer bestimmt anhand der Entwicklungsklasse, ob ein Änderungsauftrag erforderlich


ist. Ein Änderungsauftrag protokolliert die Änderungen an einem oder mehreren
Entwicklungsobjekten. Die Entwicklungsklasse $TMP enthält lokale Objekte, die nicht
transportiert werden. Daher verfolgt der Organizer Änderungen an lokalen Objekten nicht.
Geben Sie eine andere als eine lokale Entwicklungsklasse an, fordert Sie das System auf, einen
Änderungsauftrag anzugeben. Dazu fordert Sie das System auch beim ersten Ändern eines
vorhandenen nicht-lokalen Objekts auf. Das entsprechende Dialogfenster sieht so aus:

April 2001 95
BC - ABAP Workbench: Werkzeuge SAP AG
Entwickeln im Team

Wenn Sie eine Änderung mit einem Auftrag verbinden, legt das System für Sie eine Aufgabe
unter diesem Änderungsauftrag an. Der Organizer legt eine Aufgabe für jeden Entwickler an, der
Änderungen unter diesem Änderungsauftrag vornimmt. Sie können sich einen Änderungsauftrag
als einen Container für Aufgaben vorstellen.
Nachdem Sie einem Objekt einen Änderungsauftrag hinzugefügt haben, betrachtet das System
dieses Objekt als ein in der Entwicklung stehendes Objekt. Das Objekt ist für andere Benutzer
gesperrt. Wenn Sie Ihre Änderungen vorgenommen oder ein neues Objekt angelegt haben,
geben Sie Ihre Aufgabe frei. Um Ihre Änderungen in das Produktivsystem zu transportieren,
geben Sie den Änderungsauftrag mit Ihrer Aufgabe frei.
Sie können die Entwicklungsklasse und den Änderungsauftrag eines Objekts ändern. Nähere
Informationen zum Ändern der Entwicklungsklasse finden Sie unter Objekte in eine andere
Entwicklungsklasse umhängen [Seite 33]. Näheres zum Workbench Organizer und zum
Transportsystem finden Sie in der Dokumentation Workbench Organizer [Extern].

96 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Weiterführende Dokumentationen

Weiterführende Dokumentationen
In den folgenden Dokumentationen erfahren Sie mehr über die ABAP Workbench und das
Programmieren mit ABAP:
• ABAP Workbench Tutorial [Extern]. Diese Dokumentation führt Sie in die wichtigsten
Werkzeuge der ABAP Workbench ein. Sie lernen, mit den Werkzeugen eine einfache
ABAP-Anwendung zu programmieren.
• ABAP-Benutzerhandbuch [Extern]. In dieser Dokumentation finden Sie ausführliche
Beschreibungen der einzelnen ABAP-Programmteile. Sie lernen mehr über die ABAP-
Grundlagen, Reportprogrammierung, Transaktionsentwicklung und andere Techniken für
fortgeschrittene Programmierer.
• ABAP Dictionary [Extern]. In dieser Dokumentation finden Sie eine Darstellung der
ABAP-Daten. Es werden grundlegende und aggregierte Objekte, die Pflege von
Dictionary-Objekten und andere Spezialgebiete behandelt.
• Workbench Organizer [Extern]. In dieser Dokumentation lesen Sie, wie Sie große
Projekte im R/3-System organisieren können. Einige der Themen sind die Einrichtung
des Organziers und des Transportsystems sowie die Versionsverwaltung und das
Modifikationskonzept.
• Erweiterte Funktionsbibliothek Anwendungen [Extern]. In dieser Dokumentation finden
Sie Informationen zu standardisierten Dialogen, zur zentralen Adreßverwaltung,
Anwendungsprotokollen und zur Archivierung.
• Basis Programmierschnittstellen [Extern]. In dieser Dokumentation werden die
Progammierschnittstellen für SAP-Komponenten beschrieben, u.a. die
Hintergrundverarbeitung und das Batch-Input-System.

April 2001 97
BC - ABAP Workbench: Werkzeuge SAP AG
ABAP Editor

ABAP Editor
Mit Hilfe des ABAP Editors können Sie Programme und ihre Teilobjekte anlegen und bearbeiten.

Wenn Sie den ABAP Editor im Zusammenhang mit dem Modifikationsassistenten


einsetzen möchten, lesen Sie die Dokumentation Modifikationen in Programmen
[Extern]

Themen der Dokumentation


Überblick über den ABAP Editor [Seite 99]
Programm anlegen [Seite 108]
Quelltext editieren [Seite 110]
Programm prüfen [Seite 138]
Programm sichern und aktivieren [Seite 137]
Upload und Download [Seite 106]

98 April 2001
SAP AG BC - ABAP Workbench: Werkzeuge
Überblick über den ABAP Editor

Überblick über den ABAP Editor


Der ABAP Editor ist ein Werkzeug, mit dem Sie ABAP-Programme, Klassenmethoden,
Funktionsbausteine, Dynpro-Ablauflogik, Typgruppen und logische Datenbanken entwickeln
können.

Editor-Modi
Der ABAP Editor verfügt über zwei Modi:
• Frontend Editor-Modus
• Backend Editor-Modus
Der Frontend Editor wurde mit dem TextEdit Control des SAP Control Frameworks realisiert und
erlaubt ein lokales Editieren am Frontend. Der ABAP-Quelltext wird also - anders als beim
herkömmlichen Backend Editor- ans Frontend geladen und kann dort lokal bearbeitet werden.

Beachten Sie, daß der Kommando-Modus von der neuen Version der Workbench
nicht mehr unterstützt wird und daher seit dem Release 4.6B nicht mehr verfügbar
ist.

Integration
Quelltexte, die im Backend Editor erstellt wurden, können im Frontend Editor problemlos
bearbeitet werden. Umkehrt, setzt das System alle Formatierungen des Frontend Editors ohne
Zutun des Benutzers im Backend Editor korrekt um. Insbesondere ist hier die Zeilenlänge mit
derjenigen des Backend Editors abgestimmt und führt bei deren Überschreitung automatisch
zum Zeilenumbruch.
Die beiden Editor-Modi bieten exakt das gleiche Layout des Quelltextes an. Der Editorinhalt wird
genauso ausgegeben wie er auf der Datenbank vorliegt. Eine automatische Konvertierung, z.B.
in Großbuchstaben, findet in beiden Editor-Modi nicht statt.

Unterschiede
Unterschiede zwischen den beiden Modi gibt es jedoch in der Bedienung, hinsichtlich der
Systemvoraussetzungen und geringfügig hinsichtlich des Funktionsumfangs. Auf diese
Unterschiede wird in der nachfolgenden Dokumentation eingegangen.
Siehe auch:
Frontend Editor [Seite 100]
Backend Editor [Seite 103]
Editor-Modus ändern [Seite 105]
Lokales Editieren [Seite 106]

April 2001 99
BC - ABAP Workbench: Werkzeuge SAP AG
Frontend Editor

Frontend Editor
Verwendung
Beim Frontend Editor wird der ABAP-Quelltext, im Gegensatz zum Backend Editor, ans Frontend
geladen und erlaubt dort ein lokales Editieren. Dies ist mit dem Vorteil verbunden, daß alle
Editierfunktionen, die keine Kommunikation mit dem Backend erfordern, sehr schnell ausgeführt
werden können.
Andererseits kann der Kommunikationskanal zwischen Frontend und dem Applikationsserver
aufgrund der Verwendung des Frontend Editors erheblich belastet werden. Dies kann bei
umfangreichen Beständen schon im LAN- aber insbesondere im WAN-Umfeld ein performance-
kritischer Aspekt sein.
Im Frontend Editor können folgende Entwicklungsobjekte bearbeitet werden:
§ ABAP-Programme
§ Methodenimplementierung (Class Builder)
§ Implementierung der Funktionsbausteine (Function Builder)
§ Dynpro-Ablauflogik (Screen Painter)
§ Typgruppen (ABAP Dictionary)
In allen unterstützenden Werkzeugen verfügt der Frontend Editor über den gleichen
Funktionsumfang.

Im Splittscreen-Editor, im Editor zu logischen Datenbanken und im BOR-Editor wird


der Frontend Editor derzeit noch nicht unterstützt.

Editieren eines ABAP-Programms im Frontend Editor mit Verwendung des


Kontextmenüs:

100 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Frontend Editor

Voraussetzungen
Betriebssystem
Auf Ihrem Frontend muß entweder WindowsNT 4.0 oder Windows95 als 32-bit Betriebssystem
installiert sein. Andere Betriebssysteme werden zur Zeit nicht unterstützt.

Controls und DLL's


Auf dem Frontend werden verschiedene DLL- und OCX-Dateien benötigt. Die Installation und
Registrierung erfolgt automatisch über das SAP-GUI durch Hochladen der DLL und OCX-
Dateien.

Funktionsumfang
Der ABAP Editor im Frontend Editor-Modus stellt u.a. folgende Funktionen bereit:
• Lokales Blättern (nur in diesem Modus verfügbar !)
• Cut, Copy & Paste für markierte Textbereiche (nur in diesem Modus verfügbar !)
• Drag & Drop-Unterstützung (nur in diesem Modus verfügbar !).
• Kontextmenü (rechte Maustaste) für den Zugriff auf Edit-Funktionen (nur in diesem Modus
verfügbar !).
• Lokale Such- und Ersetzungsfunktion.
• Navigation zu einer ausgewählten Zeile (über das Kontextmenü).

April 2001 101


BC - ABAP Workbench: Werkzeuge SAP AG
Frontend Editor

• Zugriff auf die Zwischenablage und Blockoperationen (auch über das Kontextmenü).
• Auskommentieren von Textblöcken.
• Navigationsfunktionen ("Vorwärtsnavigation").
• Syntaxprüfung und Ausgabe der Fehlermeldungen und Warnungen in einem separaten
Fensterbereich.
• Farbige Hervorhebung von Kommentarzeilen.
• Automatischer Zeilenumbruch nach Überschreiten der maximalen Zeilenbreite (nur in diesem
Modus verfügbar !).
• Einfügen von ABAP-Anweisungsmustern.
• mehrstufige Undo- bzw. Redo-Funktion (nur in diesem Modus verfügbar !).
• Anzeige der aktuellen Cursorposition.
• Verwenden des Pretty Printers zur Normalisierung des Layouts.
• Import und Export von lokalen Dateien.

102 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Backend Editor

Backend Editor
Verwendung
Mit diesem Editor-Modus steht der traditionelle Backend-Editor für das Editieren des ABAP-
Quelltextes zur Verfügung.
Mit dem Backend Editor arbeiten Sie zeilenorientiert und die Bearbeitung von mehreren Zeilen im
Coding mit den gängigen Editier-Funktionen (Ausschneiden, Kopieren, Verketten,…) erfordert
das Markieren von Zeilenblöcken. Ebenso ist Verwendung von Zwischenablagen in diesem
Modus vorteilhaft.
Der Backend Editor ist bei sehr umfangreichem Quelltext-Beständen, insbesondere im WAN-
Umfeld, dem Frontend Editor vorzuziehen, da er unter diesen Bedingungen günstigere
Performance erzielt.
Ferner können im Backend Editor sämtliche Entwicklungsobjekte bearbeitet werden, die auf dem
ABAP Editor basieren. Der Splittscreen-Editor, der BOR-Editor und der Editor zu logischen
Datenbanken sind ausschließlich nur mit diesem Modus ausgestattet.

Editieren eines ABAP-Programms im Backend Editor:

April 2001 103


BC - ABAP Workbench: Werkzeuge SAP AG
Backend Editor

Voraussetzungen
Anders als beim Frontend Editor liegen keine besonderen Einschränkungen bezüglich der Wahl
des Betriebssystems vor.

Funktionsumfang
Der ABAP Editor im Backend Editor-Modus stellt u.a. folgende Funktionen bereit:
• Navigationsfunktionen ("Vorwärtsnavigation", … ).
• Markieren von Blöcken und Verwendung der Zwischenablage.
• Verwendung der Komprimierungslogik (nur in diesem Modus verfügbar !).
• Einblenden der Zeilennummerierung (nur in diesem Modus verfügbar !).
• Such- und Ersetzungsfunktion.
• Farbige Hervorhebung von Kommentarzeilen.
• Einfügen von ABAP-Anweisungsmustern.
• Auflösen von Includes (nur in diesem Modus verfügbar !).
• Einstufige Undo-Funktion.
• Auskommentieren von Textblöcken.
• Verwenden des Pretty Printers zur Normalisierung des Layouts.
• Syntaxprüfung.
• Upload und Download von Dateien.

104 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Editor-Modus ändern

Editor-Modus ändern
Nach dem Aufruf des ABAP Editors wird der Quelltext initial im Editor-Modus angezeigt, der
unter benutzerspezifischen Einstellungen [Seite 47] zuletzt voreingestellt wurde.

Vorgehensweise
So ändern Sie den Editor-Modus von beliebiger Stelle der Workbench aus:
1. Wählen Sie Hilfsmittel → Einstellungen .
Es erscheint das Dialogfenster Benutzerspezifische Einstellungen.
2. Wählen Sie den Tabreiter ABAP Editor.
3. Wählen Sie den neuen Editor-Modus aus.
4. Falls Sie sich für den Backend Editor entscheiden, haben Sie die Möglichkeit, die
Zeilennummerierung und die Komprimierungslogik ein- oder auszuschalten.
5. Verlassen Sie dieses Fenster mit .

Ergebnis
Die geänderte Einstellung bleibt dauerhaft, d.h. über die Dauer der Sitzung am SAP-System
hinaus, gesichert.
Siehe auch:
Komprimierungslogik verwenden [Seite 115]

April 2001 105


BC - ABAP Workbench: Werkzeuge SAP AG
Lokales Editieren

Lokales Editieren
In beiden Modi des ABAP Editors haben Sie die Möglichkeit, ein ABAP-Programm in eine lokale
Datei Ihres Rechners zu übertragen. Den Quelltext können Sie danach in einem Standardeditor
Ihrer Wahl bearbeiten und schließlich diese Datei in den ABAP Editor hochladen.

Im Backend Editor-Modus
Upload und Download durchführen
Um eine Datei in den ABAP Editor hochzuladen, wählen Sie Hilfsmittel → Weitere Hilfsmittel →
Upload/Download → Upload. Geben Sie in angezeigten Dialogfenster den Pfad und den Namen
der einzulesenden Datei an. Klicken Sie dann auf Übertragen.

Beachten Sie, daß nach dem Übertragen der Datei der gesamte, bereits im ABAP
Editor vorhandene Inhalt, mit dem Inhalt der eingefügten Datei überschrieben wird.
Um ein Programm auf eine lokale Datei Ihres Rechners zu übertragen, wählen Sie Hilfsmittel →
Weitere Hilfsmittel → Upload/Download → Download. Bestimmen Sie in angezeigten
Dialogfenster den Pfad und den Namen der Datei und die zugehörige Erweiterung. Klicken Sie
dann auf Übertragen.
Der Backend Editor unterstützt folgende Formate:
Erweiterung Upload/Download
ASC ASCII
BIN Binär
DAT ASCII-Datentabelle mit Spaltentabulator
DBF DBASE-Format (nur für den Download verfügbar).
IBM ASCII mit IBM-Codepage Konvertierung (DOS)
WK1 Tabellenkalkulationsformat (nur für den Download verfügbar).

Lokalen Editor aufrufen


Legen Sie zunächst den Pfad für lokales Editieren fest, indem Sie ihn unter der gleichnamigen
Einstellung zum ABAP Editor [Seite 47] angeben. Auf diesem Pfad wird der Quelltext
zwischengespeichert. Wählen Sie dann die Funktion Hilfsmittel → Weitere Hilfsmittel → Lokal
editieren. Der Programmquelltext wird heruntergeladen und ein lokaler Editor aufgerufen. Wenn
Sie nach Bearbeitung des Quelltextes den Editors verlassen, dann wird er wieder in den ABAP
Editor hochgeladen.

Im Frontend Editor-Modus
Quelltext übertragen
Um eine lokale Datei in den ABAP Editor hochzuladen, wählen Sie die Funktion Laden lokaler
Datei über die entsprechende Ikone aus der Toolbar des Editors. Wählen Sie anschließend
die betreffende lokale ASCII-Datei aus.

106 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Lokales Editieren

Beachten Sie, daß nach dem Laden der Datei der gesamte, bereits im Editor
vorhandene Inhalt, mit der exportierten Datei überschrieben wird.
Um den gesamten Inhalt des ABAP-Editors in eine lokale Textdatei herunterzuladen, wählen Sie
die Funktion Sichern als lokale Datei über die entsprechende Ikone aus der Toolbar des
Editors. Geben Sie im angezeigten Dialogfenster den Pfadnamen für die lokale Textdatei an.
Beachten Sie, daß hierbei keine (markierten) Textteile, sondern stets der gesamte Editorinhalt
lokal in einer Textdatei im ASCII-Format gesichert wird.

April 2001 107


BC - ABAP Workbench: Werkzeuge SAP AG
Programm anlegen

Programm anlegen
Voraussetzungen
In der nachfolgenden Beschreibung wird davon ausgegangen, daß Sie ein neues ABAP-
Programm im Object Navigator anlegen. Darüber hinaus bezieht sich die Vorgehensweise auf
den allgemeinen Fall und läßt sich insbesondere auch dann anwenden, wenn noch kein
Objektknoten Programme innerhalb der Objektliste vorhanden ist.
Anderenfalls können Sie die Funktion Anlegen aus dem Kontextmenü des Objektknotens
verwenden. Siehe auch Neue Objekte anlegen [Seite 27].

Vorgehensweise
33. Wählen Sie die Funktion Anderes Objekt, indem Sie die Ikone aus der Drucktastenleiste
anklicken.
34. Wählen Sie im Fenster Objektauswahl die Tabstrip-Seite Programm aus.
35. Geben Sie den Namen des neuen Programms an.
Beachten Sie, daß im Kundennamensraum alle Programme mit Y oder mit Z beginnen.
36. Wählen Sie .
Es erscheint das Dialogfenster Programm anlegen.
37. Schalten Sie die Option Mit Top-Include aus, falls daß das anzulegende Programm vom Typ
Ausführbares Programm (Report) sein soll. Im entgegengesetzten Fall legen Sie ein
Programm mit TOP-Include, also ein Modulpool an.

38. Verlassen Sie das Fenster mit .


39. Sofern Sie ein Programm mit TOP-Include anlegen, erscheint erneut ein Dialogfenster, in
dem Sie den Namen des TOP-Includes eingeben.
40. Verlassen Sie dieses Fenster mit .
Es erscheint ein Dialogfenster für die Festlegung von weiteren Programmeigenschaften.
Zur Bedeutung der einzelnen Eigenschaften siehe auch Programmattribute pflegen
[Extern].
41. Vergeben Sie die erforderlichen Attribute zum Programm und wählen Sie Sichern.
Es erscheint das Dialogfenster Objektkatalogeintrag anlegen.
42. Ordnen Sie dem Programm eine Entwicklungsklasse zu.

108 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Programm anlegen

43. Bestätigen Sie mit .


Das angelegte Programm wird in die Objektliste der zugeordneten Entwicklungsklasse
aufgenommen und unter dem Objektknoten Programme angezeigt. Ferner wird der
ABAP Editor aufgerufen und das Programm im Änderungsmodus angezeigt.

Ergebnis
Das Programm wurde im R/3-Repository angelegt und liegt im ABAP Editor in inaktiver Fassung
vor. Durch die Zuordnung zu einer Entwicklungsklasse ist das Programm automatisch an das
Transport- und Korrekturwesen angeschlossen.

Alternativ können Sie ein Programm vom Einstiegsbild des ABAP Editors (SE38)
anlegen.

April 2001 109


BC - ABAP Workbench: Werkzeuge SAP AG
Quelltext editieren

Quelltext editieren
Das Vorgehen bei bei Navigation und der Bearbeitung des Quelltextes unterscheidet sich, je
nachdem welchen Editor-Modus Sie einsetzen. In der vorliegenden Dokumentation wird auf
diese Unterschiede im Detail eingegangen.

Themen
Im Quelltext navigieren [Seite 111]
Quelltext bearbeiten (Frontend Editor) [Seite 116]
Quelltext bearbeiten (Backend Editor) [Seite 119]
Zwischenablage verwenden [Seite 121]
Suchen und Ersetzen (Frontend Editor) [Seite 123]
Suchen und Ersetzen (Backend Editor) [Seite 125]
Anweisungsmuster einfügen [Seite 127]
Muster mit Drag and Drop einfügen [Seite 130]
Includes auflösen [Seite 131]
Layout verbessern [Seite 134]

110 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Im Quelltext navigieren

Im Quelltext navigieren
Um zu einer bestimmten Stelle im Quelltext innerhalb des angezeigten Bildausschnitts zu
gelangen, können Sie, wie üblich, den Cursor direkt am Ziel positionieren.
Durch Anklicken der Bildaufleisten kann die aktuelle Anzeige im Editorausschnitt variiert werden.
Daneben steht eine Vielzahl von Tastenkombinationen für spezielle Cursor-Bewegungen
innerhalb des Quelltextes zur Verfügung. Die Tastenkombination können haben jedoch,
abhängig von der Auswahl des Editor-Modus, teilweise unterschiedliche Wirkung:

Tastenkombinatio bewegt den Cursor im bewegt den Cursor im Backend


n Frontend Editor Editor
↑ um eine Zeile nach oben, auch um eine Zeile nach oben, innerhalb
über den sichtbaren des sichbaren Editorausschnitts
Editorausschnitt hinaus
↓ um eine Zeile nach unten, auch um eine Zeile nach unten, innerhalb
über den sichtbaren des sichbaren Editorausschnitts
Editorausschnitt hinaus
← um ein Zeichen nach links analog
→ um ein Zeichen nach rechts analog
Bild ↑ um eine Seite nach oben analog

Bild ↓ um eine Seite nach unten analog

Pos1 an den Anfang der aktuellen analog


Zeile
Ende an das Ende der aktuellen Zeile analog

Strg + ↑ an den Anfang des aktuellen um eine Zeile nach oben


Absatzes
Strg + ↓ an das Ende des aktuellen um eine Zeile nach unten
Absatzes
Strg + ← um ein Wort nach links analog

Strg + → um ein Wort nach rechts analog

Strg + Bild ↑ vor das erste Zeichen im an den Anfang des gesamten
sichtbaren Editorausschnitt Quelltextes
Strg + Bild ↓ hinter das letzte Zeichen im an das Ende des gesamten
sichtbaren Editorausschnitt Quelltextes
Strg + Pos1 an den Anfang des gesamten an den Anfang der aktuellen Zeile
Quelltextes
Strg + Ende an das Ende des gesamten an das Ende der aktuellen Zeile
Quelltextes

April 2001 111


BC - ABAP Workbench: Werkzeuge SAP AG
Im Quelltext navigieren

Navigieren zu einer Zeile


Backend Editor
Im Backend Editor können Sie zu einer Quelltextzeile gelangen, indem Sie die Zeilennummer ins
entsprechende Eingabefeld (rechts oberhalb des Editorausschnitts) eingeben. Die angeforderte
Zeile wird dann zur aktuellen Zeile und als erste Zeile des sichtbaren Editorausschnitts
angezeigt.

Frontend Editor
Um zu einer bestimmten Zeile im Quelltext zu springen, gehen Sie wie folgt vor:
1. Öffnen Sie das Kontextmenü im Editor über die rechte Maustaste.
2. Wählen Sie Gehe zu Zeile.
3. Geben Sie im angezeigten Popup die Zeilennummer ein.

4. Bestätigen Sie mit .


Die eingegebene Zeile wird zur obersten Zeile des sichtbaren Editorausschnitts.
Siehe auch:
Navigation mit Doppelklick [Seite 113]
Komprimierungslogik verwenden [Seite 115]

112 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Navigation mit Doppelklick

Navigation mit Doppelklick


Damit ein Doppeklick-Ereignis im ABAP Editor den gewünschten Absprung zur Folge hat, ist der
Cursor entweder direkt links oder innerhalb der betreffenden Zeichenfolge zu positionieren.
Mit dem Doppelklick-Ereignis werden folgende Navigationsschritte ausgelöst:

Doppelklick auf bewirkt


ein Entwicklungsobjekt eine Navigation zur Definition des Objektes. Falls noch keine
Definition vorliegt, werden Sie gefragt, ob das Objekt
angelegt werden soll. Bei Auswahl von Objekten, die in
einem anderen Werkzeug definiert werden, wird der ABAP
Editor verlassen und zum entsprechenden Werkzeug
verzweigt.
die Definition eines Objektes die Anzeige des Verwendungsnachweises für das Objekt.
(Zuvor kann ein Dialogfenster für die Vergabe von
Suchoptionen zum Verwendungsnachweis angezeigt
werden).
ein ABAP-Schlüsselwort eine Fehlermeldung in der Statusleiste, da der Doppelklick
auf ein ABAP-Schlüsselwort (im allgemeinen Fall) nicht in
die Navigation eingebunden ist.
ein zusammengesetztes eine Navigation zum korrespondierenden Anteil des
ABAP-Sprachkonstrukt (IF… Sprachkonstrukts (z.B. von METHOD zu ENDMETHOD und
ENDIF,…) umgekehrt).

WHEN-Anweisung eine Navigation zur nächsten WHEN oder zur ENDCASE-


Anweisung.
ELSEIF-Anweisung eine Navigation zur nächsten ELSEIF, ELSE oder zur
ENDIF-Anweisung.
Include -Namen einen Absprung zur Definition des Includes.

Leerzeichen in der Zeile daß die aktuelle Zeile zur ersten Zeile des sichtbaren
Editorausschnitts wird.
Zeilennummer daß die aktuelle Zeile zur ersten Zeile des sichtbaren
Editorausschnitts wird (nur im Table Control-Modus bei
eingeschalteter Zeilennummerierung).

April 2001 113


BC - ABAP Workbench: Werkzeuge SAP AG
Navigation mit Doppelklick

Speziallfall: Doppelklick bei Methodenaufrufen von globalen Klassen

Objekt >Instanzmethode Klasse =>statische Methode

Doppelklick Doppelklick

Referenz im Implementierug im Definition im Implementierug im


ABAP Editor Methoden- Editor Class Builder Methoden- Editor

114 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Komprimierungslogik verwenden

Komprimierungslogik verwenden
Wenn Sie sich über die Strukturierung des Quelltextes innerhalb eines Programms einen
Überblick verschaffen wollen, können Sie die Komprimierungslogik verwenden. Bestimmte Teile
eines Programms (Unterprogramme, Module, geschachtelte ABAP-Anweisungen) definieren
logische Blöcke, die Sie komprimieren können. Neben vorgegebenen Blöcken haben Sie die
Möglichkeit, eigene logische Blöcke im Quelltext zu definieren.

Voraussetzungen
Die Komprimierungslogik kann nur im Backend Editor-Modus verwendet werden. Zusätzlich muß
die entsprechende Option mit Komprimierungslogik bei den Einstellungen [Seite 47] zum ABAP
Editor aktiv sein.

Funktionsumfang
§ Komprimieren der logischen Blöcke.
Klicken Sie dazu auf die Ikone .
§ Expandieren der logischen Blöcke.
Klicken Sie dazu auf die Ikone .
§ Einfügen selbstdefinierter Blöcke.
Gehen Sie dazu wie folgt vor:
1. Fügen Sie eine Kommentarzeile, die mit *{ beginnt, an den Anfang des zu
definierenden Blocks ein.
2. Fügen Sie am Ende des zu definierenden Blocks eine Kommentarzeile ein, die mit
*} beginnt.
3. Bestätigen Sie mit ENTER.

Die vorgenommenen Komprimierungen werden beim Verlassen des ABAP Editors


nicht gesichert. Daher sind alle Blöcke beim erneuten Editieren des Programms
expandiert.

April 2001 115


BC - ABAP Workbench: Werkzeuge SAP AG
Quelltext bearbeiten (Frontend Editor)

Quelltext bearbeiten (Frontend Editor)


Text markieren
Mit der Maus
Markieren Vorgehensweise
eines Textbereichs Auf die linke Maustaste drücken und ziehen.
einer Zeile Links von der Zeile auf die linke Maustaste drücken.
mehrerer Zeilen Links von der ersten Zeile auf die linke Maustaste drücken und
anschließend ziehen.
des gesamten Textes Tasten Strg + linke Maustaste links neben einer Zeile drücken.

Über eine Tastaturkombination


Markieren Tastenkombination
des gesamten Textes Strg + A
der nächsthöheren Zeile Shift + ↑
der nächsten Zeile Shift + ↓
eines Zeichens links vom Cursor Shift + ←
eines Zeichens rechts vom Cursor Shift + →
eine Seite von der Cursorposition nach oben Shift + Bild ↑
eine Seite von der Cursorposition nach unten Shift + Bild ↓
bis zum Anfang der aktuellen Zeile Shift + Pos1
bis zum Ende der aktuellen Zeile Shift + Ende
bis zum Anfang des aktuellen Absatzes Shift + Strg+ ↑
bis zum Ende des aktuellen Absatzes Shift + Strg + ↓
bis zum Anfang des aktuellen Wortes Shift + Strg + ←
bis zum Ende des aktuellen Wortes Shift + Strg + →
bis zum Anfang des sichtbaren Editorausschnitts Shift + Strg + Bild ↑
bis zum Ende des sichtbaren Editorausschnitts Shift + Strg + Bild ↓
bis zum Anfang des gesamten Textes Shift + Strg + Pos1
bis zum Ende des gesamten Textes Shift + Strg + Ende

116 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Quelltext bearbeiten (Frontend Editor)

Text bearbeiten

Funktion Vorgehensweise
Text ausschneiden (Cut) Markieren Sie den entsprechenden Text.
Wählen Sie aus dem Kontextmenü (rechte Maustaste) die
Funktion Ausschneiden oder verwenden Sie die
Tastenkombination Strg + X.
Der markierte Text wird in die Zwischenablage kopiert.
Text kopieren (Copy) Markieren Sie den entsprechenden Text.
Wählen Sie aus dem Kontextmenü die Funktion Kopieren
oder verwenden Sie die Tastenkombination Strg + C.
Der markierte Text wird in die Zwischenablage kopiert.
Text einfügen (Paste) Positionieren Sie den Cursor an der Stelle, an der der
zugehörige Text aus der Zwischenalge eingefügt werden soll.
Wählen Sie aus dem Kontextmenü die Funktion Einfügen
oder verwenden Sie die Tastenkombination Strg + V.
Text mit Drag & Drop Markieren Sie den entsprechenden Text.
verschieben (im gleichen Ziehen Sie bei gedrückter linker Maustaste den markierten
Editor) Bereich an die die Zielposition.
Lassen Sie dann die Maustaste los.
Der markierte Text wird zu der neuen Position verschoben.
Text mit Drag & Drop kopieren Markieren Sie den zu kopierenden Text.
(im gleichen Editor) Ziehen Sie bei gedrückter Strg- und linker Maustaste den
markierten Bereich an die die Zielposition.
Lassen Sie dann die Maustaste los.
Der markierte Text wird an der Zielposition kopiert.
Quelltext auskommentieren Markieren Sie die entsprechenden Quelltextzeilen.
Wählen Sie aus dem Kontextmenü die Funktion
Kommentieren oder verwenden Sie die Tastenkombination
Strg + <.
Zeilenkommentare im Quelltext Markieren Sie die entsprechenden Zeilen.
aufheben Wählen Sie aus dem Kontextmenü die Funktion
Dekommentieren oder verwenden Sie die Tastenkombination
Strg + >.

Quelltext aus anderen Programmen mit Drag & Drop einfügen


Um Teile aus einem ABAP-Programm in ein anderes einzufügen, starten Sie einen neuen Modus
und öffnen das betreffende Programm. Anschließend markieren Sie den interessierenden
Bereich und ziehen ihn mit Drag & Drop an die Zielposition im anderen Editor. Der eingefügte
Bereich wird verschoben oder kopiert (bei gedrückter Strg-Taste oder vom Anzeigemodus des
Quell-Programms aus).

April 2001 117


BC - ABAP Workbench: Werkzeuge SAP AG
Quelltext bearbeiten (Frontend Editor)

Drag & Drop

118 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Quelltext bearbeiten (Backend Editor)

Quelltext bearbeiten (Backend Editor)


Standardmäßig bearbeitet der Editor die aktuelle Zeile. Diese Zeile ist durch die Position des
Cursors bestimmt und wird im Backend Editor farblich hervorgehoben.
Darüber hinaus können zusammenhängende Teile des Quelltextes durch Markieren mehrerer
Zeilen zu einem Block zusammengefaßt werden.
Dann können Editierfunktionen wie Ausschneiden, Kopieren und Verketten nicht nur für einzelne
Zeilen, sondern für Zeilenblöcke verwendet werden.
Zeilenblöcke können schließlich mit Hilfe einer Zwischenablage separat abgespeichert werden,
um sie auch modus- oder systemübergreifend wiederverwenden zu können. Siehe dazu
Zwischenablage verwenden [Seite 121].

Text markieren

Markieren Vorgehensweise
einer Zeile Positionieren Sie Cursor in der gewünschten Zeile und wählen Sie aus
der Editor-Toolbar die Funktion Markieren.
eines Zeilenblocks Positionieren Sie den Cursor in der ersten Zeile des Blocks.
Wählen Sie Markieren.
Positionieren Sie den Cursor in der letzten Zeile des Blocks.
Wählen Sie abermals Markieren.

Um die Markierung eines Blocks aufzuheben, wählen Sie Bearbeiten →


Entmarkieren.

Text bearbeiten

Funktion Vorgehensweise
Zeilenblock löschen Markieren Sie den entsprechenden Block.
Wählen Sie Ausschneiden.
Zeilenblock kopieren Markieren Sie den entsprechenden Block.
Wählen Sie die Kopieren.
Der markierte Zeilenblock wird in den Standardpuffer kopiert.
Zeilenblock einfügen Positionieren Sie den Cursor an der Stelle, an der der
zugehörige Text aus der Zwischenalge eingefügt werden soll.
Wählen Sie Einsetzen.
Der zuvor in den Standardpuffer kopierte Zeilenblock wird
eingefügt.
Zeilenblock doppeln Markieren Sie den entsprechenden Block.
Wählen Sie Zeile/Block doppeln.

April 2001 119


BC - ABAP Workbench: Werkzeuge SAP AG
Quelltext bearbeiten (Backend Editor)

Zeilenblock horizontal Markieren Sie den entsprechenden Block.


verschieben Wählen Sie Zeile/Block verschieben.
eine Zeile löschen Positionieren Sie den Cursor auf die betreffende Zeile.
Wählen Sie Zeile löschen.
eine Zeile teilen Positionieren den Cursor in der gewünschten Zeile und
geben Sie ENTER ein.
eine neue Zeile einfügen Wählen Sie Zeile einfügen an der gewünschten Position.
zwei Zeilen verketten Positionieren den Cursor an einer beliebige Stelle in der
gewünschten Zeile und wählen Sie Verketten.
Quelltext auskommentieren Markieren Sie den entsprechenden Zeilenblock und wählen
Sie die Menüfunktion Hilfsmittel → Block/Ablage →
Kommentar * einfügen.
Zeilenkommentare im Quelltext Markieren Sie die entsprechenden Zeilenblock und wählen
aufheben Sie die Menüfunktion Hilfsmittel → Block/Ablage →
Kommentar * löschen.
Zeilenblock drucken Markieren Sie den gewünschten Block und wählen Sie die
Menüfunktion Hilfsmittel → Block/Ablage → Block →
Drucken.

Siehe auch:
Zwischenablage verwenden [Seite 121]

120 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Zwischenablage verwenden

Zwischenablage verwenden
Verwendung
Beide Modi des ABAP Editors stellen einen Standardpuffer und drei weitere Zwischenablagen
bereit. Darüber hinaus können Sie mit der Zwischenablage Ihres lokalen Präsentationsrechners
Informationen zwischen Programmen in unterschiedlichen SAP-Systemen hin- und herkopieren.

Funktionsumfang
Die folgende Tabelle liefert einen Überblick über die vorhandenen Zwischenablagen:
Funktion Verwendbar zusammen mit Bedeutung
Kopieren in Puffer Einsetzen Puffer Kopieren und Einfügen innerhalb
einer einzigen Editor-Sitzung im
selben System (Standardpuffer).
Wenn Sie den Editor verlassen,
löscht das System den Inhalt des
Puffers.
Kopieren in X-Ablage Einsetzen X-Ablage Kopieren und Einfügen über SAP-
Kopieren in Y-Ablage Einsetzen Y-Ablage Modi desselben Systems hinweg.
Kopieren in Z-Ablage Einsetzen Z-Ablage Der Editor speichert den Inhalt
dieser Zwischenablagen, so daß
sie von den einzelnen SAP-Modi
desselben Systems greifbar sind.
Kopieren in Clipboard Einsetzen Clipboard Kopieren und Einfügen über SAP-
Systeme hinweg. Sie können z.B.
Informationen von einem
Produktionssystem in ein
Entwicklungssystem kopieren. Bei
diesen Optionen wird die
Zwischenablage Ihres lokalen
Präsentationsrechners benutzt.

Im Frontend Editor können Sie auf Funktionen zur Zwischenablage auch über das
Kontextmenü (Block/Ablage) zugreifen.

Quelltext in die Zwischenablage kopieren


Um den Quelltext eines Programms in eine Zwischenablage zu kopieren, markieren Sie die
entsprechenden Zeilen im Editor und wählen Sie die Menüfunktion Hilfsmittel → Block/Ablage →
Kopieren in… und dann die gewünschte Zwischenablage.

Quelltext aus der Zwischenablage einfügen


Um den Quelltext aus einer Zwischenablage einzufügen, positionieren Sie den Cursor auf die
gewünschte Zeile im Editor und wählen dann Hilfsmittel → Block/Ablage → Einsetzen .... Wählen
Sie die gewünschte Zwischenablage aus . Das System fügt den zuvor dort abgespeicherten
Quelltext vor der aktuellen Zeile ein.

April 2001 121


BC - ABAP Workbench: Werkzeuge SAP AG
Zwischenablage verwenden

Quelltext in die Zwischenablage kopieren


Sie können die Information auch in den jeweiligen Zwischenablagen bearbeiten. Wählen Sie
hierzu Hilfsmittel → Block/Ablage → Ablage editieren und dann die gewünschte Zwischenablage.

122 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Suchen und Ersetzen (Frontend Editor)

Suchen und Ersetzen (Frontend Editor)


Verwendung
Sie können einzelne Wörter oder auch beliebige Zeichenfolgen im aktuell angezeigten Quelltext
suchen und ersetzen. Eine Unterscheidung, ob es sich bei der gesuchten Zeichenfolge um ein
ganzes Wort oder um den Teil eines Wortes handelt, entfällt bei der lokalen Suche. Ferner wird
Darstellung bezüglich der Klein-/Großschreibung nicht berücksichtigt.
Die lokale Suche im Frontend Editor beginnt ab der Cursorposition und kann nach Durchlaufen
des gesamten Quelltextes zyklisch wiederholt werden.
Sie können auch eine globale Suche starten und nach beliebigen Zeichenfolgen im Quelltext des
zugehörigen Rahmenprogramms suchen und diese ersetzen. Der Umfang einer globalen Suche
läßt sich durch die Auswahl entsprechender Suchoptionen einschränken.

Vorgehensweise
Beliebige Zeichenfolge suchen
1. Wählen Sie die Funktion Suchen/Ersetzen aus dem Kontextmenü oder über die
entsprechende Ikone der Toolbar.
2. Geben Sie die gewünschte Zeichenfolge ein und wählen Sie die entsprechenden
Optionen.
3. Wählen Sie Find Next.
Falls die Zeichenfolge im Text existiert, wird der Cursor auf ihn positioniert.
Beliebige Zeichenfolge suchen und ersetzen
1. Wählen Sie die Funktion Suchen/Ersetzen aus dem Kontextmenü oder über die
entsprechende Ikone der Toolbar.
2. Geben Sie den Suchbegriff und den entsprechenden Ersetzungsbegriff ein und wählen
Sie die entsprechenden Optionen.
3. Wählen Sie Replace All oder Find Next und anschließend Replace.
Falls der Suchbegriff im Text existiert, wird dieser durch den Ersetzungsbegriff ersetzt.
Bei Auswahl von Replace All wird die Ersetzung für alle Textstellen im gesamten
Quelltext in einem Schritt vorgenommen.
Beliebige Zeichenfolge mit Hilfe des Suchbegriffs löschen
1. Wählen Sie die Funktion Suchen/Ersetzen aus dem Kontextmenü oder über die
entsprechende Ikone der Toolbar.
2. Geben Sie nur den gewünschten Suchbegriff ein und wählen Sie die entsprechenden
Optionen.
3. Wählen Sie Replace All.
Der Suchbegriff wird im gesamten Quelltext gelöscht.

Falls Sie eine globale Suche, über den ausgegebenen Quelltext hinaus, starten
möchten, dann wählen Sie die Menüfunktion Bearbeiten → Suchen/Ersetzen oder
die entsprechende Ikone aus der Symbolleiste. Die Vorgehensweise hierzu
entnehmen aus Quelltext bearbeiten im Backend Editor [Seite 119].

April 2001 123


BC - ABAP Workbench: Werkzeuge SAP AG
Suchen und Ersetzen (Frontend Editor)

124 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Suchen und Ersetzen (Backend Editor)

Suchen und Ersetzen (Backend Editor)


Verwendung
Sie können zum einen den aktuell im Editor angezeigten Quelltext eines Programms und zum
anderen den Quelltext des zugehörigen Rahmenprogramms (globale Suche) nach beliebigen
Zeichenfolgen durchsuchen. Der Umfang der Suche läßt sich durch die Auswahl entsprechender
Suchoptionen einschränken. Neben der Suche nach bestimmten Zeichenfolgen können Sie auch
eine generische Suche durchführen.

Vorgehensweise
Einfache, lokale Suche durchführen
1. Wählen Sie die Funktion Suchen über die entsprechende Ikone der Toolbar.
Es erscheint das Dialogfenster Suchen /Ersetzen.
2. Geben Sie den gewünschten Suchbegriff ein.
3. Verlassen Sie das Fenster mit .
Die Suche wird ab der aktuellen Cursorposition gestartet. Falls der Suchbegriff im
aktuellen Quelltext existiert, wird der Cursor vor diesen positioniert,

4. Fahren Sie mit der Suche fort, indem Sie wählen.

Eingeschränkte oder generische Suche durchführen


1. Wählen Sie die Funktion Bearbeiten → Suchen/Ersetzen.
Es erscheint das Dialogfenster Suchen /Ersetzen.
2. Geben Sie die gewünschte Zeichenfolge ein.
Falls Sie eine generische Suche durchführen möchten, dann verwenden Sie * (Stern) als
Platzhalter für eine Zeichenfolge. Wenn Sie z.B. als Suchkriterium t*kt eingeben, wird
sowohl takt als auch trakt gefunden.
Als Platzhalter für genau ein Zeichen verwenden Sie + (Pluszeichen). Wenn Sie als
Suchkriterium t+kt eingeben, wird takt gefunden, trakt jedoch nicht.
Mit diesem Symbol # (Nummernzeichen können Sie nach den Sonderzeichen * (Stern),
+ (Pluszeichen) oder # (Nummernzeichen) suchen. Um z.B. die Zeichenfolge 1+2 zu
finden, geben Sie als Suchbegriff 1#+2 ein.
3. Schränken Sie gegebenfalls die Suche über die entsprechende Option ein:

Als String Der Suchbegriff wird gefunden, wenn er als ganzes


Wort oder Teil eines Wortes auftaucht.
Als Wort Der Suchbegriff wird gefunden, wenn er als ganzes
Wort auftaucht.
Groß- Der Suchbegriff wird gefunden, wenn er in der
/Kleinschreibung entsprechenden Schreibweise (unter Berücksichtigung
der Groß-/Kleinschreibung) auftaucht.

April 2001 125


BC - ABAP Workbench: Werkzeuge SAP AG
Suchen und Ersetzen (Backend Editor)

4. Wählen Sie die Option global im Rahmenprogramm, falls die Suche auf das komplette
Rahmenprogramm ausgedehnt werden soll.
5. Verlassen Sie das Fenster mit .
Falls die Zeichenfolge im Text existiert, wird eine Liste mit Fundstellen ausgegeben.
6. Wählen Sie den interessierenden Eintrag mit Doppelklick aus.
Der Cursor wird an den Anfang der Zeile mit der gesuchten Zeichenfolge positioniert.

Zeichenfolge ersetzen
1. Wählen Sie die Funktion Bearbeiten → Suchen/Ersetzen.
Es erscheint das Dialogfenster Suchen /Ersetzen.
2. Geben Sie den Suchbegriff ein.
3. Aktivieren Sie die Option Ersetze durch und geben Sie den entsprechenden
Ersetzungsbegriff ein.
4. Wählen Sie eventuell weitere Optionen zur Einschränkung der Suche.
5. Wählen Sie die Option global im Rahmenprogramm, falls die Suche auf das komplette
Rahmenprogramm ausgedehnt werden soll.
6. Verlassen Sie das Fenster mit .
Falls die Zeichenfolge im Text existiert, wird eine Liste mit entsprechenden Fundstellen
ausgegeben.
7. Wählen Sie den ersten Eintrag aus und dann die Funktion Ersetzen.
Wenn Sie sich sicher sind, daß die Zeichenfolge an allen Fundstellen ersetzt werden
soll, können Sie die erste Fundstelle markieren und anschließend die Funktion Ab
Cursor alles ohne Bestätigung wählen.

126 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Anweisungsmuster einfügen

Anweisungsmuster einfügen
Verwendung
Mit Hilfe der Funktion Muster können Sie verschiedene Anweisungsmuster in Ihr Programm
einfügen. Insbesondere bei komplexen ABAP-Anweisungen ersparen sich unnötige Tipparbeit.
Zusätzlich wird mit einem Muster eine korrekte Syntax der einzufügenden Anweisung garantiert.

Funktionsumfang
Folgende Musterfunktionen stehen zur Verfügung:
Funktion Bedeutung
CALL FUNCTION Ein bestimmter FUNCTION-Aufruf wird eingefügt.
Muster zu ABAP Objects Es können die folgenden, grundlegenden Anweisungen zu
globalen Klassen in ABAP Objects eingefügt werden:
CALL METHOD
CREATE OBJECT
RAISE EVENT
MESSAGE Eine MESSAGE-Anweisung wird für eine bestimmte Nachricht
eingefügt. Sie müssen eine Nachrichten-ID, den Nachrichtentyp
und eine Nummer eingeben. Schließen Sie mit ENTER ab.
SELECT * FROM Eine Anweisung SELECT FROM <tabelle> wird eingefügt.
Geben Sie einen Tabellennamen in das entsprechende Feld ein
und wählen Sie ENTER. Das System fragt Sie nach den
Tabellenfeldern.
PERFORM Eine PERFORM-Anweisung wird für eine bestimmte FORM-
Routine eingefügt.
AUTHORITY-CHECK Eine AUTHORITY-CHECK-Anweisung wird für ein bestimmtes
Berechtigungsobjekt eingefügt. Schließen Sie mit ENTER ab.
WRITE Eine WRITE-Anweisung wird für eine bestimmte Struktur oder
Tabelle eingefügt.
CASE Eine CASE-Anweisung wird für einen bestimmten Status
eingefügt.
Interne Tabelle Eine interne Tabelle wird eingefügt. Sie können die Felder oder
die Struktur einer bestehenden Tabelle kopieren.
CALL DIALOG Eine CALL DIALOG-Anweisung wird für einen bestimmten
Dialogbaustein eingefügt.
Weitere Anweisung Eine vordefinierte oder kundendefinierte ABAP-Anweisung wird
eingefügt.

Vorgehensweise
Um im ABAP Editor ein Anweisungsmuster einzufügen, gehen Sie wie folgt vor:

April 2001 127


BC - ABAP Workbench: Werkzeuge SAP AG
Anweisungsmuster einfügen

1. Setzen Sie den Cursor im Änderungsmodus an die gewünschte Position des Quelltextes.
2. Wählen Sie die Funktion Muster.
Es erscheint das Dialogfenster Muster einfügen.
3. Wählen Sie die entsprechende Musterfunktion aus und spezifizieren Sie gegebenfalls die
Anweisung.
4. Verlassen Sie das Fenster mit .
5. Füllen Sie das Muster mit weiteren Angaben.
Beispiel: Muster zu ABAP Obejcts.

6. Bestätigen Sie Ihre Angaben mit .


Die Anweisung wird an der zuvor gesetzten Position im Quelltext eingefügt.
Im obigen Beispiel werden die folgenden Zeilen eingefügt:
CALL METHOD picture->set_display_mode
EXPORTING
display_mode =
* EXCEPTIONS
* ERROR = 1
* others = 2
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

128 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Anweisungsmuster einfügen

ENDIF.

April 2001 129


BC - ABAP Workbench: Werkzeuge SAP AG
Muster mit Drag and Drop einfügen

Muster mit Drag and Drop einfügen


Verwendung
Mit Drag and Drop haben Sie im Object Navigator die Möglichkeit auf einfache Art und Weise
Quelltextmuster in den ABAP Editor einfügen. Hierzu wählen Sie einen geeigneten Eintrag aus
Baumanzeige der Objektliste oder aus Ihrem Arbeitsvorrat [Seite 44] aus und ziehen diesen bis
an die gewünschte Position im geöffneten ABAP Editor.
Sie können Muster einfügen für die
§ Instanzerzeugung globaler Klassen
§ Methodenaufrufe globaler Klassen
§ Aufrufe von Funktionsbausteinen
§ Unterprogrammaufrufe (mit PERFORM)

Voraussetzungen
Sie verwenden den Frontend Editor-Modus des ABAP Editors.

Vorgehensweise
Um zum Beispiel das Muster für einen Methodenufruf aus der Objektliste einzufügen, gehen Sie
wie folgt vor:
1. Wählen Sie das betreffende ABAP-Programm aus, in dem Sie das Muster einfügen möchten
und öffnen Sie es im Werkzeugbereich des Object Navigators.
2. Bringen Sie die Objektliste der entsprechenden Klasse im Navigationsbereich des Object
Navigators zur Anzeige.
3. Wählen Sie den Eintrag für die gewünschte Klassenmethode aus der Baumanzeige aus.
4. Ziehen Sie diesen Eintrag in den Editor und lassen Sie ihn an der Position im Quelltext fallen,
an dem das Muster eingefügt werden soll.

Ergebnis
Das Muster für den Methodenaufruf wird an der abgesetzten Position mit allen zur Methode
definierten Parametern eingefügt. Optionale Parameter sind dabei auskommentiert.
Sie können nun das Muster vervollständigen und den Parametern Werte zuweisen.

130 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Includes auflösen

Includes auflösen
Verwendung
Sie können ein Include im aktuell angezeigten Programm auflösen. Damit wird der gesamte
Inhalt des Includes innerhalb des Programms sichtbar und Sie können Änderungen am Include
und am Quelltext ohne Fensterwechsel vornehmen.

Diese Funktion kann nur im Backend Editor eingesetzt werden.

Vorgehensweise
So lösen Sie im Änderungsmodus des ABAP Editors ein Include auf:
1. Öffnen Sie den Teil Ihres Programms, der die betreffende Include-Anweisung enthält.
2. Positionieren Sie den Cursor auf die Zeile mit der Include-Anweisung.
3. Wählen Sie die Menüfunktion Bearbeiten → Weitere Funktionen → INCLUDE auflösen.
Der gesamte Inhalt des Includes ist im Programm sichtbar.
Der eingefügte Include-Bereich ist durch entsprechende Kommentarzeilen markiert, die
jeweils den Anfang und das Ende des Includes kennzeichnen.
4. Speichern Sie die Änderungen am Include ab.
Sie haben zwei Möglichkeiten diese Änderungen zu sichern:

§ Sie wählen und sichern damit das Rahmenprogramm. Dann wird das Include, inclusive
der dort vorgenommenen Änderungen, als Bestandteil des Rahmenprogramms gesichert.
Das aufgelöste Include wird dann aus der Objektliste des Rahmenprogramms entfernt.
§ Sie positionieren den Cursor an den Anfang des Includes und wählen die Menüfunktion
Bearbeiten → Weitere Funktionen → INCLUDE sichern. In diesem Fall werden die
Änderungen am Include separat gesichert. Wenn Sie dann wählen, dann speichern Sie
nur die Änderungen im Programm ab.

Ergebnis
Die Auflösung des Includes bleibt in Ihrem Programm solange erhalten, bis Sie sie ausdrücklich
rückgängig machen.

Sollten Sie die Auflösung rückgängig machen wollen, dann positionieren Sie den
Cursor an den Anfang des Includes und wählen die Menüfunktion Bearbeiten →
Weitere Funktionen → INCLUDE komprimieren. Falls Sie Änderungen am Include
vorgenommen haben, werden Sie dann gefragt, ob Sie diese speichern möchten.

April 2001 131


BC - ABAP Workbench: Werkzeuge SAP AG
Hilfe zu ABAP aufrufen

Hilfe zu ABAP aufrufen


Der Hilfe-Aufruf im ABAP Editor bietet den Zugriff auf Informationen zu der ABAP-Syntax und -
semantik sowie zu den einzelnen ABAP-Schlüsselwörtern.

Aufruf
Diese Hilfe können Sie anfordern über:
• F1 auf ein Schlüsselwort im ABAP Editor
• i-Knopf im ABAP-Editor
• Menüfunktion Hilfsmittel→ Schlüsselwortdoku im Einstieg (SE38) des ABAP-Editors
• Aufruf der Transaktion ABAPHELP
• Auswahl des untersten Knotens in der Transaktion ABAPDOCU
Die Hilfefunktion ist für die folgenden Bereiche verfügbar:

Sie haben weiterhin die Möglichkeit, eine Offline-Version der ABAP-


Schlüsselwortdokumentation auf Ihrem Frontend zu erstellen.
Sämtliche Dokumente der Schlüsselwortdokumentation (einschließlich der
Navigationsstruktur) werden in einem Verzeichnis im HTML-Format abgelegt. Der
Upload-Vorgang dauert etwa 10 bis 20 Minuten. Danach kann die Datei BASIC.HTM

132 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Hilfe zu ABAP aufrufen

geöffnet werden. Diese Offline-Version unterstützt zwar nur Verweise zwischen den
heruntergeladenen Dokumenten, kann aber unabhängig vom R/3-System verwendet
werden.

April 2001 133


BC - ABAP Workbench: Werkzeuge SAP AG
Layout verbessern

Layout verbessern
Verwendung
Der ABAP-Quelltext wird genauso auf der Datenbank abgespeichert wie er im Editor eingegeben
wurde. Eine automatische Konvertierung in eine normalisierte Darstellung, z.B. in
Großbuchstaben, findet nicht statt.
Eine solche Darstellung kann jedoch bei Bedarf über den Pretty Printer erreicht werden.
Folgende Darstellungsformen werden angeboten:
§ gesamter Quelltext in Großbuchstaben
§ gesamter Quelltext in Kleinbuchstaben
§ Hervorheben der ABAP-Schlüsselwörter
Darüberhinaus stellt der Pretty Printer die gewohnte Funktionalität zur Gruppierung
zusammenhängender Schlüsselwörter und zur Einrückung von Anweisungen zur Verfügung.
Siehe auch:
Funktionsumfang des Pretty Printers [Seite 136]

Bedenken Sie, daß das Hervorheben der ABAP-Schlüsselwörter, insbesondere bei


langen Programmtexten, sehr laufzeitintensiv sein kann.

Es ist zweckmäßig, den Pretty Printer erst dann zu verwenden, wenn keine
Syntaxfehler mehr im Quelltext auftreten.

Vorgehensweise
Layout normalisieren

Funktion Vorgehensweise
Darstellung in Großbuchstaben Wählen Sie den Menüpfad Hilfsmittel → Einstellungen
und anschließend unter dem Tabreiter Pretty Printer die
Option Großschreibung und bestätigen Sie die
Einstellungen.
Wählen Sie die Funktion Pretty Printer auf der
Drucktastenleiste.
Darstellung in Kleinbuchstaben Wählen Sie den Menüpfad Hilfsmittel → Einstellungen
und anschließend unter dem Tabreiter Pretty Printer die
Option Kleinschreibung und bestätigen Sie die
Einstellungen.
Wählen Sie die Funktion Pretty Printer auf der
Drucktastenleiste.

134 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Layout verbessern

Hervorheben der Wählen Sie den Menüpfad Hilfsmittel → Einstellungen


Schlüsselwörter und anschließend unter dem Tabreiter Pretty Printer die
Option Schlüßelwort groß und bestätigen Sie die
Einstellungen.
Wählen Sie die Funktion Pretty Printer auf der
Drucktastenleiste.

Textbereiche ein- und ausrücken

Funktion Vorgehen im Text Edit Control- Vorgehen im Table Control-Modus


Modus
Einrücken der Markieren Sie die entsprechenden Positionieren Sie den Cursor an die
Textbereiche Zeilen und drücken Sie auf die Tab- Stelle in einer Zeile, bis zu der Sie
Taste. die Zeile einrücken möchten.
Die Einrückung wird in allen
Wählen Sie die Funktion Zeile/Block
markierten Zeilen vorgenommen.
Verschieben über die Ikone der
Toolbar.
Wiederholen Sie die beiden Schritte
für jede gewünschte Zeile.
Ausrücken der Markieren Sie die entsprechenden Vorgehen: analog zum Einrücken.
Textbereiche Zeilen und drücken Sie auf Shift +
Tab.

Ergebnis
Der ABAP -Quelltext wird mitsamt aller zusätzlichen, inclusive aller mit dem Pretty Printer
vorgenommenen Änderungen des Layouts, ohne jede automatische Konvertierung auf der
Datenbank abgespeichert, nachdem Sie den Quelltext gesichert haben. Bei erneutem Laden des
Quelltextes wird er, unabhängig vom Editor-Modus, genauso angezeigt wie er auf der Datenbank
abgelegt ist.

April 2001 135


BC - ABAP Workbench: Werkzeuge SAP AG
Funktionsumfang des Pretty Printers

Funktionsumfang des Pretty Printers


Der Pretty Printer ermöglicht eine normalisierte Darstellung hinsichtlich der Klein-
/Großschreibung, faßt zusammenhängende Schlüsselwörter in Gruppen zusammen und rückt
einzelne Anweisungen ein. Der Pretty Printer stellt sicher, daß Ihr Programm den Richtlinien
entspricht, die im ABAP-Benutzerhandbuch aufgeführt sind.

Funktionsumfang
Die Pretty Printer-Funktion übernimmt folgende Aufgaben:
• Der gesamte Quelltext wird, entsprechend der eingestellten Option, in einer normalisierten
Darstellung (Klein-/Großschreibung) angeboten.
• Jedes Ereignis-, Steuerungs- und INCLUDE-Schlüsselwort wird in eine eigene Zeile
geschrieben.
• Ereignisschlüsselwörter, FORM- und MODULE-Anweisungen werden an den Zeilenanfang
gestellt, wobei die Pretty Printer-Funktion die erste Programmzeile als Bezugszeile
verwendet.
• Vor Ereignisschlüsselwörtern ohne vorausgehende Leer- oder Kommentarzeile wird eine
Leerzeile eingefügt.
• Alle zu einem Ereignis gehörenden Anweisungszeilen und Steuerungsstrukturen werden um
zwei Stellen eingerückt.
• Anweisungen, die länger als eine Zeile sind, werden erkannt und nachfolgende Anweisungen
werden in eine neue Zeile geschrieben.
• Vor FORM- und MODULE-Anweisungen ohne Kommentar werden entsprechende
Kommentarblöcke eingefügt. Der Pretty Printer verwendet zum Ausfüllen der
Kommentarblöcke die Routinennamen und die USING-Parameter.
• Kommentare in Anweisungszeilen werden linksbündig ausgerichtet. Dies gilt jedoch nur für
Kommentare mit nicht mehr als 32 Zeichen, die mit einem doppelten Anführungszeichen (“)
beginnen. Der Pretty Printer beginnt den Kommentar in Spalte 40.
Der Pretty Printer bricht keine Schleifen oder steuernde Verarbeitungsblöcke um, die in einer
einzigen Zeile stehen. Ebensowenig trennt er zu einer WHEN-Bedingung gehörende
Anweisungen, wenn die WHEN-Anweisung in einer Zeile steht. Um den Pretty Printer aufzurufen,
wählen Sie Programm → Pretty Printer.

136 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Programm sichern und aktivieren

Programm sichern und aktivieren


Programm sichern
Das bearbeitete Programm wird mit der Funktion Sichern inaktiv gesichert und ein Eintrag in der
Liste der inaktiven Objekte des Benutzers hinterlegt.
Das System sichert Ihr Programm in der SAP-Datenbank. Standardmäßig wird beim Sichern
keine Syntaxprüfung vorgenommen.

Um den Inhalt des Editors sichern, wählen Sie aus der Symbolleiste.

Programm nach Systemabsturz wiederherstellen


Falls es zu einem Systemabsturz kommt, während Sie ein Programm bearbeiten, versucht das
System das Programm in einem Zwischenspeicher zu sichern. Wenn Sie das Programm das
nächste Mal bearbeiten möchten, werden Sie vom System aufgefordert, die gewünschte Version
anzugeben. Sie können zwischen der Datenbankversion und der Version im Zwischenspeicher
wählen.
Falls erforderlich, können Sie mit der Funktion Vergleichen die beiden Versionen vergleichen und
erst dann entscheiden, welche Version wiederhergestellt werden soll.

Programm aktivieren
Beim Aktivieren eines Programms wird aus der inaktiven Fassung eine aktive Fassung des
Programms erstellt. Mit der Aktivierung wird das Programm auf syntaktische Korrektheit geprüft,
dann aus der inaktiven eine aktive Fassung erzeugt, anschließend eine Laufzeitversion generiert
und schließlich der Eintrag aus der Liste der inaktiven Objekte gelöscht.
Um das Programm zu aktivieren, wählen Sie oder Programm → Aktivieren.

Wenn Sie das Programm aktivieren, dann wirkt sich die Aktivierung nicht auf die
Teilobjekte des Programms aus. Die zugehörigen Dynpros oder GUI-Status stellen
eigenständige Transportobjekte dar und müssen separat aktiviert werden.

Programm generieren
Beim Generieren eines Programms wird aus der aktiven Fassung des Programms eine neue
Laufzeitversion erstellt. Im Vergleich zum Aktivieren beschränkt sich diese Operation nur auf das
Erzeugen einer neuen Laufzeitversion.
Um das Programm zu generieren, wählen Sie Programm → Generieren.
Siehe auch:
Statusanzeige bei Entwicklungsobjekten [Seite 520]

April 2001 137


BC - ABAP Workbench: Werkzeuge SAP AG
Programm prüfen

Programm prüfen
Im ABAP Editor können Sie auf eine Reihe von Prüfungen zugreifen. Die Prüfungen
unterscheiden sich dadurch, welche Teilobjekte des Programms Sie tatsächlich in die Prüfung
einschließen. Sie können sich ein ABAP-Programm als einen Rahmen vorstellen, der sämtliche
Teilobjekte umfaßt. Ein Rahmen beinhaltet z.B. das Top-Include und weitere Includes wie z.B.
PBO- und PAI-Includes.

Wenn Sie ein Programm oder nur ein Teilobjekt prüfen, können Sie den Umfang der Prüfung
festlegen.

Funktionsumfang

Funktion Bedeutung

Syntax Das System prüft die Syntax des gewählten Programms.


Um diese Syntaxprüfung aufzurufen
§ wählen Sie in der Drucktastenleiste, falls das zu
prüfende Programm im Editor angezeigt wird.
§ markieren Sie das entsprechende Programm in der
Objektliste und wählen Sie Prüfen → Syntax aus dem
Kontextmenü.
Diese Funktion führt eine Syntaxprüfung für das gewählte
Programm durch und - falls vorhanden - auch für das Top-
Include. Andere Includes werden nicht geprüft.
Rahmenprogramm Das System prüft die Syntax des gesamten Programms,
einschließlich aller Includes.
Um diese Syntaxprüfung aufzurufen, markieren Sie das zu
prüfende Rahmenprogramm in der Objektliste und wählen
dann Programm → Prüfen → Rahmenprogramm.
Erweiterte Das System prüft das gesamte, gewählte Programm und gibt
Programmprüfung Ihnen die Möglichkeit - über die Syntaxprüfung hinaus -
weitere Prüfungsfunktionen zu nutzen.
Siehe auch: Erweiterte Programmprüfung [Seite 140].

138 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Programm prüfen

Von der Prüfung zur Korrektur


Bei den Prüfungen Syntax und Rahmenprogramm werden Fehlermeldungen in einem separaten
Fenster angezeigt, sobald ein Fehler auftritt.

Wenn das System bei der Prüfung einen Fehler entdeckt und einen Korrekturvorschlag liefern
kann, dann erscheint eine entsprechende Ikone neben dem betreffenden Eintrag innerhalb der
Liste. Ferner wird der Cursor auf den ersten angezeigten Fehlereintrag im Quelltext positioniert.
Wählen Sie diese Ikone, um die Korrektur vom System durchführen zu lassen.
Anderenfalls führen Sie die Korrektur manuell im Quelltext durch.
Siehe auch:
Erweiterte Programmprüfung [Seite 140]

April 2001 139


BC - ABAP Workbench: Werkzeuge SAP AG
Erweiterte Programmprüfung

Erweiterte Programmprüfung
Ablauf
1. Wenn Sie Programm → Prüfen → Erweiterte Programmprüfung wählen, zeigt das System
eine Liste der möglichen Prüfoptionen an:

Standardmäßig sind alle Optionen markiert. Um Informationen über eine bestimmte


Option zu erhalten, stellen Sie den Cursor auf die Option und wählen F1.
Die erweiterte Programmprüfung dauert wesentlich länger als die anderern Prüfungen.
Die erweiterte Programmprüfung verwendet jedoch einen Zwischenspeicher, so daß
nach einer ersten erweiterten Programmprüfung die Folgeprüfungen schneller ablaufen
2. Wenn Sie die erweiterte Prüfung starten, gibt das System eine Übersicht mit gefundenen
Fehlern, Warnungen und Meldungen aus. Das System zeigt für jede Option, die Sie in die
Prüfung eingeschlossen haben, wieviele Fehler, Warnungen und Meldungen aufgetreten
sind.

140 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Erweiterte Programmprüfung

3. Wenn Sie einen Eintrag auswählen, gelangen Sie auf die zugehörige Detailanzeige.
4. Aus dieser Detailanzeige können Sie zur entsprechedenden Stelle in Ihrem Programm
gelangen und die Korrektur durchfüren.

April 2001 141


BC - ABAP Workbench: Werkzeuge SAP AG
Textelementpflege

Textelementpflege
Mit der Textelementpfege steht innerhalb der ABAP Workbench ein Tool zur Verfügung, das die
Pflege von mehrsprachigen Programmen unterstützt. Sie können alle Texte, die ein Programm
auf dem Bildschirm ausgibt, als Textelemente pflegen.

Themenübersicht
Textelementpflege im Überblick [Seite 143]
Einstiegsbild [Seite 144]
Textelemente anlegen und pflegen [Seite 145]
Listen- und Spaltenüberschriften anlegen [Seite 146]
Selektionstexte pflegen [Seite 148]
Textsymbole pflegen [Seite 150]
Textelemente abgleichen [Seite 153]
Selektionstexte abgleichen [Seite 154]
Textsymbole abgleichen [Seite 156]
Textelemente kopieren [Seite 161]
Textelemente übersetzen [Seite 162]

Wenn Sie die Textelementpflege im Zusammenhang mit dem


Modifikationsassistenten einsetzen möchten, lesen Sie die Dokumentation
Textelemente modifizieren [Extern].

142 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Textelementpflege im Überblick

Textelementpflege im Überblick
Konzept und Verwendung
Dieses Werkzeug verwenden Sie, um Textelemente zu Ihrem Programm anzulegen, zu pflegen
und zu übersetzen.
Zu den Textelementen gehören:
• Listenüberschriften und Spaltenüberschriften für die Seitenköpfe der Ausgabelisten.
• Selektionstexte auf Selektionsbildern.
• Textsymbole, die Sie innerhalb der Anweisung WRITE verwenden können.
Siehe auch die Dokumentation zu Textsymbolen [Extern] im ABAP Handbuch.

Diese Textelemente werden außerhalb Ihres Programms in sprachabhängigen


Textpools gespeichert. Ihr Programm greift dann automatisch auf die Textelemente
zu, die für die entsprechende Anmeldesprache des Benutzers vorhanden sind.
Sie können Textelemente anlegen und pflegen, ohne das Programm-Coding ändern zu müssen.
Sie können weiterhin Standardtextelemente anlegen, die Sie dann kopieren können, um sie in
anderen Programmen zu verwenden. Falls Sie ausschließlich mit Textsymbolen arbeiten und
keine Textliterale in WRITE-Anweisungen verwenden, dann wird Ihr Programm
sprachunabhängig. Sie müssen nur die Textelemente aus dem Textpool der Ausgangssprache
in die gewünschten Fremdsprachen übersetzen.
Die ABAP Workbench unterstützt die Übersetzung von Textelementen vollständig. Ein
Übersetzer kann aus einem vorhandenen Textpool der Ausgangssprache die Textpools
verschiedener anderer Sprachen erzeugen.

Funktionsumfang
• Anlegen und Pflege von Listen- und Spaltenüberschriften
• Pflege von Selektionstexten und Textsymbolen
• Abgleichen von Selektionstexten und Textsymbolen
• Kopieren von Textelementen
• Übersetzen von Textelementen.

Aufrufen der Textelementpflege


Siehe hierzu Einstiegsbild [Seite 144].

April 2001 143


BC - ABAP Workbench: Werkzeuge SAP AG
Einstiegsbild

Einstiegsbild
Aufruf
Sie haben mehrere Möglichkeiten, das Eintiegsbild für die Textelementpflege zu erreichen:
• Auserhalb der ABAP Workbench wählen Sie den Menüpfad Werkzeuge → ABAP Workbench
→ Entwicklung → Programmierumfeld → Textelemente.
• Wählen Sie im Object Browser der ABAP Workbench die Programmobjekte zu einem
bestimmten Programm und dort Textelemente.
• Im ABAP Editor wählen Sie den Menüpfad Springen → Textelemente.
• Im Einstiegsbild des ABAP Editors (SE38) geben Sie im Feld Programm den Namen des
Programms ein, für das Sie Textelemente pflegen möchten.
Markieren Sie anschließend Textelemente und wählen Sie dann Anzeigen oder Ändern.
Alle Aktionen führen Sie zum Bild ABAP-Textelemente:

144 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Textelemente anlegen und pflegen

Textelemente anlegen und pflegen


Beachten Sie folgende Besonderheit für alle Textelemente, falls die Anmeldesprache
verschieden von Originalsprache des Programms (Sprache, unter der das Programm angelegt
wurde) ist.
• Im Anzeigemodus erscheint eine Warnung in der Statuszeile, daß Originalsprache und
Anmeldesprache voneinander abweichen. Die Textelemente werden in der Anmeldesprache
angezeigt. Sind bestimmte Texetelemente ausschließlich in der Originalsprache vorhanden,
werden diese in der Originalsprache angezeigt. Zudem wird in der letzten Spalte das
Sprachkürzel hinzugefügt. Damit können Sie z.B. noch zu übersetzende Textelemente
ausfindig machen.
• Im Änderungsmodus werden Sie gefragt, ob Sie die Textelemente in der Originalsprache
pflegen oder die Originalsprache ändern wollen. Beim Ändern der Originalsprache werden
Texte, die noch nicht in der neuen Originalsprache vorhanden sind aus der alten
Originalsprache übernommen.
In den folgenden Topics erhalten Sie weitere Informationen, wie Sie die verschiedenen
Textelemente anlegen oder pflegen können:
Listen- und Spaltenüberschriften anlegen [Seite 146]
Selektionstexte pflegen [Seite 148]
Textsymbole pflegen [Seite 150]

In INCLUDE-Programmen [Extern] ( Typ I) können keine Textelemente angelegt


werden.

April 2001 145


BC - ABAP Workbench: Werkzeuge SAP AG
Listen- und Spaltenüberschriften anlegen

Listen- und Spaltenüberschriften anlegen


Sie können die Kopfzeilen der Ausgabeliste Ihres Programms und die einzelne
Spaltenüberschriften anlegen und ändern.

Vorgehensweise
So gehen Sie vor, um vom Einstiegsbild des ABAP Editors (SE38) Listen- und
Spaltenüberschriften anzulegen oder zu ändern:
1. Geben Sie den Programmnamen ein.
2. Markieren Sie Textelemente und wählen Sie Anzeigen oder Ändern.
3. Markieren Sie Listüberschriften und wählen Sie Ändern.
4. Im Feld Listenüberschrift können Sie bis zu 70 Zeichen, in den vier Zeilen des Felds
Spaltenüberschrift jeweils bis zu 255 Zeichen eingeben.
Wenn Sie keine Listenüberschrift angeben, erscheint stattdessen der Programmtitel auf dem
Ausgabebild.

5. Sichern Sie Ihre Eingaben.

Sie können in den Listen- und Spaltenüberschriften bis zu 10 Platzhalter &0 bis &9
mit bis zu maximal 18 nachfolgenden Punkten ". " angeben. Das System ersetzt
diese Platzhalter beim Ereignis TOP-OF-PAGE mit den Inhalten der Systemfelder
SY-TVAR0 bis SY-TVAR9. Die Ausgabelänge der Systemfelder ist dabei die Länge
des Platzhalters inklusive der nachfolgenden Punkte. Bei einem Platzhalter "&3...... "
wird beispielsweise der Inhalt von SY-TVAR3 in einer Länge von 8 ausgegeben.

146 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Listen- und Spaltenüberschriften anlegen

Ergebnis
Wenn die Überschriften wie in der obigen Abbildung angelegt wurden, erhalten Sie folgende
Bildschirmausgabe:

April 2001 147


BC - ABAP Workbench: Werkzeuge SAP AG
Selektionstexte pflegen

Selektionstexte pflegen
Sie können die Standardtexte, die für Parameter und Selektionskriterien auf dem Selektionsbild
erscheinen durch Textelemente ersetzen. Die Texte können Sie entweder frei wählen oder die im
ABAP Dictionary definierten Kurztexte verwenden.

Voraussetzungen
Für das betreffende Programm sind ein oder auch mehrere Selektionsbilder definiert.

Programmbeispiel:
PROGRAM TEXTELEMENTE03.
TABLES SBOOK.
PARAMETERS: PARAM(10).
SELECT-OPTIONS: SEL1 FOR SBOOK-CARRID,
SEL2 FOR SBOOK-CONNID.

Vorgehensweise
So gehen Sie vor, um aus dem ABAP Editor Selektionstexte zu pflegen:
1. Wählen Sie im Änderungsmodus den Menüpfad Springen → Textelemente →
Selektionstexte.
Die Tabelle zum Ändern und Anlegen von Selektionstexten wird angezeigt:

In der Spalte Name sind bereits die Namen der Parameter und Selektionskriterien Ihres
Programms (siehe Beispiel oben). Für jeden Parameter und jedes Selektionskriterium
können Sie nun bis zu 30 Zeichen Selektionstext eingeben.
2. Um Texte für ein Selektionskriterium aus dem ABAP Dictionary zu übernehmen,
positionieren Sie den Cursor auf die entsprechende Zeile und wählen Sie Hilfsmittel → DD-
Text übernehmen.
Alternativ können Sie auch den Menüpfad Hilfsmittel → alle DD-Texte übernehmen
verwenden.
Das System füllt dann diese Selektionstexte automatisch mit den Kurztexten, die als Attribute
den ABAP Dictionary-Feldern zugewiesen sind. Außerdem erscheint der Hinweis DDIC in
der Spalte Typ für jede entsprechende Zeile. Die Textelemente mit DD-Texten erscheinen im
Anzeigemodus:

148 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Selektionstexte pflegen

3. Geben Sie einen Text für die übrigen Parameter ein, für die keine Kurzetxte aus dem DDIC
übernommen werden (können).
4. Um einen der Texte aus dem DDIC zu ändern, positionieren Sie den Cursor auf der
entsrechenden Zeile und wählen Sie Hilfsmittel → Kein DD-Text wählen.
5. Ändern Sie den Selektionstext.

6. Sichern Sie Ihre Angaben mit der Drucktaste Sichern.

Ergebnis
Selektionstexte zum Programm werden in den Textpool der Anmeldesprache übernommen.
Nach dem Starten des Programms erhalten Sie für das obige Beispiel das folgende
Selektionsbild:

Falls Sie in Ihrem Programm Parameter oder Selektionskriterien ändern oder


löschen, nachdem Sie die Selektionstexte einmal gesichert haben, erscheint beim
nächsten Aufruf der Selektionstextpflege für jeden nicht mehr im Programm
benötigten Text in der letzten Spalte (nicht verwendet) ein gefülltes Ankreuzfeld.
Dies erleichtert Ihnen das Löschen nicht mehr verwendeter Selektionstexte. Falls Sie
einen im Programm verwendeten Selektionstext löschen wollen, wird eine Warnung
ausgegeben. Beim Abspeichern der Selektionstexte weist Sie das System nochmals
auf das Vorhandensein nicht verwendeter Texte hin.

April 2001 149


BC - ABAP Workbench: Werkzeuge SAP AG
Textsymbole pflegen

Textsymbole pflegen
Textsymbole sind Textkonstanten, die Sie außerhalb eines Programms eingeben und pflegen.
Sie sollten Textsymbole anstelle der Textliterale in der Endfassung Ihres Programms verwenden,
um es sprachenunabhängig und somit leichter pflegbar zu halten.
Weitere Informationen zu Literalen und Textsymbolen finden Sie im ABAP Benutzerhandbuch in
den Kapiteln Literale [Extern] und Textsymbole [Extern].

Voraussetzungen
Jedem Textsymbol haben Sie eine dreistellige Kennung zugewiesen. Diese Kennung definieren
Sie in in der WRITE-Anweisung
WRITE... TEXT-<idt>...
Bei der Ausführung des Programms sucht das System im Textpool nach einem Textsymbol mit
der Kennung <idt> und gibt den entsprechenden Text in der Ausgabeliste aus. Falls das
Textsymbol <idt> nicht vorhanden ist, überspringt das System den entsprechenden Teil der
WRITE-Anweisung.
Diese Kennung darf nicht mit den Zeichen '%_' beginnen und keine Leerzeichen enthalten.

In der nachfolgenden Beschreibung gehen wir vom folgenden Programmbeispiel


aus:
PROGRAM TEXTELEMENTE02.
WRITE: TEXT-010,
/ TEXT-AAA,
/ TEXT-020,
/ 'Default Text 030'(030),
/ 'Default Text 040'(040).

Vorgehensweise
So gehen Sie vor, um aus dem ABAP Editor ein Textsymbol zu pflegen:
1. Geben Sie im ABAP Editor ihr WRITE-Anweisung mit den dreistelligen Kennungen und den
Standardtexten ein.
2. Wählen Sie einen Eintrag in der WRITE-Anweisungen durch Doppelklick aus.
3. Wurde das Textsymbol noch nicht angelgt, so bestätigen Sie, daß es angelegt werden soll.
Sie verzweigen dann zur Textsymbolpflege.
4. Geben Sie den Text ein.
Sie können bis zu 132 Zeichen Text zuweisen.

150 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Textsymbole pflegen

5. Sichern Sie das Textsymbol mit der Drucktaste Sichern.


Die maximale Länge mLen wird automatisch auf die definierte Länge dLen (tatsächliche
Länge des Textes) gesetzt.

Ergebnis
Das gesicherte Textsymbol zum definierenden Programm wurde in den Textpool der
Anmeldesprache übernommen. Sie können nun weitere Textsymbole anlegen und bestehende
ändern.

Weitere Funktionen
Weitere Textsymbole anlegen
1. Wählen Sie dazu die Funktion Neue Zeilen einfügen aus dem Menü Bearbeiten.
2. In der Spalte Sym geben Sie eine dreistellige Kennung für das Textsymbol und in der Spalte
Text den zugehörigen Text ein.
3. Sichern Sie das Textsymbol mit der Drucktste Sichern.
Die maximale Länge mLen wird automatisch auf die definierte Länge dLen (tatsächliche
Länge des Texts) gesetzt.

Ab Release 3.1g werden Leerzeichen nicht mehr durch Unterstriche " _ ")
dargestellt. Sie können Unterstriche stattdessen auf einem Ausgabebild mit
Textsymbolen ausgeben.

Textsymbole mit Textliteralen verknüpfen


Textsymbole werden mit folgender Syntax mit Textliteralen verknüpft:
WRITE... '<textliteral>'(<idt>)...
Ist das Textsymbol <idt> vorhanden, dann wird es auch vom System verwendet. Ansonsten gibt
das System das Textliteral <textliteral> auf der Liste aus.
Beispiel: siehe oben.
Wurden für das obige Beispiel die Textsymbole mit den Kennungen " 020 " und " 040 " nicht
angelegt, so erlaten Sie folgende Ausgabe:

April 2001 151


BC - ABAP Workbench: Werkzeuge SAP AG
Textsymbole pflegen

Im Falle des Textsymbols " 020 " überspringt das System die Anweisung WRITE. Im Falle von "
040 " wird der im Programm definierte Ersatztext ausgegeben, der in der WRITE-Anweisung als
Literal definiert wurde.

Textsymbole löschen
Um ein Textsymbol zu löschen, markieren Sie die Zeile mit dem entsprechenden Textsymbol und
wählen Sie Löschen.

152 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Textelemente abgleichen

Textelemente abgleichen
Innerhalb der Textelementpflege können Sie die Textelemente eines Programms gegen den
Quelltext abgleichen. Verwenden Sie dazu die Funktion Abgleichen, auf die Sie entweder vom
Einstiegsbild oder vom Pflegebildschirm zugreifen können.
Die Funktion Abgleichen kann nur für Selektionstexte und Textsymbole eingesetzt werden.

Siehe auch:
Selektionstexte abgleichen [Seite 154]
Textsymbole abgleichen [Seite 156]

April 2001 153


BC - ABAP Workbench: Werkzeuge SAP AG
Selektionstexte abgleichen

Selektionstexte abgleichen
Mit der Funktion Abgleichen für Selektionstexte werden Sie vom System beim Auffinden von
fehlenden bzw. überflüssigen Selektionstexten unterstützt.
Die Funktion Abgleichen erweitert diesbezüglich die Übersichtlichkeit der normalen
Selektionstextpflege, bietet aber nicht die Einbindung von Texten aus dem ABAP Dictionary.

Voraussetzungen
Für das betreffende Programm sind ein oder auch mehrere Selektionsbilder definiert.

Für das folgende Programm wurden noch keine Selektionstexte gepflegt:


PROGRAM TEXTELEMENTE03.
TABLES SBOOK.
PARAMETERS: PARAM(10).
SELECT-OPTIONS: SEL1 FOR SBOOK-CARRID,
SEL2 FOR SBOOK-CONNID.

Vorgehensweise
So gehen Sie vor, um aus dem ABAP Editor Selektionstexte für eine Auswahl vom Parametern
und Selektionsoptionen abzugleichen:
1. Verzweigen Sie zum Einstiegsbild [Seite 144] für die Textelementpflege.
2. Markieren Sie Selektionstexte und wählen Sie die Drucktaste Abgleichen.
Wenn Sie für das obige Programm noch keine Selektionstexte gepflegt haben, erhalten Sie
folgendes Bild:

Sie können hier ersehen, für welche Parameter und Selektionsoptionen noch Selektionstexte
nicht gepflegt wurden.

154 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Selektionstexte abgleichen

3. Geben Sie die Texte ein, falls Sie nicht die im ABAP Dictionary definierten Kurztexte
verwenden.
4. Markieren Sie die Zeilen, die für den Abgleich vorgesehen sind.

5. Wählen Sie die Funktion Bearbeit.Mark.Texte.


Die geänderten und angekreuzten Zeilen werden zum Abgleich vorgesehen.
6. Wenn Sie jetzt Sichern wählen, wird nur der Selektionstext zu SEL1 übernommen.

Ergebnis
In diesem Fall wurden zwar SEL1 und SEL2 geändert, darunter jedoch nur SEL1 markiert.
Deshalb wird nur SEL1 zum Abgleich vorgesehen.
Über die Auswahl der Funktion Abgleichen können zu sämtlichen Eingabefeldern des
Selektionsbildes Textelemente gepflegt werden.

Wenn Sie Kurztexte aus dem ABAP Dictionary als Selektionstexte verwenden
wollen, müssen Sie zur Pflege verzweigen, wie sie im Kap. Selektionstexte pflegen
[Seite 148] beschrieben wird.

April 2001 155


BC - ABAP Workbench: Werkzeuge SAP AG
Textsymbole abgleichen

Textsymbole abgleichen
Wenn Sie Textsymbole im Programmquelltext einfügen oder ändern, werden diese nicht
automatisch in den Textpool kopiert. Um die Liste zu aktualisieren und um Diskrepanzen zu
vermeiden, können Sie die Funktion Abgleichen für Textsymbole verwenden.
Sie können mit dieser Funktion
• überflüssige (im Programm nicht verwendete) Textsymbole aus dem Textpool löschen.
• Textsymbole in den Textpool übernehmen.
Dies ist notwendig für Textsymbole, die im Programm verwendet werden, im Textpool
aber noch nicht vorhanden sind.
• Textsymbole mit dem Programmtext abgleichen.

Voraussetzungen

Für das folgende Programm setzen wir voraus, daß noch keine Textsymbole
gepflegt wurden:
PROGRAM TEXTELEMENTE04.
WRITE: TEXT-010,
/'Default Text'(020),
/TEXT-030.

Vorgehensweise
So gehen Sie vor, um aus dem ABAP Editor Textsymbole innerhalb des Abgleichs in den
Textpool zu übernehmen:
1. Verzweigen Sie zum Einstiegsbild [Seite 144] für die Textelementpflege.
2. Markieren Sie Textsymbole und wählen Sie die Drucktaste Abgleichen.
Wenn Sie für das obige Programm noch keine Textsymbole gepflegt haben, erhalten Sie
folgendes Bild:

156 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Textsymbole abgleichen

Da die Liste der Textsymbole zum Programm leer ist, ist die zweite Option markiert.
3. Wählen Sie Bearbeiten.
Es erscheint folgendes Bild:

4. Markieren Sie diejenigen Textsymbole, die Sie in den Textpool übernehmen wollen.
5. Wählen Sie die Funktion Hinzufügen Textsymb.
Die markierten Textsymbole werden für die Übernahme in den Textpool vorgesehen. Es
erscheint das folgende Bild:

April 2001 157


BC - ABAP Workbench: Werkzeuge SAP AG
Textsymbole abgleichen

6. Lassen Sie sich mit der Funktion Protokoll nochmals die Änderungen anzeigen. (hierfür ist
die entsprechende Zeile zu markieren)
7. Schließlich können Sie die Änderungen mit Sichern übernehmen oder über Widerrufen
rückgängig machen.

Ergebnis
Wenn Sie die Änderungen übernehmen, fügt das System die Textsymbole im obigen Beispiel "
010 ", " 020 " und " 030 " in den Textpool ein. Dabei weist es den Symbolen " 010 " und " 030 "
keinen, dem Symbol " 020 " dagegen das im Programm definierte Textliteral zu.

Weitere Funktionen

Ändern Sie das obige Programm leicht ab, um weitere Optionen innerhalb des
Abgleichs nutzen zu können:
PROGRAM TEXTELEMENTE04.
WRITE: TEXT-010,
/'Default Text'(020),
/'Test_Symbol'(030).

Textsymbole mit dem Programmtext abgleichen


So gehen Sie vor, um aus der Liste Ergebnis der Analyse (siehe 2.) Textsymbole, die im
Programm anders definiert sind als im Textpool, abgleichen:
1. Markieren die dritte Option Im Programm mehrfach/unterschiedlich def. Textsymbole.
2. Wählen Sie Bearbeiten.
Es erscheint unter den Voraussetzungen des Programmbeispiels das folgende Bild:

158 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Textsymbole abgleichen

Durch diese Auswahl ersetzen Sie den leeren Text des Textsymbols 030 im Textpool durch
den Programmtext " Test_Symbol ".
Die dritte Spalte zeigt an, ob der Text im Textpool (T) oder Programmtext (P) definiert ist.
3. Wählen Sie die Funktion Ersetzen.
4. Sichern Sie Ihre Angaben.

Textsymbole aus dem Textpool löschen

Bevor Sie ein Textsymbol löschen, sollten einen Verwendungsnachweis


durchführen.
So gehen Sie vor, um aus der Liste Ergebnis der Analyse nicht mehr benötigte
Textsymbole aus dem Textpool zu löschen.
1. Markieren Sie die erste Option Textsymbole, die aus dem Textpool gelöscht werden können.
2. Wählen Sie die Funktion Bearbeiten.

3. Falls das Textsymbol " 010 " im obigen Programm nicht mehr benötigt wird, kann es gelöscht
werden.

April 2001 159


BC - ABAP Workbench: Werkzeuge SAP AG
Textsymbole abgleichen

4. Wählen Sie Löschen.

160 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Textelemente kopieren

Textelemente kopieren
Sie können Textelemente von einem ABAP-Programm in ein anderes kopieren. Mit der
Kopierfunktion können Sie Textpools mit ihren jeweiligen Standardtextelementen transportieren
und sie in verschiedenen Programmen einsetzen.

Vorgehensweise
So gehen Sie vor, um Textelemente zu kopieren:
1. Verzweigen Sie zum Einstiegsbild [Seite 144] für die Textelementpflege.
2. Wählen Sie Drucktaste Kopieren.
Es wird das folgende Dialogfenster angezeigt:

3. Geben Sie den Namen des Zielprogramms an.


4. Markieren Sie diejenigen Textelemente, die Sie kopieren möchten.
5. Wählen Sie Kopieren.

Ergebnis
Die ausgewählten Textelemente des Quellprogramms werden ins Zielprogramm kopiert.

April 2001 161


BC - ABAP Workbench: Werkzeuge SAP AG
Textelemente übersetzen

Textelemente übersetzen
Textelemente unterstützen Sie bei der Pflege von sprachunabhängigen Programmen. Sie
werden im Textpool der jeweiligen Sprache abgelgt und unterliegen dem
Standardübersetzungsprozeß der Anwendung bzw. des Programms.

Voraussetzungen
Textelemente wurden in der Orginalsprache gepflegt.

Vorgehensweise
So gehen Sie vor, um vom Einstiegbild der ABAP Workbench Textelemente eines Programms zu
übersetzen:
1. Wählen Sie den Menüpfad Hilfsmittel → Übersetzung → Kurz- und Langtexte.
Sie gelangen auf das Einstiegsbild der Übersetzung (SE63).
2. Wählen Sie den Menüpfad Übersetzung → Kurztexte → Programmtexte.
Es erscheint das folgende Bild:

3. Geben Sie den Programmnamen, zu dem die Textelemente gehören, sowie die Ausgangs-
und Zielsprache ein.
4. Wählen Sie die Funktion Bearbeiten.
Die Textelemente werden in der Sprache angezeigt, in der Sie erfaßt wurden.

162 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Textelemente übersetzen

Zur dieser Anzeige des Textpools können Sie auch aus der Textelementpflege mit
dem Menüpfad Springen → Übersetzung gelagen.
5. Übersetzen Sie die angezeigten Texte.
6. Sichern Sie Ihre Übersetzung.

Ergebnis
Sie haben Textpools zu Textelementen für unterschiedliche Sprachen angelegt.
Sobald Textpools für unterschiedliche Sprachen vorhanden sind, können Sie die
Ausgabesprache des Programms beeinflussen über:
• die Anmeldesprache: Standardmäßig verwendet das System die Anmeldesprache des
Benutzers.
• die Anweisung SET LANGUAGE: Mit dieser ABAP-Anweisung können Sie die
Ausgabesprache explizit und unabhängig von der Anmeldesprache festlegen.
Syntax
SET LANGUAGE < lg >.
Die Sprache <lg> kann ein Literal oder eine Variable sein.
Wenn eine bestimmte Sprache gewählt wurde (über die Anmeldesprache oder durch explizite
Angabe), sucht das System nur im Textpool der entsprechenden Sprache. Findet es dabei keine
Textsymbole in diesem Textpool, gibt es die im Programmquelltext angegebenen Texte auf dem
Ausgabebild aus oder überspringt die entsprechende WRITE-Anweisung.

April 2001 163


BC - ABAP Workbench: Werkzeuge SAP AG
Variantenpflege

Variantenpflege
Mit der Variantenpflege haben Sie die Möglichkeit, Eingabewerte bei Programmen aller
Programmtypen, außer denen von Typ S, die häufig mit identischen Abgrenzungen gestartet
werden, in Form von Varianten zu speichern.

Themenübersicht
Varianten in Übersicht [Seite 165]
Einstiegsbild [Seite 167]
Variantenübersicht anzeigen [Seite 168]
Varianten anlegen und pflegen [Seite 169]
Varianten anlegen [Seite 170]
Attribute von Varianten [Seite 173]
Varianten ändern [Seite 176]
Varianten löschen [Seite 177]
Varianten drucken [Seite 178]
Variable Werte in Varianten [Seite 179]
Variable für Datumsberechnung anlegen [Seite 180]
Benutzerspezifische Selektionsvariablen [Seite 182]
Benutzerspezifische Variablen anlegen [Seite 183]
Werte interaktiv ändern [Seite 184]
Werte vom Programm aus ändern [Seite 185]
Festwerte aus der Tabelle TVARV [Seite 186]
Tabellenvariable aus TVARV anlegen [Seite 187]
Einträge in der Tabelle TVARV ändern [Seite 189]
Programme mit Varianten ausführen [Seite 192]

164 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Varianten in Übersicht

Varianten in Übersicht
Verwendung
Wenn Sie ein Programm starten, zu dem Selektionsbilder definiert sind, werden Ihnen
Eingabefelder für datenbankspezifische und reportspezifische Selektionen angeboten. Um eine
bestimmte Datenmenge auszuwählen, sind entsprechende Werte einzugeben.
Weitere Informationen zu Selektionsbildern erhalten Sie im Handbuch zur ABAP-
Programmierung unter Selektionsbilder [Extern].
Wenn Sie in regelmäßigen Abständen dasselbe Programm mit identischen Abgrenzungen
starten, beispielweise um monatliche Umsatzstatistiken zu erstellen, möchten Sie vielleicht nicht
jedesmal die gleichen Werte für die Selektionskriterien eingeben. Für alle diese
Selektionskriterien können Sie die gewünschten Werte dann in einer Selektionsmenge, einer
sogenannten Variante, zusammenfassen.

Für jedes Programm mit Selektionsbildern können Sie beliebig viele unterschiedliche
Varianten anlegen. Diese Varianten sind dem Programm dann eindeutig zugeordnet.
Zudem bieten Ihnen Varianten die Möglichkeit, auf die Gestaltung des bereits vorhandenen
Selektionsbildes Einfluß zu nehmen, indem Sie Selektionskriterien komplett ausblenden. Das ist
unter anderem dann hilfreich, wenn Sie mit großen Selektionsbildern arbeiten, auf denen Sie
aber nur für bestimmte Felder Eingaben machen müssen.
Da sowohl Reports als auch Modulpools und Funktionsgruppen ein oder mehrere
Selektionsbilder besitzen können, bietet die Variantenpflege die Möglichkeit, eine Variante für
mehrere Selektionsbilder anzulegen.
Varianten sind also eine Schnittstelle zum Selektionsbild. Sie haben unterschiedliche Funktionen
im Online- und im Hintergrundbetrieb:

Varianten im Online-Betrieb
Im Online-Betrieb erleichtert das Starten eines Programms mit Varianten dem Benutzer die
Arbeit, da er nicht gezwungen ist, auf dem Selektionsbild immer wieder identische Werte
einzugeben. Außerdem lassen sich so Eingabefehler minimieren. Wenn Sie für jede Anwendung
eines ausführbaren Programms eine Variante mit den jeweils optimalen Werten anlegen, stellen
Sie auch sicher, daß die Ergebnisliste präziser und schneller erscheint. Denn genau abgegrenzte
Eingaben reduzieren die Laufzeit des Reports.

Varianten im Hintergrundbetrieb
Im Hintergrund bildet die Variante die einzige Möglichkeit, Werte für die Selektionen zu
übergeben. Daher müssen Reports, die im Hintergrund verarbeitet werden, über Varianten
gestartet werden (Ausnahme: SUBMIT... VIA JOB). Um nicht für jede Änderung der Werte eine
neue Variante anlegen zu müssen, bietet ABAP hier die Möglichkeit, Varianten mit variablen
Werten zu versorgen. Siehe auch Variable Werte in Varianten [Seite 179].
Um ganz sicherzugehen, daß ein ausführbares Programm immer über eine Variante gestartet
wird, können Sie in den Programmattributen festlegen, daß das Starten des Programms nur mit
Variante möglich ist.

April 2001 165


BC - ABAP Workbench: Werkzeuge SAP AG
Varianten in Übersicht

Funktionsumfang
• Anlegen von Varianten
• Anzeigen, Ändern, Kopieren, Drucken und Löschen von Varianten
• Verwenden und Definieren von Variablen in Varianten
– Variable Datumsberechnung
– Benutzerspezifischer Festwerte
– Festwerten in der Tabelle TVARV

166 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Einstiegsbild

Einstiegsbild
Aufruf
Das Einstiegsbild für die Variantenpflege erreichen Sie von Einstiegsbild des ABAP Editors
(SE38). Geben Sie dort den Namen des Programms ein, markieren Sie Varianten unter
Teilobjekte und wählen Sie schließlich Anzeigen oder Ändern.

Funktionen
Folgende Funktionen stehen Ihnen im Einstiegsbild zur Verfügung:
• Anlegen von Varianten
• Anzeigen des Variantenkatalogs
• Anzeigen und Ändern von Werten und Attributen
• Kopieren, Löschen und Umbenennen von Varianten

April 2001 167


BC - ABAP Workbench: Werkzeuge SAP AG
Variantenübersicht anzeigen

Variantenübersicht anzeigen
Bevor Sie zu einem Programm eine neue Variante anlegen, sollten Sie nachprüfen, ob nicht
schon eine Variante existiert, die Sie verwenden oder eventuell abwandeln können.
Es kann zwischen 2 Anzeigen für Varianten gewählt werden:
• Klicken Sie dazu auf die F4-Taste des Feldes Variante im Einstiegsbild. Das folgende
Dialogfenster listet die vorhandenen Varianten auf:

• Wählen Sie Varianten → Katalog auf dem Einstiegsbild:

168 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Varianten anlegen und pflegen

Varianten anlegen und pflegen


Themen
Variante anlegen [Seite 170]
Attribute von Varianten [Seite 173]
Varianten ändern [Seite 176]
Varianten löschen [Seite 177]
Varianten drucken [Seite 178]

April 2001 169


BC - ABAP Workbench: Werkzeuge SAP AG
Variante anlegen

Variante anlegen
Voraussetzungen
Für das betreffende Programm ( alle Programmtypen außer vom Typ S) sind ein oder auch
mehrere Selektionsbilder definiert.

Vorgehensweise
So legen Sie eine neue Variante an:
1. Geben Sie auf dem Einstiegsbild des ABAP-Editors den Namen des Programms an, zu dem
Sie eine Variante anlegen möchten, markieren Sie Varianten und wählen Sie Ändern.
2. Geben Sie auf dem Einstiegssbild für Variantenpflege [Seite 167] den Namen der
anzulegenden Variante ein.
Berücksichtigen Sie den (weiter unten) angegebenen Hinweis zu Namenskonvention von
Varianten.
3. Wählen Sie Anlegen.
Besitzt das Programm mehrere Selektionsbilder, erscheint ein Popup für die Bildzuordnung.
Dies entfällt dagegen, wenn das betreffende Programm nur ein Selektionsbild enthält. Sie
gelangen im zweiten Fall auf das Selektionsbild des Reports
4. Markieren Sie bei mehreren Selektionsbildern diejenigen, für die die neue Variante angelegt
werden soll.

170 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Variante anlegen

Beispiel:

Wählen Sie Variante für alle Selektionsbilder, so gilt die Variante auch für diejenigen
Selektionsbilder, die erst nach dem Erstellen der Variante neu in das Programm
aufgenommen werden.
Ansonsten wird die Variante nur die Bilder mit Werten versorgen, die in der Liste
markiert sind.
5. Wählen Sie Weiter.
Sie gelangen auf das (erste) Selektionsbild des Reports.
Besitzt ihr Programm mehrere Selektionsbilder, so können Sie mit Hilfe der Blättertasten in
der linken oberen Ecke der Drucktastenleiste zwischen den einzelnen Selektionsbildern
navigieren und die Felder mit Werten versorgen. Blättern sie nur vorwärts, erscheint auf dem
letzten Selektionsbild die Taste Weiter.
6. Geben Sie die gewünschten Selektionswerte, einschließlich der Mehrfachselektion und freien
Abgrenzungen ein.
7. Wählen Sie Weiter.

Ergebnis
Sie erhalten dann ein Übersichtsbild (ABAP: Sichern von Variante...), auf dem Sie bestimmte
Attribute zu Ihrer Variante eingeben und die Variante sichern können. Siehe auch Attribute von
Varianten [Seite 173].

April 2001 171


BC - ABAP Workbench: Werkzeuge SAP AG
Variante anlegen

Beachten Sie beim Anlegen einer neuen Variante, daß Sie immer Werte und Attribute eingeben
müssen.

Namen von Varianten: Der Name kann aus bis zu 14 alphanumerischen Zeichen
bestehen. Das Zeichen " % " ist nicht zugelassen. Sollen jedoch Ihre Varianten
automatisch mit dem zugehörigen Programm transportiert werden, so müssen Sie
eine Systemvariante anlegen, deren Name mit " CUS& " bzw. mit " SAP& " (für
SAP-interne Systemvarianten) beginnen muß. Das Zeichen " & " ist nur im
Zusammenhang mit Systemvarianten und nur in diesem Präfix erlaubt, in allen
anderen Variantennamen dagegen verboten. Systemvarianten sind an den
Workbench Organizer angeschlossen und können in allen Mandanten angelegt
werden. Sie werden jedoch ausschließlich im Mandanten " 000 " abgelegt. Von allen
Mandanten kann auf sie zugegriffen werden.

172 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Attribute von Varianten

Attribute von Varianten


Zur Pflege von Attributen einer Variante gelangen Sie, wenn Sie die Vorgehensweise zum
Anlegen der Variante [Seite 170] befolgt haben.

Beispiel:

Beim Anlegen einer Variante können Sie auf dem Bild ABAP: Sichern Attribute der Variante...
folgende Attribute vergeben:
• Bedeutung
Geben Sie hier eine kurze, aussagekräftige Beschreibung der Variante ein. Die
Beschreibung kann bis zu 30 Zeichen lang sein.
• nur für Hintergrundverarbeitung
Markieren Sie dieses Feld, wenn die Variante nur in der Hintergrundverarbeitung, nicht
aber im Online-Betrieb verwendet werden soll.
• Variante schützen
Markieren Sie dieses Feld, wenn Sie Ihre Variante gegen Änderungen durch andere
Benutzer schützen möchten.
• Nur im Katalog anzeigen
Markieren Sie dieses Feld, wenn der Variantenname nur im Variantenkatalog angezeigt
werden soll, nicht jedoch in der F4-Werteliste.
• Systemvariante
Dieses Feld ist nicht eingabebereit und wird automatisch gesetzt, wenn eine
Systemvariante (beginnend mit CUS& bzw. SAP&) angelegt wurde.

April 2001 173


BC - ABAP Workbench: Werkzeuge SAP AG
Attribute von Varianten

Zu den Selektionen, die durch einer Variante versorgt werden, können Sie folgende weitere
Attribute vergeben:
• Typ
Das System zeigt hier an, ob es sich bei dem Feld um einen Parameter (P) oder ein
Selektionskriterium (S) handelt.
• Geschützt
Markieren Sie diese Spalte für jede Selektion, die auf dem Selektionsbild vor dem
Überschreiben geschützt werden soll. So gekennzeichnete Werte sieht der Benutzer
zwar, wenn er das Programm mit dieser Variante startet, sie sind aber nicht
eingabebereit.
• Unsichtbar
Markieren Sie diese Spalte, dann zeigt das System das entsprechende Feld auf dem
Selektionsbild des Programms nicht an.Sie haben mit dieser Option die Möglichkeit,
Selektionskriterien komplett auszublenden und damit auf das Aussehen des
Selektionsbildschirms Einfluß zu nehmen.
• Selektionsvariable
Markieren Sie diese Spalte, wenn Sie den Wert zu dieser Selektion erst zur Laufzeit
setzen wollen. Dazu haben Sie drei Möglichkeiten, die unter Variable Werte in Varianten
[Seite 179] ausführlich erläutert werden.
• Ohne Werte
Markieren Sie dieses Feld, wenn Sie bewirken möchten, das der Inhalt dieses speziellen
Feldes nicht in der Variante abgespeichert werden soll.
Das ist zum Beispiel dann von Vorteil, wenn der Inhalt dieses Feldes auf dem
Selektionsbild nicht überschrieben werden soll.
Beispiel: Sie legen für den Report ‘SAPTEST’, der den Parameter TEST hat, die
Variante ‘TESTVARIANTE’ an. Auf dem Attributebild der Variante ist bei dem Parameter
TEST das Kennzeichen ‘Ohne Werte’ gesetzt. Anschließend führen Sie das Programm
aus und füllen auf dem Selektionsbild des Feld TEST mit dem Wert ‘ABCD’. Holen Sie
jetzt vom Selektionsbild aus die Variante ‘TESTVARIANTE’, hat das Feld TEST noch
den Wert ABC. Es wird also insbesondere auch nicht mit SAPCE überschrieben.
• SPA/GPA
Dieses Attribut erscheint nur, wenn im Programm das entsprechende Selektionskriterium
mit ‘MEMORY ID xxx’ angelegt ist. Über die Variante können Sie das SPA/GPA Handling
ausschalten, d.h. Selektionskriterien, die auf dem Selektionsbild über SPA/GPA versorgt
werden, stehen nach dem Import einer Variante, die für diese Felder nur Initialwert
abgespeichert hat, ebenfalls auf Initialwert.

Weitere Funktionen
Sichern
Wenn Sie alle Parameter eingegeben haben, sichern Sie Ihre Einstellung. Wenn Sie eine neue
Variante anlegen, müssen Sie Angaben sowohl auf dem Werte- als auch dem Attributebild
machen. Sie können die Variante aber nur auf dem Attributebild sichern. Wenn Sie dagegen nur

174 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Attribute von Varianten

Werte oder Attribute einer bereits vorhandenen Variante ändern möchten, sichern Sie die
Variante auf dem entsprechenden Bild.

Ändern der Bildzuordnung


Auf dem Attributebild werden alle Selektionsbilder, für die die Variante definiert ist, aufgelistet. Da
das gleiche Selektionskriterium nicht nur auf einem, sondern auf mehreren Selektionsbildern
vorkommen kann, das Selektionskriterium für das Programm selbst aber eine globale Variable
ist, können die o.g. Attribute nur einmal und zwar beim ersten Auftreten des Selektionskriteriums,
gesetzt werden.

Möchten Sie nachträglich die Bildzuordnung ändern, wählen Sie die Funktion Ändern
Bildzuordnung.

Selektionsvariablen definieren
Siehe dazu Variable Werte in Varianten [Seite 179].

April 2001 175


BC - ABAP Workbench: Werkzeuge SAP AG
Varianten ändern

Varianten ändern
Vorgehensweise
So ändern eine bestehende Variante:
1. Rufen Sie die betreffende Variante auf, wie unter Variante anlegen [Seite 170] beschrieben.
2. Markieren Sie Werte oder Attribute im Einstiegsbild [Seite 167] als Teilobjekte.
3. Wählen Sie Ändern.
Sie gelangen zur Pflegebild der Attribute [Seite 173] bzw. zum Selektionbild des Programms,
je nach Auswahl unter 2.
4. Sichern Sie anschließend die geänderten Werte oder Attribute auf dem entsprechenden Bild.

176 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Varianten löschen

Varianten löschen
Vorgehensweise
So löschen Sie eine Variante:
1. Rufen Sie die betreffende Variante zum Programm auf, wie unter Variante anlegen [Seite
170] beschrieben.
2. Wählen Sie Varianten → Löschen im Einstiegsbild [Seite 167] für Variantenpflege.
Es wird das Popup ABAP: Varianten löschen angezeigt.
3. Wählen Sie, ob die Variante In allen Mandanten oder Nur im aktuellen Mandanten gelöscht
werden soll.
4. Bestätigen Sie Ihre Angaben.

Ergebnis
Das System gibt eine entsprechende Meldung in der Statuszeile aus.

Um mehrere Varianten auf einmal zu löschen, verzweigen Sie zum Varianten-


Katalog wählen Sie Varianten löschen. Markieren Sie im erscheinenden Auswahl-
Popup die betreffenden Varianten und wählen Sie Löschen.

April 2001 177


BC - ABAP Workbench: Werkzeuge SAP AG
Varianten drucken

Varianten drucken
Vorgehensweise
Um eine Variante auf zu drucken, geben Sie auf dem Varianten-Einstiegsbild den Namen der
Variante ein, wählen entweder die Attribute oder die Werte zur Anzeige aus (vom Bild ABAP:
Varianten Einstiegsbild oder vom Menü Varianten) und wählen Drucken. Beachten Sie bitte, daß
Sie die Werte nicht drucken können, wenn Sie sich im Änderungsmodus befinden.
Sie erhalten dann das Bild Bildschirmliste drucken.
Tragen Sie die für Ihre Abteilung relevanten Druckparameter ein, sofern die vom System
vorgeschlagenen Angaben nicht stimmen. Die entsprechenden Werte erfahren Sie bei Ihrem
Systemverwalter. Markieren Sie das Feld Sofort ausgeben.
Um die Variante zu drucken, wählen Sie Drucken.

178 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Variable Werte in Varianten

Variable Werte in Varianten


Um nicht stets eine neue Variante bei Werteänderung anlegen, können Sie variable Werte in
Varianten einsetzen.
Für die variable Selektion mit Varianten gibt es drei verschiedene Möglichkeiten:
• Variable Datumsberechnung (siehe auch Variable für Datumsberechnung anlegen [Seite
180])
Wenn Sie in einer Variante z.B. das Tagesdatum oder den letzten Tag des Monats
verwenden möchten, können Sie die variable Datumsberechnung nutzen.
• Benutzerspezifische Festwerte (siehe auch Benutzerspezifische Selektionsvariablen [Seite
182])
Sollen bestimmte Selektionskriterien mit Hilfe einer Variante benutzerspezifisch gefüllt
werden, so verwenden Sie benutzerspezifische Festwerte.
• In Tabelle TVARV definierte Festwerte (siehe auch Festwerte aus der Tabelle TVARV [Seite
186])
Sollen bestimmte Selektionskriterien mit Hilfe einer Variante aufgabenspezifisch gefüllt
werden, so legen Sie Festwerte in Tabelle TVARV ab. Um nicht für jede minimale
Änderung der Selektionswerte eine neue Variante anlegen und diese für jeden Lauf im
Hintergrund neu angeben zu müssen, können Sie einer Selektion einen Wert in der
Tabelle TVARV zuordnen und dann jedesmal nur diesen Wert ändern. Dies ist
besonders dann wichtig, wenn der entsprechende Wert auf dem Selektionsbild
eingabegeschützt ist.

April 2001 179


BC - ABAP Workbench: Werkzeuge SAP AG
Variable für Datumsberechnung verwenden

Variable für Datumsberechnung verwenden


Voraussetzungen
Um eine Selektionsvariable für die Datumsberechnung verwenden zu können, müssen Sie im
betreffenden Programm ein Datumsfeld als Selektionskriterium oder als Parameter definiert
haben.

PARAMETERS DATUM LIKE SY-DATUM.

Vorgehensweise
So ordnen Sie eine Variable für die Datumsberechnug zu einer bereits vorhandenen Variante zu:
1. Wählen Sie im Einstiegsbild für Variantenpflege die betreffende Variante aus.
2. Markieren Sie das Feld Attribute.
3. Wählen Sie Ändern.
Es erscheint das Attribute [Seite 173]-Bildschirm zur ausgewählten Variante.
4. Markieren Sie auf dem Attribute-Bildschirm für die gewünschten Felder die Spalte
Selektionsvariable.
5. Wählen Sie die Taste Selektionsvariablen.
Sie gelangen auf das Selektionsvariablenbild und können nun der Variante eine Variable für
das Datumsfeld zuordnen.
Beispiel:

6. Positionieren Sie den Cursor in der entsprechenden Zeile, für die die Ampel in der Spalte " D
" gelb anzeigt.
7. Schalten Sie die Ampel durch einmaliges Klicken auf grün um.
8. Scrollen Sie in der Anzeige nach rechts und wählen Sie die Eingabehilfe, um Vorschläge für
die Datumberechnung zu erhalten:

180 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Variable für Datumsberechnung verwenden

9. Markieren Sie einen Eintrag und wählen Sie Auswählen.

Falls erforderlich, ergänzen Sie die notwendigen Parameter. Um Tage zu


subtrahieren, müssen Sie sie im Format einer Zahl mit nachgestelltem Minus (z.B.
10-) angeben.
Beachten Sie, daß Sie die Vorschläge in der Liste nicht darüberhinaus ändern
können. Ebenso können Sie auch keine neuen Vorschläge hinzufügen.
10. Sichern Sie Ihre Angaben.
Sie kehren zum Attribute-Bildschirm zurück.
11. Sichern Sie die Attribute.

Ergebnis
Sie haben eine Variable für die Datumsberechnung einer Variante zugeordnet und gesichert.
Beachten Sie dabei, daß Sie nach der Auswahl der Selektionsvariablen nochmals im Attribute-
Bildschirm sichern müssen.
Mit der Taste Selektionsoptionen im Selektionsvariablenbild können Sie weitere Optionen für
Datumsvariablen auswählen.

April 2001 181


BC - ABAP Workbench: Werkzeuge SAP AG
Benutzerspezifische Selektionsvariablen

Benutzerspezifische Selektionsvariablen
Verwendung
Benutzerspezifische Festwerte ermöglichen es, auch benutzerspezifische Eingabewerte mit einer
Variante abzudecken. Diese Werte werden für jeden berechtigten Benutzer in bestimmten
Tabellen gespeichert und beim Ausführen mit der entsprechenden Variante individuell abgerufen.
So können Sie es den Benutzern ersparen, immer gleichbleibende Werte wie z.B. die
Personalnummer oder den Buchungskreis bei jedem Aufruf des Programms erneut eingeben zu
müssen. Auf dem Selektionsbild sind dann nur noch die Felder auszufüllen, deren Werte sich
von Programmlauf zu Programmlauf ändern. So können mehrere Benutzer mit derselben
Variante arbeiten.

Voraussetzungen
Um eine Selektion benutzerspezifisch zu füllen, muß in den Stammsätzen der in Frage
kommenden Benutzer der entsprechende Benutzerparameter mit einer Parameterkennung <pid>
gesetzt sein.
Im ausführbaren Programm (Report) müssen Sie dann einen Parameter oder ein
Selektionskriterium anlegen, das den Zusatz...MEMORY ID <pid> mit der entsprechenden
Parameterkennung enthält (siehe Vorschlagswerte aus dem SAP-Memory verwenden [Extern]).

DATA: BUCHUNGSKREIS(6).
...
SELECT-OPTIONS: BK FOR BUCHUNGSKREIS MEMORY ID BUK.
...

Funktionsumfang
Benutzerwerte anlegen
Siehe hierzu Benutzerspezifische Variablen anlegen [Seite 183].

Benutzerwerte ändern
Die Werte vorhandener Benutzervariablen lassen sich auf zwei Arten ändern:
• mit Hilfe der Funktionsbausteine VARI_USER_VARS_* (siehe auch Werte vom Programm
aus ändern [Seite 185])
• durch den Benutzer vom Selektionsbild aus (siehe auch Werte interaktiv ändern [Seite 184]).

182 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Benutzerspezifische Variablen anlegen

Benutzerspezifische Variablen anlegen


Voraussetzungen
Siehe Voraussetzungen unter Benutzerspezifische Selektionsvariablen [Seite 182].

Vorgehensweise
So legen Sie eine benutzerspezifische Variable zu einer bereits vorhandenen Variante an:
1. Wählen Sie im Einstiegsbild für Variantenpflege die betreffende Variante aus.
2. Markieren Sie das Feld Attribute.
3. Wählen Sie Ändern.
Es erscheint das Attribute [Seite 173]-Bildschirm zur ausgewählten Variante.
4. Markieren Sie auf dem Attribute-Bildschirm für die gewünschten Felder die Spalte
Selektionsvariable.
5. Wählen Sie die Taste Selektionsvariablen.
Sie gelangen auf das Selektionsvariablenbild.
6. Positionieren Sie den Cursor in der entsprechenden Zeile, für die die Ampel in der Spalte " B
" gelb anzeigt.
7. Schalten Sie die Ampel durch einmaliges Klicken auf grün um.
8. Scrollen Sie in der Anzeige nach rechts und wählen Sie die Eingabehilfe, um
Vorschlagswerte aus dem Benutzerstammsatz zu erhalten.
9. Markieren Sie einen Eintrag und wählen Sie Auswählen.
10. Sichern Sie Ihre Angaben.
Sie kehren zum Attribute-Bildschirm zurück.
11. Sichern Sie die Attribute.

April 2001 183


BC - ABAP Workbench: Werkzeuge SAP AG
Werte interaktiv ändern

Werte interaktiv ändern


Ein Benutzer kann die Werte seiner benutzerspezifischen Variablen auf dem Selektionsbild des
Programms ändern.

Voraussetzungen
Aktuell wird das Selektionsbild des Programms angezeigt.

Vorgehensweise
1. Wählen Sie dazu Springen → Benutzervariablen. Sie erhalten ein Dialogfenster mit den
benutzerspezifischen Selektionskriterien und Parametern. Von diesem Bild aus können Sie
sich die entsprechenden Werte anzeigen lassen oder auch ändern.
2. Wenn Sie Ändern wählen, erhalten Sie ein weiteres Dialogfenster, auf dem Sie entscheiden
können, ob Sie die Vorschlagswerte aus der Variablen oder Eingaben aus dem
Selektionsbild übernehmen wollen.
3. In beiden Fällen erhalten Sie ein zusätzliches Dialogfenster, auf dem Sie die gewünschten
Werte eingeben und sichern können.

Beachten Sie, daß sich diese Änderungen auf alle Varianten auswirken, die die
entsprechenden benutzerspezifischen Variablen verwenden.

184 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Werte vom Programm aus ändern

Werte vom Programm aus ändern


Um die aktuellen Werte von benutzerspezifischen Variablen vom Programm aus zu bearbeiten,
stehen Ihnen eine Reihe von Funktionsbausteinen zur Verfügung:

Funktionsbaustein Funktion
VARI_USER_VARS_GET Lesen vorhandener Variablenwerte
VARI_USER_VARS_SET Ändern vorhandener Variablenwerte
VARI_USER_VARS_COPY Kopieren von Variablenwerten
VARI_USER_VARS_DELETE Löschen von Variablenwerten
VARI_USER_VARS_RENAME Umbenennen von Variablenwerten
VARI_USER_VARS_DIALOG Erfassen von Variablenwerten im Dialog

Verwenden Sie Bearbeiten → Anweisungsmuster → CALL FUNCTION im ABAP-


Editor, um diese Funktionsbausteine in Ihrem Programm zu verwenden.

April 2001 185


BC - ABAP Workbench: Werkzeuge SAP AG
Festwerte aus der Tabelle TVARV

Festwerte aus der Tabelle TVARV


Verwendung
Die Verwendung von Festwerten aus der Tabelle TVARV bietet sich besonders in der
Hintergrundverarbeitung an. Sie müssen nicht für jede Wertänderung eine neue Variante
anlegen oder eine vorhandene Variante wiederholt ändern, sondern können einfach die
betroffenen Werte in der Tabelle TVARV ändern.

Beachten Sie, daß die Änderung eines Wertes in Tabelle TVARV sich auf alle
Varianten auswirkt, die diese Variable verwenden.

Funktionsumfang
• Neue Tabellenvariable aus der Tabelle TVARV anlegen.
Siehe Tabellenvariable aus TVARV anlegen [Seite 187]
• Vorhandene Einträge in der Tabelle TVARV ändern.
Siehe Einträge ändern [Seite 189]

186 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Tabellenvariable aus TVARV anlegen

Tabellenvariable aus TVARV anlegen


Sie haben grundsätzlich die Möglichkeit, aus vorhandenen Einträgen der Tabelle TVARV
auszuwählen oder neue Einträge in dieser Tabelle anzulegen, um sie anschließend der
Selektionsvariante zuzuordnen.

Vorgehensweise
Um einer Selektionvariante eine Variable aus der Tabelle TVARV zuzuordnen, gehen Sie wie
folgt vor:
1. Wählen Sie im Einstiegsbild für Variantenpflege die betreffende Variante aus.
2. Markieren Sie das Feld Attribute.
3. Wählen Sie Ändern.
Es erscheint das Attribute [Seite 173]-Bildschirm zur ausgewählten Variante.
4. Markieren Sie auf dem Attribute-Bildschirm die Spalte Selektionsvariable.
5. Wählen Sie die Taste Selektionsvariablen.
Sie gelangen auf das Selektionsvariablenbild und können nun einen Eintrag aus der Tabelle
TVARV der gewählten Selektionsvariante zuordnen.
6. Wählen Sie die F4-Hilfe rechts neben dem Feld Name der Variablen. Sie können eine
Variable aus der angezeigten Liste auswählen. In diesem Fall setzen Sie die
Vorgehensweise mit Schritt 11 fort.

Um von dieser Liste aus die Werte einer Variablen anzuzeigen, markieren Sie die
Variable und wählen Sie Werte. Das System verzweigt dann in Tabelle TVARV und
zeigt die entsprechenden Werte.
7. Wenn Sie dagegen einen neue Variable anlegen möchten, geben Sie den Namen an und
wählen Sie Anlegen.
Sie verzweigen zur Pflege der Tabelle TVARV.
8. Geben Sie den Namen der Variablen ein und wählen Sie Anlegen.
Es erscheint ein Popup, in dem Sie Werte den Variantenvariablen zuordnen können.

April 2001 187


BC - ABAP Workbench: Werkzeuge SAP AG
Tabellenvariable aus TVARV anlegen

9. Geben Sie den Parameterwert oder Werte für Selektionskriterien ein.


10. Wählen Sie Sichern.
Sie kehren zur Pflege der Tabelle TVARV zurück.
11. Mit der F3-Taste gelangen Sie zum Selektionsvariablenbild.
Der Name der Variablen wurde ins zugehörige Feld gestellt.
12. Wählen Sie Sichern.
Sie kehren zum Attribute-Bildschirm zurück.
13. Sichern Sie die Attribute.

Ergebnis
Sie haben mit der Vorgehensweise 1 - 13 eine neue Variable in der Tabelle TVARV angelegt,
ihre Werte gepflegt und die Variable einer Selektionsvariante zugewiesen. Die neue Variable
erscheint beim nächsten Aufruf der F4-Hilfe.

188 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Einträge in der Tabelle TVARV ändern

Einträge in der Tabelle TVARV ändern

Beachten Sie, daß Änderungen der Werte in Tabelle TVARV sich auf alle Varianten
auswirken, die die zugehörigen Variablen verwenden.

Zur Tabellenpflege verzweigen


Wenn Sie Änderungen an Festwerten aus der Tabelle TVARV vornehmen wollen, verzweigen
Sie zur Tabellepflege mit der Transaktion SM31. Geben Sie den Namen "TVARV" für die
Tabelle ein und wählen Sie dort Pflegen.
Sie verzeigen zur Pflege der Tabelle TVARV:

Funktionen
Variablenwerte anzeigen
So zeigen Sie den Wert einer Variablen an:
• Wenn Sie den Namen der Variablen kennen, können Sie die Variable direkt aufrufen. Geben
Sie dazu den Namen und den Typ ein und wählen Sie dann Anzeigen.
• Wenn Sie eine Liste der bestehenden Variablen anzeigen möchten, wählen Sie Katalog.
Sie gelangen dann auf ein Selektionsbild, auf dem Sie angeben können, welche
Variablen aus der Menge der vorhandenen Variablen in einer Übersicht aufgelistet
werden sollen. Wenn Sie nichts angeben, listet das System alle vorhandenen Variablen
auf.
Wählen Sie nun Ausführen, um die Übersicht über die Variablen zu erhalten.
Wählen Sie die gewünschte Variable mit Doppelklick zur Anzeige aus.

April 2001 189


BC - ABAP Workbench: Werkzeuge SAP AG
Einträge in der Tabelle TVARV ändern

Haben Sie einen Parameter gewählt, so erscheint ein Fenster, in dem der aktuelle Wert des
Parameters steht.
Haben Sie ein Selektionskriterium gewählt, so erscheinen die Selektionswerte auf einem neuen
Bild.

Variablenwerte ändern
So ändern Sie den Wert einer Variablen:
1. Wenn Sie Namen und Typ der Variablen kennen, können Sie die Variable direkt aufrufen.
Geben Sie dazu den Namen und den Typ ein und wählen Sie dann Ändern.
Um eine Übersicht über vorhandene Variablen zu erhalten, wählen Sie Katalog.
Sie gelangen dann auf ein Selektionsbild, auf dem Sie angeben können, welche
Variablen aus der Menge der vorhandenen Variablen in einer Übersicht aufgelistet
werden sollen. Wenn Sie nichts angeben, listet das System alle vorhandenen Variablen
auf.
Wählen Sie die gewünschte Variable mit Doppelklick aus.
Haben Sie einen Parameter gewählt, so erscheint ein Fenster, in dem der aktuelle Wert
des Parameters steht.
Haben Sie ein Selektionskriterium gewählt, so erscheinen die Selektionswerte auf einem
neuen Bild.
2. Ändern Sie die Werte durch Überschreiben entsprechend ab.
3. Sichern Sie die neuen Werte.
Die geänderten Werte stehen nun in Tabelle TVARV und werden zur Laufzeit des
Programms in die entsprechenden Selektionen gestellt.

Variablenwerte hinzufügen
Um direkt in der Tabelle eine neue Variable mit Werten anzulegen, geben Sie Namen und Typ
der Variablen an und wählen Anlegen.
Wollen Sie ein Selektionskriterium neu anlegen, so gelangen Sie auf ein Bild mit leeren
Eingabefeldern, auf dem Sie Unter- und Obergrenzen, Operatoren und Ein-/Ausschlußkriterien
eingeben können.
Wollen Sie einen Parameter anlegen, so erscheint ein Fenster, in dem Sie den Parameterwert
eingeben können.
Sichern Sie Ihre neue Variable.
Vergessen Sie nicht, diesen neuen Variablennamen auch in der Variante einzutragen, in der Sie
diese Variable verwenden wollen.

Variablenwerte kopieren
Um eine Variable zu kopieren, geben Sie Namen und Typ der Ausgangsvariablen ein und
wählen Sie Kopieren.
Sie erhalten ein Fenster, in dem Sie den Namen der Kopie angeben können. Durch Ausführen
der Funktion Kopieren sichern Sie diese neue Variable.
Sie können die neue Variable jetzt beliebig verändern. Vergessen Sie jedoch nicht, diesen neuen
Variablennamen auch in der Variante einzutragen, in der Sie diese Variable verwenden wollen.

190 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Einträge in der Tabelle TVARV ändern

Das Kopieren von Variablen ist auch aus der Kataloganzeige möglich.

Variablen löschen
Um eine Variable zu löschen, geben Sie Namen und Typ der Variablen ein und wählen Löschen.
Sie erhalten ein Dialogfenster, in dem Sie Ihre Entscheidung bestätigen oder widerrufen können.
Das Löschen von Variablen ist auch aus der Kataloganzeige möglich.

April 2001 191


BC - ABAP Workbench: Werkzeuge SAP AG
Programme mit Varianten ausführen

Programme mit Varianten ausführen


Voraussetzungen
Zum betreffenden Programm (aller Programmtypen, außer vom Typ S), zu dem ein oder mehrere
Selektionsbilder definiert sind, wurden Varianten angelegt.

Vorgehensweise
Um ein Programm mit Variante auszuführen, gehen Sie wie folgt vor:
1. Geben Sie auf dem Einstiegsbild des ABAP-Editors den Namen des auszuführenden
Programms ein.
2. Wählen Sie die Drucktaste Ausf.m.Variante.
Es erscheint ein Dialogfenster, in dem Sie die Variante eingeben können.

3. Klicken Sie auf die F4-Taste.


Die Liste aller zum Programm definierten Varianten erscheint.
4. Wählen Sie die Variante aus.
5. Bestätigen Sie Ihre Auswahl mit Auswählen oder mit ENTER.
Sie verzweigen zum Selektionsbild des Programms. Die Felder, die Sie über
die Variante versorgt haben, sind bereits ausgefüllt.
6. Wählen Sie zwecks Ausführung des Programms die Drucktaste Ausführen.

192 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Nachrichtenpflege

Nachrichtenpflege
Nachrichten werden für die Kommunikation des ABAP-Programms mit dem Benutzer eingesetzt
und finden ihre hauptsächliche Verwendung bei fehlerhaften Benutzereingaben am Bildschirm.
Um Nachrichten versenden zu können, muß das betreffende ABAP-Programm mit einer
Nachrichtenklasse verknüpft werden. Eine Nachrichtenklasse ist durch eine Nachrichten-ID
gekennzeichnet und enthält meist mehrere Nachrichten. Diese werden jeweils durch eine
Stringzeile definiert und können ferner Platzhalter enthalten.
Alle Nachrichten werden in der Tabelle T100 abgelegt und können mit der Transaktion SE91
angelegt und bearbeitet werden. Die angelegten Nachrichten können dann von der MESSAGE-
Anweisung verwendet werden.
Weitere Informationen zum Nachrichtenkonzept erhalten Sie im ABAP-Handbuch unter
Nachrichten [Extern].

In die Nachrichtenpflege verzweigen


§ Mit der Vorwärtsnavigation aus dem ABAP Editor.
§ Sie können die Nachrichten Ihres Programms vom ABAP Editor aus anzeigen. Wählen Sie
Springen → Nachrichten, um das Bild Nachrichtenklasse pflegen anzuzeigen. Das System
zeigt standardmäßig die Nachrichten des aktuellen Programms an.
§ Das Einstiegsbild wird über den Transaktionscode SE91 erreicht.

Wenn Sie im ABAP Editor Springen → Nachrichten wählen, ohne daß in Ihrem
Programm eine Nachrichtenklasse angegeben wurde, geht das System davon aus,
daß Sie eine bestehende Nachrichtenklasse durchsuchen möchten und fordert Sie
auf, eine Nachrichten-ID einzugeben.

Siehe auch
Nachrichtenklasse anlegen [Seite 194]
Nachrichten hinzufügen [Seite 195]
Langtexte zu Nachrichten erfassen [Seite 196]
IMG-Aktiviät einer Nachricht zuordnen [Seite 197]

April 2001 193


BC - ABAP Workbench: Werkzeuge SAP AG
Nachrichtenklasse anlegen

Nachrichtenklasse anlegen
Vorgehensweise
So legen Sie aus dem ABAP Editor heraus eine neue Nachrichtenklasse an:
1. Geben Sie hinter einer das Proramm einleitenden Anweisung (z.B. REPORT) oder in direkt
in der Anweisung MESSAGE ID <id> einen bis zu 20 stelligen Parameterwert als Message-
ID ein, z.B.:
REPORT <Name> MESSAGE-ID <Nachrichtenklasse>.
Nachrichten sind systemweit gültig. Die gewählte Message-ID (Name der
Nachrichtenklasse) darf daher noch nicht im System vorhanden sein.
2. Wählen Sie die Message-ID mit Doppelklick aus.
Wenn Sie eine im System bereits vorhandene ID angegeben haben, öffnet das System
lediglich das Dialogfenster Nachrichtenklasse pflegen. Ist dies der Fall, geben Sie
einfach eine andere ID an. Haben Sie eine im System neue ID angegeben, werden Sie
in einem Dialogfenster gefragt, ob Sie eine neue Klasse anlegen möchten.
3. Wählen Sie Ja.
Das System verzweigt zum Bild Nachrichtenklasse pflegen.
4. Geben Sie in Kurztext eine kurze Beschreibung der Nachrichtenklasse ein.
5. Wählen Sie Sichern.

Ergebnis
Wenn Sie die Drucktaste Nachrichten wählen, können Sie Ihrer Klasse Nachrichten hinzufügen.
Wenn Sie eine Nachrichten-ID im Coding mit Doppelklick auswählen, können Sie jederzeit zum
Bild Nachrichtenklasse pflegen zurückkehren.
Siehe auch Nachrichten hinzufügen [Seite 195].

194 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Nachrichten hinzufügen

Nachrichten hinzufügen
Voraussetzungen
Im ABAP-Programm wurde eine gültige Nachrichtenklasse angegeben.

Vorgehensweise
So fügen Sie vom ABAP Editor aus einer Nachrichtenklasse neue Nachrichten hinzu:
1. Wählen Sie den Menüpfad Springen → Nachrichten.
Die Liste aller Nachrichten der betreffenden Nachrichtenklasse wird angezeigt.
2. Markieren Sie die nächste freie Nachrichtennummer.
3. Wählen Sie Einzelpflege.
Die ensprechende Zeile ist eingebebereit.
4. Geben Sie den Nachrichtentext (Kurztext) ein.

5. Sofern es sich um einen selbsterklärenden Nachrichtentext handelt, setzen Sie das


entsprechende Flag.
Bedenken Sie, daß zu selbsterklärenden Nachrichten keine Langtexte gepflegt werden
können. Siehe auch Langtexte zu Nachrichten erfassen [Seite 196].
6. Wählen Sie Sichern.

Sie können auch mit der Vorwärtsnavigation eine neue Nachricht der gewählten
Klasse hinzufügen. Geben Sie hierzu in der MESSAGE-Anweisung eine Nummer für
die neue Nachricht ein und machen Sie einen Doppelkick auf diese. Als Nummer der
neuen Nachricht geben Sie am besten die nächste freie Nummer an. Falls Sie
jedoch die nächste freie Nummer nicht kennen, geben Sie irgendeine an, da Sie sie
im Anschluß wieder korrigieren können.

Ergebnis
Die definierte Nachricht kann im ABAP-Programm z.B. mit der MESSAGE-Anweisung gesendet
werden.

April 2001 195


BC - ABAP Workbench: Werkzeuge SAP AG
Langtexte zu Nachrichten erfassen

Langtexte zu Nachrichten erfassen


Verwendung
Ein Langtext ist immer dann zu erfassen, wenn der Kurztext zu einer Nachricht nicht ausreichend
ist.

Voraussetzungen
Ein Kurztext zur betreffenden Nachricht wurde bereits angelegt. Die Nachricht ist nicht als
selbsterklärend gekennzeichnet.

Vorgehensweise
So erfassen Sie in der SE91 einen Langtext zu einer existierenden Nachricht:
1. Positionieren Sie den Cursor auf die betreffende Nachricht.
2. Wählen Sie Einzelpflege.
Der zugehörige Kurztext erscheint farbig hervorgehoben.
3. Wählen Sie Langtext.
Der SAPScript Editor wird gestartet.
4. Erfassen Sie einen Langtext.
5. Führen Sie eine Prüfung im SAPScript Editor durch.
6. Sichern Sie Ihre Einträge.

Ergebnis
Sobald eine Nachricht ausgelöst wird, zu der ein Langtext erfaßt wurde, wird dies durch ein
"gelbes Fragezeichen" signalisiert.
Abhängig von den Einstellungen des SAPGUI wird es angezeigt:
• in der Statuszeile (am Ende des Bereichs, in dem die Nachricht erscheint),
• im Nachrichten-Popup (auf der Drucktaste mit der Beschriftung "Hilfe").
Durch Anklicken der Nachrichtenzeile bzw. der Drucktaste "Hilfe" wird der Langtext angezeigt.

196 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
IMG-Aktiviät einer Nachricht zuordnen

IMG-Aktiviät einer Nachricht zuordnen


Verwendung
Verwenden Sie diese Funktion immer dann, wenn ausgehend von der ausgelösten Nachricht
zu(r) entsprechenden IMG-Aktivität(en) im Einführungsleitfaden verzweigt werden soll.

Voraussetzungen
§ Ein Kurztext zur betreffenden Nachricht wurde bereits angelegt.
§ Die anzugebenden IMG-Aktivitäten kommen im Einführungsleitfaden vor.

Vorgehensweise
So gehen Sie in der SE91 vor, um eine IMG-Aktivität zuzuordnen:
1. Positionieren Sie den Cursor auf die betreffende Nachricht innerhalb der Liste.
2. Wählen Sie Einzelpflege.
Der zugehörige Kurztext erscheint farbig hervorgehoben.
3. Wählen Sie den Menüpfad Springen → Zusatzinformationen.
Das Popup Zuordnung Zusatzinformationen zu… erscheint.
4. Wählen Sie über die F4-Taste die Aktivität aus.
5. Sichern Sie die Zuordnung.
In der Statusleiste wird eine bestätigende Meldung ausgegeben.

Ergebnis
Zu einer Nachrichtennummer haben Sie eine oder mehrere IMG-Aktivitäten zugeordnet. Wird die
betreffende Nachricht ausgelöst, so kann direkt in den Einführungsleitfaden verzweigt werden,
um anschließend die zugeordneten IMG-Aktivitäten auszuführen.
Klicken Sie hierfür, nach dem Auslösen der Nachricht, die Nachrichtenzeile an und wählen Sie im
angezeigten Hilfe-Fenster die Drucktaste Einträge pflegen ("Bleistift-Ikone"). Im ausgegebenen
Popup Customizing Projekt auswählen klicken Sie die Drucktaste Ohne Projektangabe weiter an,
um zur Struktur im Einführungsleitfaden zu verzweigen.

April 2001 197


BC - ABAP Workbench: Werkzeuge SAP AG
Splitscreen-Editor

Splitscreen-Editor
Mit dem Splitscreem-Editor können Sie Quelltexte zweier Programme nebeneinander anzeigen.
Darüber hinaus können Sie Programme in zwei verschiedenen SAP-Systemen vergleichen. Der
Splitscreen-Editor enthält einen Teil der Standardfunktionalität des Editors. Darüber hinaus
verfügt er über spezielle Splitscreen-Funktionen.

Themenübesicht
Verwendung und Funktionen in Übersicht [Seite 199]
Den Splitscreen-Editor starten [Seite 200]
Einstiegsbild der SE39 [Seite 201]
Spezielle Splitscreen-Funktionen [Seite 202]
Editor-Funktionen [Seite 204]

Wenn Sie den Splitscreen-Editor im Zusammenhang mit dem


Modifikationsassistenten einsetzen möchten, lesen Sie die Dokumentation zu
Abgleich von Programmteilen [Extern].

198 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Verwendung und Funktionen in Übersicht

Verwendung und Funktionen in Übersicht


Verwendung
Der neue Splitscreen-Editor löst die bisherige Transaktion SE39 ab und soll für den
Modifikationsassistenten und im Editor zum Vergleich von Datenbank und Zwischenspeicher
benutzt werden.

Die alte Version des Splitscreen-Editors ist noch unter dem Transaktionscode TSE39
verfügbar.

Voraussetzungen
Wenn Sie Programme zwischen verschiedenen Systemen vergleichen möchten, dann können
Sie nur Systeme angeben, die in der Tabelle RFCDES eingetragen sind.

Funktionsumfang
• Realisierung des Vergleichs von Quelltexten innerhalb eines Systems und auch über
Systemgrenzen hinweg.
• Beim Vergleich erfolgt die Synchronisierung der Quellen nicht mehr auf Zeilenebene,
sondern auf Anweisungsebene.
• In jedem Teil-Fenster verbirgt sich ein vollwertiger ABAP-Editor mit eingeschränkten
Funktionen.
• Die Editor-Funktionen werden um Möglichkeiten des Vergleichs, der Positionierung, und der
Übernahme von speziell markierten Blöcken in die jeweilige andere Seite erweitert.
• Der Editor kann durch die Funktion Einstellungen parameterisiert werden. (Editorsicht und
Vergleichsalgorithmen)
• Die Fenstergrößen können zwischen ‘schmal’ und ‘breit’ gewählt werden.

Navigation
Eine Vorwärtsnavigation aus dem Splitscreen-Editor ist möglich und führt immer in die
Fullscreendarstellung des neuen Objektes.

April 2001 199


BC - ABAP Workbench: Werkzeuge SAP AG
Den Splitscreen-Editor aufrufen

Den Splitscreen-Editor aufrufen


Der Splitscreen-Editor kann auf verschiedene Weise gestartet werden:
• von jedem Bild aus mit Eingabe des Transaktionscodes SE39
• aus dem Modifikationsassistenten
• bei vorhandenem Zwischenspeicher aus dem ABAP Editor.

Besonderheiten
Mit dem Transaktionscode SE39 aufrufen
Sie haben die Möglichkeit, beliebige Quelltexte anzeigen oder ändern zu lassen. Beide Quellen
können parallel angezeigt, geändert, verglichen und gesichert werden. Es kann auf Quellen
eines Systems oder für eine "remote" Quelle erfolgen. Für die remote gelesene Quelle können
die Funktionen Ändern und Sichern nicht eingesetzt werden. Die Navigation im Remotesystem
wird auch nicht unterstützt.

Vom Modifikationsassistenten aufrufen


Der Splitscreeneditor besitzt ein linkes Editier- und ein rechtes Anzeigefenster. Im
Anzeigefenster wird die alte modifizierte SAP-Quelle angezeigt. Die modifizierten Codezeilen
sind dabei entsprechend gekennzeichnet. Eine Umschaltung auf Pflege ist in diesem Fenster
nicht möglich. Im Editierfenster erscheint die neue SAP-Quelle. Diese wird im
Modifikationsmodus angezeigt. Die Quelle ist normal nicht editierbar. Es sind nur die Editier-
Funktionen Löschen, Einfügen und Ersetzen möglich. Durch den Vergleich beider Quellen
werden die Differenzen auf beiden Seiten entsprechend markiert. Es soll nun eine Funktion zum
zusätzlichen Markieren eines einzelnen Blocks im Anzeigefenster geben. Dieser so markierte
Block wird dann auf Tastendruck an die entsprechende Stelle in das Editierfenster übernommen.
Die Übernahme von Quellzeilen in das Editierfenster soll auch durch die gewohnte
Funktionsreihenfolge Markieren, Übernehmen in Puffer und Einsetzen Puffer ermöglicht werden.

Aus dem ABAP Editor bei vorhandenem Zwischenspeicher aufrufen


Der Splitscreen-Editor kann aus dem ABAP Editor (SE38) bei vorhandenem Zwischenspeicher
zum Vergleich der beiden Versionen benutzt werden. Der Splitscreen wird dabei sofort im
Vergleichsmodus aufgerufen. Die Datenbankversion kann geändert werden. Die
Zwischenspeicherversion ist nicht änderbar.

200 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Einstiegsbild der SE39

Einstiegsbild der SE39


Programme aus dem aktuellen R/3-System vergleichen

Programm aus einem anderen R/3-System vergleichen


Wenn Sie ein Programm im aktuellen System mit einem Programm in einem anderen System
vergleichen möchten, wählen Sie Vergleich über Systeme auf dem Bild ABAP-Split-Screen-
Editor Einstieg. Sie können in der darauffolgenden Anzeige das R/3-System im Feld RFC-
Destination spezifizieren, aus dem Sie ein Programm vergleichen möchten.

Sie können im Feld RFC-Destination nur Systeme angeben, die in der Tabelle
RFCDES eingetragen sind.

April 2001 201


BC - ABAP Workbench: Werkzeuge SAP AG
Spezielle Splitscreen-Funktionen

Spezielle Splitscreen-Funktionen
Der Splitscreen-Editor unterstützt die folgenden speziellen Funktionen. Einige dieser Funktionen
sind nur bei bestimmten Aufrufen (siehe auch Den Splitscreen-Editor aufrufen [Seite 200])
aktiviert.
Vergleichen
Es wird ein Vergleich beider Quellen durchgeführt. Dabei wird der Vergleich nicht wie bisher auf
Zeilenebene, sondern auf der Statementebene durchgeführt. Durch ‘Einstellungen‘ ist es möglich
Kommentarzeilen oder/und Einrückungen beim Vergleich auszublenden.
Das Ergebnis des Vergleichs wird in den Editorfenstern durch die Farbe ‚intensiv‘
gekennzeichnet. Eingefügte Zeilen werden auf der entsprechenden anderen Seite durch
eingefügte Leerzeile kenntlich gemacht. Im Vergleichermodus werden beide Editorfenster,
unabhängig von der Cursorposition, durch die Blättertasten synchron geblättert. Ein asynchrones
Blättern ist durch die Scrollbar und die ‚Bild hoch‘ und ‚Bild runter‘ Tasten möglich.

Vergleichsmodus aus
Diese Funktion entfernt die Leerzeilen, die durch den Vergleich in die Quellen eingefügt wurden
und die Kennzeichnung der Differenzen. Gleichzeitig wird der synchrone Blättermodus wieder
aufgehoben. Die Blättertasten sind wieder cursorabhängig.

Nächste Gleichheit
Die Quellen der beiden Fenster werden auf die nächste Gleichheit positioniert.

Vorige Gleichheit
Die Quellen der beiden Fenster werden auf die vorige Gleichheit positioniert.

Nächste Differenz
Die Quellen der beiden Fenster werden auf die nächste Differenz positioniert.

Vorige Differenz
Die Quellen der beiden Fenster werden auf die vorige Differenz positioniert.
Ausgangspunkt für die obigen Positionierfunktionen ist immer die aktuelle Seite. Man kann damit
durch Blättern mehrere Differenzstellen überspringen.

Übernehmen in Puffer (nur mit dem Modifikationsassistenten)


Der durch die Vergleichsoperation gekennzeichnete Coding-Block, auf dem der Cursor steht,
wird in den Puffer übernommen. Vorher werden die durch den Modifikationsassistenten
eingefügten Kommentarzeilen entfernt.
Suche nach markierten Block (noch nicht realisiert)
Ein beliebig markierter Block soll in der jeweils andere Quelle gesucht werden.

Fenstergröße einstellen (schmal <-> breit)

Sie können mit dieser Taste oder über den Menüpfad Einstellungen → Bild schmal< -
>breit zwischen einem schmalen und breiten Bildschirm umschalten. Standardmäßig ist beim

202 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Spezielle Splitscreen-Funktionen

Einstieg über SE39 der breite Bildschirm eingestellt. Beim Aufruf aus der SE38 ‘Vergleich
Zwischenspeicher’ ist der schmale Schirm voreingestellt.
Beispiel:

April 2001 203


BC - ABAP Workbench: Werkzeuge SAP AG
Editor-Funktionen

Editor-Funktionen
Bei einigen im Funktionsumfang des ABAP Editors enthalten Funktionen ist deren besondere
Bedeutung im Splittscreen-Editor zu berücksichtigen.

Umschalten Anzeigen/Ändern
Diese Funktion reagiert auf Cursorposition (Seitenauswahl). Beim Aufruf aus dem
Modifikationaassistenten darf nur die neue SAP-Quelle auf Änderbar geschaltet werden.
Die remote gelesene Quelle kann ebenfalls nicht in den Änderungsmodus geschaltet werden.

Anderes Programm
Bei Remote-Aufrufen und bei Aufruf aus dem Modifikationsassistenten ist diese Funktion nicht
ausführbar.

Sichern
Es wird die aktuell bearbeite Quelle gesichert.
War der Vergleichsmodus aktiv, so werden vor dem Sichern die durch den Vergleich eingefügten
Leerzeilen wieder entfernt.
Die remote gelesenen Quellen können nicht gesichert werden.

Aktive / Inaktive Quelle anzeigen


Es können jederzeit beide Versionen eines Objekts angezeigt werden (falls vorhanden).
Beim Aufruf aus Modifikationsassistenten ist diese Funktion nicht ausführbar.

Ausführen
Bei Aufruf aus dem Modifikationsassistenten nicht möglich. Eine remote gelesene Quelle ist
ebenfalls nicht ausführbar.

Version ziehen
Bei Aufruf aus Modifikationsassistenten ist diese Funktion nicht ausführbar.

Markieren, Kopieren in Puffer, Einsetzen Puffer


Durch diese Anweisungsfolge ist es möglich, Anweisungsblöcke von einer Quelle zu anderen zu
transportieren.

204 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Class Builder

Class Builder
Der Class Builder ist ein Werkzeug der ABAP Workbench, mit dem globale ABAP-Klassen und -
Interfaces angelegt, definiert und getestet werden können.

Themenübersicht:
Class Builder: Einführung [Seite 206]
Übersicht über vorhandene Objekttypen [Seite 214]
Pflege von Objekttypen [Seite 217]
Definieren von Komponenten [Seite 225]
Beziehungen zw. Objekttypen definieren [Seite 241]
Testumgebung [Seite 253]

April 2001 205


BC - ABAP Workbench: Werkzeuge SAP AG
Class Builder: Einführung

Class Builder: Einführung


Einsatzmöglichkeiten
Das Werkzeug Class Builder ermöglicht die Pflege von globalen ABAP-Klassen und -Interfaces.
Diese beiden Objekttypen werden, ähnlich wie globale Datentypen, im ABAP Repository
definiert und bilden so eine zentrale R/3-Klassenbibliothek. Sie sind somit im gesamten System
sichtbar. Eine Navigation über bereits vorhandene Klassen und Interfaces aus dieser Bibliothek
wird mit dem Class Browser [Seite 215] vorgenommen.

Klassen können sowohl lokal als auch global definiert werden. Die lokale Definition
erfolgt in Programmen, Funktionsgruppen oder als Hilfsklassen von globalen
Klassen der Class-Pools. Lokale Klassen sind nur innerhalb des definierenden
Moduls sichtbar.

Integration
Der Class Builder ist als zentrales Werkzeug in die ABAP Workbench integriert. Mit Hilfe des
Class Browsers können vohandene globale Objekttypen aus der R/3-Klassenbibliothek zur
Anzeige gebracht und in die Pflege verzweigt werden. Die folgende Abbildung zeigt die
Architektur des Class Builders und das Zusammenspiel der Komponenten untereinander mit
Einbeziehung des Class Browsers.
Über den Menüpfad Entwicklungà Class Builder oder mit dem Transaktionscode SE24 wird das
Einstiegsbild [Seite 218] des Class Builders errreicht. Von hier aus ist es möglich, entweder den
Bestand der R/3-Klassenbibliothek zu sichten, oder direkt zur Pflege der Grunddaten der
Objekttypen und zum Class Editor zu verzweigen, in dem eine Definition der Objekttypen und
ihrer Komponenten vorgenommen werden kann. Der Definition der Objekttypen kann sich die
Methodenimplementierung im ABAP Editor direkt anschließen. Weiterhin ist es möglich, vom
Einstiegsbild oder vom Class Editor aus, auf die Testumgebung zuzugreifen.

206 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Class Builder: Einführung

Direkte Navigation
Datenfluß

Class Builder Class Browser


Grunddatenpflege

Class Editor
SE24
Einstiegsbild

ABAP Editor
Klassenbibliothek

Testumgebung

Funktionsumfang
Den Class Builder rufen Sie auf um,
• sich mit Hilfe des Class Browsers Überblick über vorhandene globale Objekttypen und deren
Beziehungen untereinander zu verschaffen.
• zur Pflege der vorhandenen globalen Klassen oder Interfaces zu verzweigen.
• neue Klassen oder Interfaces anzulegen.
• Vererbung globaler Klassen zu realisieren.
• Interface-Kompositionen anzulegen.
• Attribute, Methoden und Ereignisse zu Klassen oder Interfaces anzulegen und zu
spezifizieren.
• klasseninterne Typen zu definieren.
• Methoden zu implementieren.
• Methoden zu redefinieren.

April 2001 207


BC - ABAP Workbench: Werkzeuge SAP AG
Class Builder: Einführung

• lokale Hilfsklassen zu pflegen.


• Klassen oder Interfaces in einer simulierten Laufzeitumgebung zu testen.

Einschränkungen
Definieren von Objekttypen auf der Grundlage einer grafischen Objektmodellierung ist derzeit
nicht möglich.

208 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Namenskonventionen für ABAP Objects

Namenskonventionen für ABAP Objects


Die im Class Builder erstellten globalen Klassen und Interfaces werden in der Klassenbibliothek
abgelegt und vom zentralen Repository verwaltet. Sie haben daher denselben Namensraum wie
alle anderen Repository-Elemente (Datenbanktabellen, Strukuren, Datenelemente etc.).
Daraus ergibt sich eine Notwendigkeit, Namenskonventionen für Objekttypen und ihre
Komponenten festzulegen und sie innerhalb der Enwicklung einheitlich zu verwenden.

Die im folgenden angegebenen Namenskonventionen wurden für den SAP-


Namensraum konzipiert.
Werden Namenskonventionen zu Objekttypen (Namen von Klassen und Interfaces)
nicht eingehalten, so führt dies zum Konflikt bei der Erzeugung von persistenten
Klassen, da hier die zugehörigen Co-Klassen nicht generiert werden können.

Namensraum für Komponenten


Den gleichen Namensraum innerhalb einer Klasse teilen sich:
§ alle Komponenten der Klasse selbst (Attribute, Methoden, Ereignisse, Konstruktoren,
Interfaces, klasseninterne Datentypen und Aliases).
§ alle öffentlichen und geschützten Komponenten aller Oberklassen.

Innerhalb der Methodenimplementierung gibt es einen lokalen Namensraum. Die


Namen der lokalen Variablen können die Namen der Klassenkomponenten
überdecken.

Namenskonventionen
Die im folgenden formulierten Namenskonventionen sind recht allgemein gahalten, so daß eine
Beinträchtigung der individuellen Namensgebung von Entwicklungsobjekten vermieden wird.

Allgemeine Bemerkungen
Bei Wahl der Bezeichner von Entwicklungsobjekten sind folgende Grundsätze einzuhalten:
• Grundsätzlich soll die englische Sprache zur Bezeichnung von Objekten verwendet werden.
Beispiel: DISPLAY statt ANZEIGEN, CHANGE statt ÄNDERN, MARK statt
KENNZEICHEN
§ Wenn vorhanden, sollen Glossarbegriffe verwendet werden.
Beispiel: CL_COMPANY_CODE statt BUKRS
§ Bei zusammengesetzten Bezeichnern ist der Unterstrich ( _ ) als Trennzeichen zu wählen.
Da die Groß-/Kleinschreibung nicht unterstützt wird, ist nur der Unterstrich das einzig freie
Zeichen zur Trennung.
Beispiel: CL_COMPANY_CODE, CL_GENERAL_LEDGER_ACCOUNT
§ Bezeichnungen sollen inhaltlich beschreiben, um was es sich handelt und nicht wie es
implementiert ist.

April 2001 209


BC - ABAP Workbench: Werkzeuge SAP AG
Namenskonventionen für ABAP Objects

Beispiel: PRINT_RECTANGLE statt RECTANGLE_TO_SPOOL

Konventionen für Objekttypen

Klassen- und Interfacenamen der Klassenbibliothek liegen im gleichen Namensraum wie


Datenelemente, Tabellen, Strukturen, Typen und werden zentral in der Tabelle TADIR verwaltet.

Klasse in Klassenbibliothek CL_<class name>


Der Klassenname soll aus Substantiven bestehen und im
Singular gehalten sein.
CL_COMPANY_CODE,
CL_GENERAL_LEDGER_ACCOUNT
Interfaces in Klassenbibliothek IF_<interface name>
Für Interfaces gelten die gleichen Namenskonventionen wie
für Klassen.
IF_STATUS_MANAGEMANT, IF_CHECKER
Programmlokale Klasse LCL_<class name>
(Empfehlung)
Der Klassenname soll aus Substantiven bestehen und im
Singular gehalten sein.
LCL_TREE_MANAGEMENT
Programmlokales Interface LIF_<interface name>
(Empfehlung)
Für Interfaces gelten die gleichen Namenskonventionen wie
für Klassen.
LIF_PRINTER

(Empfehlung) bedeutet: Die Verwendung der angegebenen Präfixe ist NICHT


zwingend vorgeschrieben. Sollten allerdings Präfixe benutzt werden, dann sind die
oben beschriebenen zu verwenden.

Konventionen für Komponenten

Methodenname <method name>


Der Methodenname soll mit einem Verb beginnen.
GET_STATUS, CREATE_ORDER, DETERMINE_PRICE
Ereignis <event name>
Ereignisnamen sollen in der Form
<Substantiv>_<Verb in Partizipform> benannt werden.
BUTTON_PUSHED, COMPANY_CODE_CHANGED,
BUSINESS_PARTNER_PRINTED

210 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Namenskonventionen für ABAP Objects

Klassenlokale Typdefinitionen TY_<type name>


(Empfehlung) TY_INTERNAL_TYPE, TY_TREE_LIST
Datendefintionen (Variable) <variable name>
Bei der Bezeichung von Variablen innerhalb einer Klasse
(CLASS-DATA, DATA) ist die Verwendung von Verben am
Anfang zu vermeiden (um Konflikte mit Methodennamen zu
vermeiden)
LINE_COUNT, MARK_PRINTED, MARK_CHANGED,
STATUS
Datendefinition (Konstante) CO_<constant name>
(Empfehlung) CO_MAX_LINE, CO_DEFAULT_STATUS,
CO_DEFAULT_WIDTH, CO_MAX_ROWS

(Empfehlung) bedeutet: Die Verwendung der angegebenen Präfixe ist NICHT


zwingend vorgeschrieben. Sollten allerdings Präfixe benutzt werden, dann sind die
oben beschriebenen zu verwenden.

Konkrete Methodenbezeichnungen

Attributzugriffe SET_<attribute name>, GET_<attribute name>


Attributzugriffe auf Attribute jedweder Art sollen mit GET_
bzw. SET_ vorangestellt werden.
GET_STATUS, SET_USE_COUNT
Methoden, die ein Ereignis ON_<event name>
behandeln
Methoden, die ein Ereignis (EVENT) behandeln, sollen mit
ON beginnen und danach den Namen des Ereignisses, das
sie behandeln, enthalten.
ON_BUTTON_PUSHED,
ON_BUSINESS_PARTNER_PRINTED
Methoden, die AS_<neuer Typ>
Typkonvertierungen
AS_STRING, AS_ISOCODE
durchführen
Methoden, die einen boolschen IS_<adjective>
Wert zurückliefern
IS_OPEN, IS_EMPTY, IS_ACTIVE
Diese Methoden dürfen keine
EXCEPTIONs zurückliefern.
Empfehlung: Der boolsche Wert
soll durch die Werte SPACE/‘X‘
für False/True repräsentiert
werden.

April 2001 211


BC - ABAP Workbench: Werkzeuge SAP AG
Namenskonventionen für ABAP Objects

Prüfmethoden CHECK_<objective>
CHECK_AUTHORIZATION, CHECK_PROCESS_DATE

Methodenlokale Konventionen
Für Parameter
Die Parameter werden aus der Sicht der sie implementierenden Methode betrachtet:

IMPORTING-Parameter IM_<parameter name>


EXPORTING-Parameter EX_<parameter name>
CHANGING-Parameter CH_<parameter name>
RESULT RE_<result>

Die Verwendung von Präfixen ist NICHT zwingend vorgeschrieben. Sollten allerdings
Präfix ebenutzt werden, dann sind die oben beschriebenen Präfixe zu verwenden.

Für Exceptions
Im folgenden ist eine Tabelle von sinnvollen EXCEPTIONs angegeben, die auch generisch
angewendet werden können. (Beispiel: ...NOT_FOUND könnte zu DATE_NOT_FOUND werden)

EXCEPTION Bedeutung
ACTION_NOT_SUPPORTED Die angeforderte Aktion bzw. der angeforderte OK-Code wird
nicht unterstützt.
CANCELLED Sollte in einer Methode anhand eines Dialoges erst ermittelt
werden, was zu tun ist (Beispiel: Auswahlliste) und der Benutzer
wählt "Abbrechen", kann diese EXCEPTION gesetzt werden
EXISTING Ein neu anzulegendes Objekt existiert auf der Datenbank schon.
FAILED Die Methode konnte ihre Aufgabe aufgrund der aktuellen
Umfeldsituation nicht ausführen. Diese Exception ist
insbesondere für solche Fälle gedacht, in denen sich das
Umfeld temporär in einer Konstellation befindet, die das
Ausführen der Methodenaufgabe unmöglich macht.
..._FAILED Ein Teilfunktion der Methode konnte nicht aufgrund der
aktuellen Umfeldsituation ausgeführt werden. (OPEN_FAILED,
CLOSE_FAILED, SELECTION_FAILED,
AUTHORIZATION_FAILED)
FOREIGN_LOCK Daten sind durch anderen Benutzer gesperrt.
INCONSISTENT Objektdaten auf der Datenbank sind inkonsistent.

212 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Namenskonventionen für ABAP Objects

EXCEPTION Bedeutung
..._INCONSISTENT Die Teilobjektdaten ... eines Objektes auf der Datenbank sind
inkonsistent.
INVALID Die eingegebenen Objektdaten sind nicht korrekt. (z.B.
Buchungskreis nicht vorhanden) (im Gegensatz zu
NOT_QUALIFIED)
..._INVALID Die eingegebenen Teilobjekdaten eines Objektes sind nicht
korrekt. (im Gegensatz zu NOT_QUALIFIED)
INTERNAL_ERROR Der letzte Ausweg. Wenn der Fehler nicht weiter eingegrenzt
werden kann, dann erst soll diese EXCEPTION verwendet
werden.
NOT_AUTHORIZED Der Benutzer ist nicht zur Aktion berechtigt.
NOT_CUSTOMIZED Das angeforderte Objekt ist nicht korrekt customized.
..._NOT_CUSTOMIZED Das Teilobjekt ... des angeforderten Objektes ist nicht korrekt
customized.
NOT_FOUND Das verlangte Objekt ist nicht gefunden worden.
..._NOT_FOUND Das Teilobjekt ... des verlangten Objektes ist nicht gefunden
worden.
NOT_QUALIFIED Die Kombination der Eingabeparameter reicht nicht aus, um die
Funktion der Methode auszuführen. (im Gegensatz zu INVALID)
..._NOT_QUALIFIED Ein bestimmter Parameter der Methode ist nicht qualifiziert.
NUMBER_ERROR Fehler bei der Nummernvergabe
SYSTEM_ERROR Sollte aus dem Basissystem ein Fehlercode gemeldet werden,
der nicht erwartet wird, dann kann diese EXCEPTION gesetzt
werden.

April 2001 213


BC - ABAP Workbench: Werkzeuge SAP AG
Übersicht über vorhandene Objekttypen

Übersicht über vorhandene Objekttypen


Verwendung
Sie benötigen diese Funktionen,
• um Definitionen von Klassen und Interfaces der Klassenbibliothek zu sichten und
auszuwerten.
• um weitere Infomationen zu Objekttypkomponenten wie etwa zu Methoden- und
Parameterdefinitionen zu erhalten.

Aktivitäten
Um sich einen Überblick über den Bestand vorhandener Objekttypen der Klassenbibliothek zu
verschaffen, setzen Sie am besten den Class Browser [Seite 215] ein.

Sie haben auch weiterhin die Möglichkeit, das Repository-Infosystem zu nutzen. Wählen Sie
dazu den Menüpfad Übersichtà Infosystem aus der ABAP Workbench. Mit der weiteren Auswahl
ABAP Objects können Sie zur Klassenbibliothek oder zu Teilobjekten der Klassenbibliothek
verzweigen.

214 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Class Browser

Class Browser
Einsatzmöglichkeiten
Das Werkzeug Class Browser dient zur Navigation in der R/3-Klassenbibliothek, in der globale
ABAP-Klassen und -Interfaces oder Business-Objekttypen abgelegt sind.
Sie rufen den Class Browser auf,
• um sich einen Überblick über den Bestand vorhandener Klassen und Interfaces oder
Business-Objekttypen zu veschaffen.
• um die Beziehungen der Objekttypen untereinander zu analysieren.
• um aus dieser Übersicht heraus zur Pflege einzelner Objekttypen zu gelangen.

Integration
Der Class Browser ist im Class Builder [Seite 206] intergriert und wird dort über die Funktion
Class Browser oder mit der Transaktion CLABAP aufgerufen.

Funktionsumfang
Anzeige
Für die Anzeige der Klassen und Interfaces können zusätzlich zu bereits vorkonfigurierten
Sichten unterschiedliche Filter berücksichtigt werden:
• Alle Klassen
Sicht auf alle Klassen und Interfaces der R/3-Klassenbibliothek, bezogen auf die
Komponentenhierarchie.
• Business-Objekte
Anzeige von betriebswirtschaftlichen Objekttypen der R/3-Klassenbibliothek.
• Andere Einstellungen
Die Anzeige kann mit zusätzlichen Filterkriterien eingeschränkt werden. Es wird zwischen 3
Kriterien unterschieden:

1. Filter Objekttypen
Die angezeigten Objekttypen werden nach Art, Status und Transporteigenschaften selektiert.

2. Filter Beziehungen
Mit diesem Filter wird nach Beziehungen zwischen Objekttypen selektiert.

3. Sonstige Filter
Sie bestimmen mit diesem Filter, ob die Selektion der Objekttypen gemäß der
Komponentenhierarchie erfolgen soll oder nicht.

Pflege
Aus der Anzeige kann direkt zur Pflege der Objekttypen verzweigt werden. Markieren Sie hierzu
den entsprechenden Objekttyp. Mit einem Doppelklick gelangen Sie zum Class Editor des Class
Builders. Im Änderungsmodus steht Ihnen also die Arbeitsumgebung für die Pflege von
Objekttypen zur Verfügung.

April 2001 215


BC - ABAP Workbench: Werkzeuge SAP AG
Class Browser

Einschränkungen
Das Anlegen neuer Objekttypen ist aus dem Class Browser nicht möglich.

216 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Objekttypen anlegen

Objekttypen anlegen
Funktionsumfang
Beim Alegen von Klassen und Interfaces werden lediglich Grunddaten festgelegt. Daraus
resultiert ein Tabelleneintrag für den betreffenden Objekttyp im ABAP Dictionary. Der Festlegung
von Grunddaten kann sich eine detaillierte Bearbeitung von Objekttypkomponenten anschließen.
Das System verzweigt im Anschluß an die Grunddatenpflege zum Class Editor [Seite 227].

Aktivitäten
Den Class Builder rufen Sie aus der ABAP Workbench über Entwicklung → Class Builder oder
mit dem Transaktionscode SE24 auf.
• Um in die Pflege eines bestehenden Objekttyps zu verzweigen, geben Sie den Namen des
Objekttyps ein und wählen Sie Anzeigen oder Ändern.
• Um eine neue Klasse anzulegen, befolgen Sie die unter Neue Klassen anlegen [Seite 220]
beschriebene Vorgehensweise.
• Wie Sie Interfaces anlegen möchten, erfahren Sie unter Neue Interfaces anlegen [Seite 223].

April 2001 217


BC - ABAP Workbench: Werkzeuge SAP AG
Einstiegsbild

Einstiegsbild
Vorgehensweise
1. Verzweigen Sie in die ABAP Workbench.
2. Starten Sie den Class Builder mit der Transaktion SE24 oder über den Menüpfad
Entwicklung→ Class Builder.
Das Einstiegsbild des Class Builders wird angezeigt:

3. Geben Sie den Namen des Objekttyps ein, den Sie anzeigen, ändern, anlegen oder testen
möchten.
Maximal können 30 Zeichen vergeben werden.
4. Wählen Sie den Objekttyp aus:

Klasse Definition und Implementierung von globalen Klassen und der zugehörigen
Komponenten: Attribute, Methoden, Ereignisse und der klasseninternen
Datentypen. Die Klassendefinition kann weiterhin durch Interfaces ergänzt
werden. In diesem Fall muß die Klasse alle Methoden implementieren, die
im Interface deklariert sind.
Interface Von Klassen unabhängige Definition von Interfaces, die eine Schnittstelle
zu einem Objekt beschreiben. Wie bei der Klassendefinition können sie die
Komponenten Attribute, Methoden und Ereignisse beinhalten, ohne sie
jedoch zu implementieren. Ein Interface kann erst verwendet werden,
nachdem es von einer Klasse implementiert wurde.

218 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Einstiegsbild

5. Wählen Sie die Funktion Anzeigen, Ändern, Anlegen oder Testen.

Weitere Funktionen
• Über die Funktion Class Library wird der Class Browser [Seite 215] gestartet, mit dem Sie
den Bestand der R/3-Klassenbibliothek sichten können.
• Mit der Funktion Prüfen können Sie eine Prüfung auf Syntax-Fehler veranlassen.

April 2001 219


BC - ABAP Workbench: Werkzeuge SAP AG
Neue Klasse anlegen

Neue Klasse anlegen

Ausführliche Informationen zu ABAP-Klassen erhalten Sie im ABAP-Handbuch unter


Klassen [Extern].

Voraussetzungen
Bei der Namensvergabe orientieren Sie sich an der SAP-Namenskonvention für globale ABAP-
Klassen.

Vorgehensweise
So legen Sie vom Einstiegsbild des Class Builders eine vollständig neue Klasse an:
1. Geben Sie unter Objekttypname den Namen der neuen Klasse entsprechend der
Namenskonvention ein.
2. Wählen Sie den Objekttyp Klasse.
3. Wählen Sie Anlegen.
Das Dialogfenster Anlegen Klasse … mit dem Namen der Klasse wird angezeigt

4. Für die Definition der Grunddaten stehen Ihnen folgende Angaben zur Verfügung:
- Klasse
Name der neuen Klasse.
- Beschreibung
Ein Kurztext als Beschreibung der anzulegenden Klasse.
- Instanziierung
Jede Klasse ist standardmäßig mit dem Option Public gekennzeichnet. Dies bedeutet,
daß jeder Verwender Instanzen der jeweiligen Klasse (mit CREATE OBJECT) erzeugen

220 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Neue Klasse anlegen

kann. Mit der Option Protected legen Sie fest, daß nur geerbte Klassen oder die
betreffende Klasse selbst Instanzen dieser Klasse erzeugen können. Wählen Sie
dagegen die Option Private, dann kann nur die betreffende Klasse selbst (nur über
eigene Methode) ihre Instanzen erzegen.
Sie können mit diesen Optionen weitere Einschränkungen bezüglich der
Instanzerzeugung vornehmen. Somit können beispielsweise Voraussetzungen für die
Verwaltung persistenter Objekte geschaffen werden, bei der die Eindeutigkeit von
Objekten gewährleistet sein muß.
- Vererbung
Mit der Option Abstrakt definieren Sie eine abstrakte Klasse. Zu dieser Klasse kann
keine Instanz erzeugt werden. Eine abstrakte Klasse kann als Vorlage für ihre
Unterklassen verwendet werden. Der Zugriff auf diese Klasse kann nur über ihre
statischen Attribute oder über ihre Unterklassen erfolgen.
Mit der Option Final definieren Sie eine finale Klasse. Diese Klasse bildet den Abschluß
in der Vererbungshierarchie, da eine finale Klasse keine weiteren Unterklassen bilden
darf.
Falls eine abstakte Klasse zugleich auch als final definiert wird. Dies ist dann sinnvoll,
wenn nur auf die statischen Komponenten dieser Klasse zugegriffen werden soll.
- Persistent

- Nur Modelliert
Falls Sie dieses Ankreuzfeld markieren, wird die Unterklasse nicht im Class-Pool
aufgenommen. Auf diese Klasse kann zur Laufzeit weder zugegriffen noch kann sie
getestet werden.
Künftig soll mit dieser Kennzeichnung ein Entwurf von Klassen aus einem grafischen
Modell, ohne Implementierung, ermöglicht werden.
- Ikone Vererbung anlegen
Nach dem Anklicken dieser Ikone wird zusätzlich die Option Erbt von eingeblendet. Hier
kann der Name der Oberklasse angegeben werden.
Eine beliebige, nicht-finale Klasse aus der Klassenbibliothek wird dann als direkte
Oberklasse für die anzulegende Klasse zugegeordnet.
5. Wählen Sie Sichern.
Das Dialogfenster Objektkatalogeintrag anlegen wird angezeigt.
6. Tragen Sie die Entwicklungsklasse ein.
7. Wählen Sie Sichern.
Sie gelangen zu Methodenanzeige des Class Editors [Seite 227]. Von dort aus können
Sie die Komponenten der Klasse definieren und Interfaces in die Klassendefinition
aufnehmen.

Ergebnis
Sie haben eine neue Klasse angelegt und ihre Grunddaten festgelegt. Für die neue Klasse
wurde ein Class-Pool generiert, sofern die Option Nur Modelliert nicht aktiviert wurde.

April 2001 221


BC - ABAP Workbench: Werkzeuge SAP AG
Neue Klasse anlegen

In einem Class-Pool wird genau eine globale Klasse definiert. In Analogie zu


Funktionsgruppen können hier noch lokale Hilfsklassen und lokale Typen angegeben
werden.

222 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Neues Interface anlegen

Neues Interface anlegen

Ausführliche Informationen zu Interfaces erhalten Sie im ABAP Handbuch unter


Interfaces [Extern].

Voraussetzungen
Bei der Namensvergabe orientieren Sie sich an der Namenskonvention für globale ABAP-
Interfaces.

Vorgehensweise
So legen Sie vom Einstiegsbild des Class Builders ein neues Interface an:
1. Geben Sie den Namen des Interfaces gemäß der Namenskonvention ein.
2. Wählen Sie den Objekttyp Interface.
3. Wählen Sie Anlegen.
Das Dialogfenster Interface anlegen wird angezeigt.

4. Machen Sie folgende Angaben:


- Beschreibung
Ein Kurztext als Erläuterung für das neu anzulegende Interface.
- Nur Modelliert
Für das so gekennzeichnete Interface wird kein Interface-Pool generiert. Zur Laufzeit
kann auf diese Interfaces daher nicht zugegriffen werden.
Künftig soll mit dieser Kennzeichnung ein Entwurf von Interfaces aus einem grafischen

Modell, ermöglicht werden.


5. Wählen Sie Sichern.
Das Dialogfenster Objektkatalogeintag anlegen wird angezeigt.
6. Tragen Sie Ihre Entwicklungsklasse ein.
7. Wählen Sie Sichern.
Sie gelangen zur leeren Methodenanzeige des Class Editors [Seite 227]. Von dort aus
können Sie alle Komponenten des Interfaces definieren. Erst anschließend kann das
Interface in die Klassendefinition aufgenommen werden.

April 2001 223


BC - ABAP Workbench: Werkzeuge SAP AG
Neues Interface anlegen

Ergebnis
Sie haben eine neues Interface angelegt und seine Grunddaten im ABAP Dictionary
festgeschrieben. Für dieses Interface wird ein Interface-Pool generiert, sofern das Interface nicht
als Nur Modelliert gekennzeichnet wurde.

224 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Definieren von Komponenten

Definieren von Komponenten


Verwendung
Sie benötigen diese Funktionen,
• um den Klassen oder Interfaces durch Zuordnung von Komponenten eine spezielle Definition
aufzuprägen.
• um Methoden und damit Klassen zu implementieren.
• um Interfaces den Klassen hinzuzufügen und Methoden der Interfaces in Klassen zu
implementieren.
• um die bestehende Definition und Implementierung von Klassen und Interfaces zu ändern.
• um klasseninterne Datentypen zu definieren.

Voraussetzungen
Um Objekttypen durch ihre Komponenten zu definieren, müssen Sie sie zuvor, wie unter Pflege
von Objekttypen [Seite 217] beschrieben, angelegt haben.

Funktionsumfang
Zuordnung von Komponenten durch Definieren von:
• Attributen
• Methoden
• Ereignissen
• Klasseninterner Typen

Beachten Sie, daß diese definierbaren Komponenten (bis auf Interfaces) im


gleichen Namensraum liegen. Dies hat zur Folge, daß sie unterschiedliche Namen
haben müssen.
• Interfaces

Behandlung von Methoden


• Methodenparameter und
• Ausnahmen der Methoden definieren
• Implementieren von Methoden

Behandlung von Interfaces


• Interfaces den Klassen zuordnen
• Interface-Methoden in Klassen implementieren

April 2001 225


BC - ABAP Workbench: Werkzeuge SAP AG
Definieren von Komponenten

Aktivitäten
Definieren und Implementieren von Objekttypen wird im Class Editor [Seite 227] vorgenommen.
Sie gelangen zum Class Editor
• unmittelbar im Anschluß an das Anlegen des Objekttyps.
• über die Funktion Ändern im Einstiegsbild des Class Builders.
• mit Doppelklick auf einen Eintrag im Class Browser und anschließendem Wechsel in den
Änderungsmodus.

226 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Class Editor

Class Editor
Einsatzmöglichkeiten
Der Class Editor stellt die eigentliche Arbeitsumgebung des Class Builders dar, in der Sie die
Komponenten von Klassen oder Interfaces wie Attribute, Methoden, Ereignisse oder
selbstdefinierte Datentypen pflegen können.

Integration
Die hier definierten Komponenten der Klassen oder Interfaces werden in der R/3-
Klassenbibliothek gespeichert. Von der Arbeitsumgebung aus, kann zum ABAP Editor verzweigt
werden, um eine Implementierung von Methoden vorzunehmen.
Der Class Editor stellt seine wesentliche Funktionalität anhand eines TabStrips zur Verfügung.

Funktionsumfang
Grundfunktionen
Zu den Grundfunktionen gehört die Pflege von Komponenten, d.h.

April 2001 227


BC - ABAP Workbench: Werkzeuge SAP AG
Class Editor

• Anlegen von Attributen [Seite 229]


• Anlegen von Methoden [Seite 231]
• Anlegen von Ereignissen [Seite 237]
• Implementieren von Methoden [Seite 236]
• Anlegen der Interfaces in Klassen [Seite 243]
• Anlegen klasseninterner Datentypen [Seite 239]

Weitere Funktionen
• Über die Funktion Lokale Klassen haben Sie die Möglichkeit, zur Pflege der lokalen
Hilfsklassen (bezogen auf die globale Klasse im Class-Pool) zu verzweigen.
• Definieren von Kurznamen der Komponenten mit Aliases.
• Dokumentation von Klassen oder Interfaces und ihrer Komponenten pflegen.
• Navigation zu Coding-Einträgen über das Menü Springen.

228 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Attribute anlegen

Attribute anlegen
Attribute enthalten Daten und geben den Zustand eines Objektes, also der Instanz einer Klasse,
wieder.

Voraussetzungen
Eventuell für den Typbezug benötigte klasseninterne Datentypen wurden angelegt. Siehe auch :
Klasseninterne Typen anlegen [Seite 239].

Vorgehensweise
1. Verzweigen Sie zum Class Editor.
2. Wählen Sie im Änderungsmodus den Tabreiter Attribute.
3. Zum Anlegen eines Attributs machen Sie folgende Angaben:

- Attribut
Angabe eines eindeutigen Namens, mit dem das Attribut identifiziert wird. Beachten hierbei
Sie die Namenskonvention für ABAP Objects [Seite 209].

- Art
Spezifizierung von Attributen als Konstante mit Constant, als instanzabhängiges Attribut mit
Instance Attribute oder als statisches Attribut (gemeinsam für alle Instanzen einer Klasse)
mit Static Attribute.

- Sichtbarkeit
Definieren der Sichtbarkeit von Attributen für die Verwender der Klasse. Mit der
Kennzeichnung Public wird das Attribut dem öffentlichen Bereich der Klasse zugeordnet und
kann von jedem Verwender der Klasse aufgerufen werden. Bedenken Sie jedoch, daß die
öffentlichen Attribute einen Teil der Schnittstelle der Klasse nach außen repräsentieren und
daher einer vollständige Kapselung des Zustands eines Objektes im Wege stehen.
Attribute mit der Kennzeichnung Protected sind in allen Erben sichbar und verwendbar.
Attribute mit der Kennzeichnung Private sind nur in der definierenden Klasse selbst sichbar
und verwendbar. Private Attribute sind also insbesondere in den Erben der Klasse nicht
sichtbar.

- Nur modelliert
Ein gesetztes Flag bewirkt, daß kein Eintrag im Class-Pool erfolgt. Auf die Komponente kann
zur Laufzeit nicht zugegriffen werden.

- Read-Only
Diese Option schränkt die Änderbarkeit von Attributen, zusätzlich zur Sichbarkeit, ein. Ein
gesetztes Flag bewirkt, daß ein Verwender das Attribut nicht ändern kann.

- Typisierungsart
ABAP-Schlüsselwort zur Angabe des Typbezugs. Zur Auswahl stehen die Schlüsselworte:
Type, Like und Type Ref To (für Klassenreferenzen).

- Bezugstyp
Als Bezugstypen stehen alle elementaren ABAP- Typen (einschließlich generischer Typen)
und Objekttypen (Klassen und Interfaces) zur Verfügung.

April 2001 229


BC - ABAP Workbench: Werkzeuge SAP AG
Attribute anlegen

- Beschreibung
Kurzbeschreibung der Komponente.

- Initialwert
Ein Initialwert ist obligatorisch bei Konstanten einzugeben.

3. Wiederholen Sie eventuell die bisherige Vorgehensweise für weitere Attribute.

Beispiel:

4. Sichern Sie Ihre Eingaben.

Ergebnis
Sie haben Attribute zur einer Klasse oder einem Interface angelegt und spezifiziert. Damit wird
das ensprechende ABAP-Coding im Class- bzw. Interface-Pool generiert, sofern Sie kein Flag
unter Nur Modelliert für die jeweiligen Attribute gesetzt haben.

230 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Methoden anlegen

Methoden anlegen
Methoden beschreiben das Verhalten der Objekte und werden mit Hilfe von Funktionen realisiert,
die innerhalb von Klassen definiert werden. Sie stellen somit Operationen dar, mit denen
Attribute von Klassen oder Interfaces beeinflußt werden können. Dabei ist zwischen Instanz- und
statischen Methoden zu unterscheiden. Während sich Instanzmethoden auf eine bestimmte
Klasseninstanz beziehen, sind statische Methoden allen Klasseninstanzen gemeinsam. Statische
Methoden können lediglich auf statische Attribute zugreifen.
Zu speziellen Methoden zählen die Konstruktoren bzw. die Klassen-Konstruktoren. Die
Konstruktoren (Klassen-Konstruktoren) müssen jedoch nicht explizit angelegt werden, falls für sie
keine Implementierung vorgesehen ist.

Voraussetzungen
Die Klasse oder das Interface ist bereits angelegt. Es ist von Vorteil, wenn Sie die Attribute der
Klasse oder des Intefaces schon angelegt haben, da Sie dann nach der Methodendefinition
unmittelbar zur deren Implementierung übergehen können.

Vorgehensweise
So legen Sie Methoden zu Klassen oder zu Interfaces an:
1. Verzweigen Sie zum Class Editor [Seite 227].
2. Wählen Sie im Änderungsmodus den Tabreiter Methoden.
3. Zum Anlegen einer Methode machen Sie folgende Angaben:

- Methoden
Angabe eines eindeutigen Namens, mit dem die Methode identifiziert wird.
Beachten Sie auch die Namenskonventionen für ABAP Objects [Seite 209].

- Art
Spezifizierung der Methode als Instanzmethode mit Instance Method oder als statische
Methode (instanzunabhängige Methode) mit Static Method.

- Sichtbarkeit
Definieren der Sichtbarkeit von Methoden für die Verwender der Klasse. Mit der
Kennzeichnung Public wird die Methode dem öffentlichen Bereich der Klasse zugeordnet
und kann von jedem Verwender der Klasse aufgerufen werden. Methoden mit der
Kennzeichnung Protected sind in allen Erben sichbar und verwendbar. Methoden mit der
Kennzeichnung Private sind nur in der definierenden Klasse selbst sichbar und verwendbar.
Private Methoden stellen somit keine Schnittstelle zu den Verwendern der Klasse dar.

- Nur Modelliert.
Ein gesetztes Flag bewirkt, daß kein Eintrag im Class-Pool erfolgt. Auf die Komponente kann
zur Laufzeit nicht zugegriffen werden.

- Beschreibung
Kurzbeschreibung der Methode.

April 2001 231


BC - ABAP Workbench: Werkzeuge SAP AG
Methoden anlegen

4. Wiederholen Sie eventuell die bisherige Vorgehensweise für weitere Methoden.

Falls Sie einen Konstruktor (Klassen-Konstruktor) anlegen, so sind die Namen mit
CONSTRUCTOR (CLASS_CONSTRUCTOR) und ebenso alle weiteren Angaben bereits
vom Class Builder vordefiniert.

Beispiel:

5. Sichern Sie Ihre Eingaben.

Ergebnis
Sie haben Methoden zu einem Objekttyp angelegt. Diese werden im Definitionsteil der Klasse
oder des Interfaces, d.h. also in dem jeweiligen Class- bzw. Interface-Pool, aufgenommen.
Bevor Sie mit der Implementierung der Methode beginnen, legen Sie zunächst noch ihre
Parameter und Ausnahmen fest. Die Vorgehensweise hierzu finden Sie unter Parameter und
Ausnahmen anlegen [Seite 233].

232 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Parameter und Ausnahmen anlegen

Parameter und Ausnahmen anlegen


Methoden werden ähnlich wie Funktionsbausteine definiert. Zunächst sind die
Schnittstellenparameter und Ausnahmen separat anzulegen und anschließend die Methoden zu
implementieren. Zu den Eingabeparametern gehören die Importing- und Changing-Parameter.
Als Ausgabeparameter kommen Exporting- , Changing- und Returning-Parameter in Frage.

Voraussetzungen
§ Die Methoden und Attribute und gegebenfalls die Ereignisse einer Klasse oder eines
Interfaces sind bereits angelegt.
§ Ferner haben Sie zu der betreffenden Klasse oder zum Interface den Class Editor geöffnet
und entweder den Tabreiter Methoden oder Ereignisse im Änderungsmodus gewählt.

Beim Redefinieren von geerbten Methoden dürfen die Schnittstellenparameter


(Signatur) weder geändert noch neue hinzugefügt werden.

Vorgehensweise
Parameter anlegen
1. Setzen Sie den Cursor auf den Namen der Methode oder des Ereignisses.
2. Wählen Sie die Drucktaste Parameter.
3. Um Parameter von Methoden (oder Ereignissen) festzulegen, machen Sie folgende
Angaben:

- Parameter
Angabe eines eindeutigen Parameternamens. Berüchsichtigen Sie hierbei die
Namenskonventionen [Seite 209] für methodenlokale Parameter unter ABAP Objects.

- Art
Wie bei Funktionsbausteinen kann ein Parameter mit Importing, Exporting, Changing oder
Returning übergeben werden.
Beachten Sie jedoch die beiden Besonderheiten:
Die Wahl des Changing-Parameters schließt die Verwendung des Returning-Parameters
aus. Bei der Wahl des Returning-Parameters dagegen wird die Verwendung des Exporting-
und Changing-Parameters ausgeschlossen.
Ferner können bei Konstruktor-Methoden nur Importing-Methoden definiert werden.

- Wertübergabe
Anders als bei Funktionsbausteinen findet die Werteübergabe bei Methoden standardmäßig
per Referenz statt. Ist jedoch dieses Feld markiert, so werden Werte für den jeweiligen
Parameter übergeben. Eine freie Wahl besteht aber nur für die Importing-, Exporting- und
Changing-Parameter. Bei Returning-Parametern ist ausschließlich eine Werteübergabe
möglich. Eine entsprechende Prüfung wird vom Class Builder automatisch vorgenommen.

- Optional
Ist dieses Feld markiert, so muß dieser Parameter beim Aufruf der Methode nicht
berücksichtigt werden.

April 2001 233


BC - ABAP Workbench: Werkzeuge SAP AG
Parameter und Ausnahmen anlegen

- Typisierungsart
ABAP Schlüßelwort zur Angabe des Typbezugs. Zur Auswahl stehen die Schlüsselworte:
Type und Like und Type Ref To.

- Bezugstyp
Als Bezugstypen stehen alle elementaren ABAP- Typen (einschließlich generischer Typen)
und Objekttypen (Klassen und Interfaces) zur Verfügung. Informationen hierzu erhalten Sie
im ABAP-Handbuch unter Datentypen [Extern].
Bei privaten und geschützten Methoden können Parameter auch mit klasseninternen
Datentypen typisiert werden.

- Defaultwert
Standardwert zum Parameter.

- Beschreibung
Kurzbeschreibung des Parameters.

Ausnahmen anlegen
1. Setzen Sie den Cursor auf den Namen der entsprechenden Methode.
2. Wählen Sie die Drucktaste Ausnahmen.
3. Um Ausnahmen zu Methoden definieren, machen Sie die folgenden Angaben:

- Ausnahme
Angabe eines geigneten Namens für die Ausnahme. Berüchsichtigen Sie hierbei die
Namenskonventionen [Seite 209] für Ausnahmen unter ABAP Objects.

- Beschreibung
Kurzbeschreibung der Ausnahme.

234 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Parameter und Ausnahmen anlegen

Ergebnis
Sie haben Schnittstellen-Parameter und Ausnahmen für eine Methode fesgelegt können nun
dazu übergehen, die Methode zu implementieren. Siehe auch Methoden implementieren [Seite
236].

April 2001 235


BC - ABAP Workbench: Werkzeuge SAP AG
Methoden implementieren

Methoden implementieren
Voraussetzungen
Die Methoden und Attribute einer Klasse oder eines Interface sind bereits angelegt. Falls
Methoden von Interfaces implementiert werden sollen, sind die Interfaces innerhalb der
Klassendefinition aufgeführt. Zu den Methoden wurden eventuell Parameter und Ausnahmen
angelegt.

Vorgehensweise
1. Verzweigen Sie zum Class Editor [Seite 227].
2. Wählen Sie im Änderungsmodus den Tabreiter Methoden.
3. Setzen Sie den Cursor auf den Namen der betreffenden Methode.
4. Führen Sie einen Doppelklick aus oder wählen Sie die Ikone Quelltext.
Der ABAP Editor mit den vorgenerierten Anweisungen METHOD und ENDMETHOD wird
angezeigt.
5. Schreiben Sie den zugehörigen ABAP- Quelltext für die Methode.

Sie haben die Möglichkeit auch Textelemente im Quelltext über die


Vorwärtsnavigation zu definieren.
6. Führen Sie einen Syntaxcheck durch.
7. Sichern Sie den Quelltext.
8. Kehren Sie mit F3 zum Class Editor zurück.
9. Dokumentieren Sie die neue Methode. Wählen Sie dazu die entsprechende Ikone in der
Anzeige Methoden.

236 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Ereignisse anlegen

Ereignisse anlegen
Ein Objekt hat die Möglichkeit nach außen bekanntgeben, daß sich sein Zustand geändert hat,
indem es ein Ereignis auslöst. Ereignisse können sowohl in Klassen als auch in Interfaces
definiert werden. Entsprechende Methoden können diese Ereignisse mit der Anweisung RAISE
EVENT auslösen. Jede Klasse (jedes Interface), die dieses Ereignis behandeln soll, muß eine
entsprechende Behandler-Methode implementieren und sich mit der Anweisung SET HANDLER
explizit als Behandler registrieren. Wenn ein Ereignis ausgelöst wird, werden alle registrierten
Behandler aufgerufen.
Ähnlich wie bei der Methodendefinition enthält ein Ereignis eine Parameterschnittstelle.
Allerdings sind bei Ereignissen ausschließlich EXPORTING-Parameter zugelassen.

Voraussetzungen
Die Klasse oder das Interface ist bereits angelegt.
In der folgenden Vorgehensweise gehen wir davon aus, daß Sie mit der OO ABAP-Spezifikation
vertraut sind.

Vorgehensweise
1. Verzweigen Sie zum Class Editor [Seite 227].
2. Wählen Sie im Änderungsmodus den Tabreiter Ereignisse.
3. Zum Anlegen eines Ereignisses machen Sie folgende Angaben:

- Ereignis
Angabe eines eindeutigen Namens, mit dem das Ereignis identifiziert wird.

- Art
Spezifizierung von Ereignissen mit Instance Event oder mit Static Event.

- Sichtbarkeit
Definieren der Sichtbarkeit der Ereignisse mit Public, Protected und Private.

- Nur modelliert.
Ein gesetztes Flag bewirkt, daß kein Eintrag im Class-Pool erfolgt. Auf die Komponente kann
zur Laufzeit nicht zugegriffen werden.

- Beschreibung
Kurzbeschreibung des Ereignisses.

April 2001 237


BC - ABAP Workbench: Werkzeuge SAP AG
Ereignisse anlegen

4. Wiederholen Sie eventuell die bisherige Vorgehensweise für weitere Ereignisse.

5. Sichern Sie Ihre Eingaben.

Ergebnis
Sie haben Ereignisse zum Objekttyp angelegt. Die Ereignisse werden im Deklarationsteil der
Klasse oder des Interfaces hinter der Anweisung EVENTS aufgelistet.
Sie können eine weitere Spezifizierung der Ereignisse mit einem EXPORTING-Parameter
vornehmen. Die Vorgehensweise dazu finden Sie unter Parameter und Ausnahmen anlegen
[Seite 233] und unter Methoden implementieren [Seite 236].
Weitere Informationen zu Ereignisbehandlung mit OO ABAP erhalten Sie mit der F1-Hilfe z.B.
zur Anweisung RAISE EVENT.

238 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Klasseninterne Typen anlegen

Klasseninterne Typen anlegen


Voraussetzungen
Aktuelle Informationen zur Konstruktion neuer Datentypen, zur Klassifikation und zur Sichtbarkeit
der Datentypen erhalten Sie im ABAP-Handbuch unter Datentypen [Extern].

Beachten Sie, daß innerhalb der globalen Klassen keine öffentlichen Datentypen
definiert werden.

Vorgehensweise
So erstellen Sie klasseninterne Datentypen:
1. Verzweigen Sie zum Class Editor [Seite 227].
2. Wählen Sie im Änderungsmodus den Tabreiter Typen.
3. Zum Anlegen eines klasseninternen Typs machen Sie folgende Angaben:

- Typ
Angabe eines eindeutigen Namens, mit dem der Datentyp identifiziert wird. Bei der
Namenskonvention wird der Präfix TY_ für die klasseninternen Typen empfohlen.

- Sichtbarkeit
Definieren der Sichtbarkeit der klasseninternen Datentypen. Mit Private kann nur innerhalb
der betreffenden Klasse selbst auf diesen Datentyp zugegriffen werden. Mit Protected wird
der Zugriff auch für Erben der Klasse gewährt.

- Nur modelliert
Ein gesetztes Flag bewirkt, daß kein Eintrag im Class-Pool erfolgt. Auf die Komponente kann
zur Laufzeit nicht zugegriffen werden.

- Typisierungsart
ABAP Schlüsselwort zur Angabe des Bezugstyps. Zur Auswahl stehen die Schlüsselworte:
Type, Like und Type Ref To (für Klassenreferenzen).

- Bezugstyp
Als Bezugstypen stehen alle elementaren ABAP- Typen (einschließlich generischer Typen)
und Objekttypen (Klassen und Interfaces) zur Verfügung.

- Beschreibung
Kurzbeschreibung des klasseninternen Datentyps.
4. Wiederholen Sie eventuell die bisherige Vorgehensweise für weitere zu definierende
Datentypen.
5. Sichern Sie Ihre Eingaben.
6. Falls ein klasseninterner Datentyp weiter modifiziert werden muß, z.B. für die Angabe der
Feldlänge beim Charakterfeld, dann wählen Sie die Option direkte Typeingabe. Beachten
Sie jedoch, daß dieser Schritt nur sinnvoll ist, wenn die Option Nur modelliert nicht aktiviert
wurde.

April 2001 239


BC - ABAP Workbench: Werkzeuge SAP AG
Klasseninterne Typen anlegen

Der Inhalt des Class-Pools für den betreffenden Sichtbarkeitsbereich wird angezeigt.
7. Modifizieren Sie den Datentyp.

8. Führen Sie einen Syntaxcheck durch.


9. Sichern Sie Ihre Eingaben im Editor.
10. Kehren Sie mit F3 zur Anzeige Interne Typen zurück.

Ergebnis
Sie haben klasseninterne Datentypen angelegt und können diese, je nach angegebener
Sichtbarkeit (Schritt 3), in der betreffenden Klasse oder in deren Erben referenzieren. Damit
können private und geschützte Attribute und Schnittstellenparameter mit der TYPE-Anweisung
deklariert werden.

240 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Beziehungen zwischen Objekttypen definieren

Beziehungen zwischen Objekttypen definieren


Generell können in ABAP Objects zwischen zwei Objekttypen folgende Beziehungen definiert
werden:
• Vererbung zwischen zwei Klassen.
• Erweiterung der Klassen durch Implementierung von Interfaces als Beziehung zwischen
Klassen und Interfaces.
• Interfacekomposition als Beziehung zwischen Interfaces untereinander.

Charakterisierung
• Die Vererbung ist eine Beziehung zwischen Klassen. Sie erlaubt das Definieren von neuen
Klassen durch Ableiten einer Unterklasse aus einer bereits bestehenden Oberklasse und
wird eingesetzt, um der abgeleiteten Unterklasse eine Spezialsierung aufzuprägen. Jede
Unterklasse kann um neue Komponenten erweitert werden. Ebenso ist eine Redefinition
von Methoden in einer Unterklasse möglich. Durch Vererbung entsteht eine
Klassenhierarchie. Der Class Builder erlaubt auf einfache Weise eine Klassenhierarchie
aufzubauen. Zu beliebigen nich-finalen Klassen können Unterklassen erstellt und ebenso zu
einer bisher nicht abgeleiteten Klasse genau eine direkte Oberklasse definiert werden.
• Die Definition einer Klasse kann durch Implementieren von Interfaces erweitert werden.
Wenn eine Klasse ein Interface implementiert, erscheinen alle im Interface definierten
Komponenten als Klassenkomponenten. Sowohl über die Klassen- als auch über die
Interface-Referenz kann man dann auf die im Interface definierten Komponenten zugreifen.
Interfaces erlauben es, mit verschiedenen Klassen gleichartig umzugehen. Da die
Implementierung von Interfaces in die Klassen verlegt wird, ist eine Trennung zwischen der
Schnittstelle und der Implementierung gegeben.
• Ein Interface kann neben Attributen, Methoden und Ereignissen auch andere Interfaces als
weitere Komponenten enthalten. Eine Klasse, die ein solches zusammengesetztes
Interface implementiert, muß auch alle seine Komponenten implementieren. Gegenüber den
Komponenten-Interfaces stellt ein zusammengesetztes Interface eine weitere
Spezialisierung dar.

Funktionsumfang
Im einzelnen stehen folgende Funktionen zur Verfügung:
• Anlegen von Unterklassen
• Redefinieren von geerbten Methoden
• Anlegen von Oberklassen
• Zuordnen von Interfaces zu Klassen.
• Implementieren von Interface-Methoden innerhalb der Klassen.
• Anlegen von geschachtelten Interfaces

Aktivitäten
Interfaces in Klassen aufnehmen [Seite 243]

April 2001 241


BC - ABAP Workbench: Werkzeuge SAP AG
Beziehungen zwischen Objekttypen definieren

Unterklassen erstellen [Seite 245]


Interfaces schachteln [Seite 249]

242 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Interfaces in Klassen aufnehmen

Interfaces in Klassen aufnehmen


Interfaces stellen Ergänzungen zu Klassendefinitionen dar und weisen eine einheitliche
Schnittstelle zu den Objekten aus. Im Gegensatz zu Klassen gibt es keine Instanzen von
Interfaces. Dafür können Klassen Interfaces implementieren, indem sie alle Methoden der
Interfaces implementieren. Diese können dann sowohl über die Klassen- als auch über die
Interface-Referenz angesprochen werden.
Jede Klasse kann ein Interface unterschiedlich implementieren, indem seine Methoden
verschieden implementiert werden. Interfaces bilden somit auch eine Grundlage für den
Polymorphysmus in ABAP Objects.

Voraussetzungen
Sowohl die zu spezifizierende Klasse als auch das Interface sind bereits in der R/3-
Klassenbibliothek angelegt.

Vorgehensweise
1. Verzweigen Sie zum Class Editor des Class Builders.
2. Wählen Sie im Änderungsmodus zu einer gegebenen Klasse den Tabreiter Interfaces.
3. Um Interfaces in eine Klasse hizuzufügen, machen Sie folgende Angaben:

- Interface
Angabe des Interface-Namens. Mit der Eingabetaste veranlassen Sie eine Eintragsprüfung in
der Klasssenbibliothek. Eine Auflistung aller bestehenden Interfaces erhalten Sie über die
Werthilfetaste.

- Nur modelliert
Ein gesetztes Flag bewirkt, daß kein Eintrag im Class-Pool erfolgt. Auf die Komponente
kann zur Laufzeit nicht zugegriffen werden.

4. Wiederholen Sie die bisherige Vorgehensweise eventuell für weitere Interfaces.

Beispiel:

April 2001 243


BC - ABAP Workbench: Werkzeuge SAP AG
Interfaces in Klassen aufnehmen

Falls ein eingefügtes Interface geschachtelt ist, werden nach der Eintragsprüfung alle
Komponenten-Interfaces der Schachtelungshierarchie angezeigt.
5. Sichern Sie Ihre Eingaben.

Ergebnis
Sie haben die Komponenten der Klasse um Interfaces erweitert. Die hinzugefügten Interfaces
werden im Definitionsteil der Klasse hinter der Anweisung INTERFACES im Class-Pool
aufgeführt.
Alle in der Interfacedefinition aufgeführten Methoden müssen nun innerhalb der Klasse
implementiert werden. Die Vorgehensweise hierzu finden Sie unter Methoden implementieren
[Seite 236].
Die im Interface definierten Komponenten (Attribute, Methoden, Ereignisse) erscheinen in der
Klasse in der Form: <Interface Name>~<Komponentenname>
Es wird damit sichergestellt, daß keine Namenskonfikte mit Klassenkomponenten auftreten.

244 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Unterklassen erstellen

Unterklassen erstellen
Verwendung
Mittels Vererbung besteht die Möglichkeit, Klassen von anderen Klassen abzuleiten. Damit
lassen sich aus bestehenden Klassen funktional erweiterte Klassen gewinnen. Eine Unterklasse
kann ihre Funktionalität gegenüber ihrer Oberklasse erweitern, indem sie weitere Komponeneten
hinzufügt oder geerbte Methoden neu implementiert (redefiniert).

Vorgehensweise
So legen Sie im Class-Editor zu einer bestehenden Klasse eine direkte Unterklasse an:
8. Wählen Sie im Änderungsmodus den Tabreiter für die Grunddaten der akuell angezeigten
Klasse.
9. Wählen Sie die Drucktaste Subklasse.
Das Dialogfenster Anlegen Klasse wird angezeigt.
10. Für die Definition der Grunddaten stehen Ihnen folgende Angaben zur Verfügung:
- Klasse
Name der abzuleitenden Unterklasse.
- Erbt von
Angabe einer beliebigen globalen, nicht-finalen Klasse als Oberklasse.
- Beschreibung
Ein Kurztext als Beschreibung der Unterklasse.
- Instanziierung
Jede Klasse ist standardmäßig mit dem Option Public gekennzeichnet. Dies bedeutet,
daß jeder Verwender Instanzen der jeweiligen Klasse (mit CREATE OBJECT) erzeugen
kann. Mit der Option Protected legen Sie fest, daß nur geerbte Klassen oder die
betreffende Klasse selbst Instanzen dieser Klasse erzeugen können. Wählen Sie
dagegen die Option Private, dann kann nur die betreffende Klasse selbst ihre Instanzen
erzegen.
Sie können mit diesen Optionen weitere Einschränkungen bezüglich der
Instanzerzeugung vornehmen. Somit können beispielsweise Voraussetzungen für die
Verwaltung persistenter Objekte geshaffen werden, bei der die Eindeutigkeit von
Objekten gewährleistet sein muß.
- Vererbung
Mit der Option Abstrakt definieren Sie eine abstrakte Klasse. Zu dieser Klasse kann
keine Instanz erzeugt werden. Eine abstrakte Klasse kann als Vorlage für ihre
Unterklassen verwendet werden. Der Zugriff auf diese Klasse kann nur über ihre
statischen Attribute oder über ihre Unterklassen erfolgen.
Mit der Option Final definieren Sie eine finale Klasse. Diese Klasse bildet den Abschluß
in der Vererbungshierarchie, da eine finale Klasse keine weiteren Unterklassen bilden
darf.
Falls eine abstakte Klasse zugleich auch als final definiert wird, so können nur die
statischen Komponenten dieser Klasse verwendet werden.

April 2001 245


BC - ABAP Workbench: Werkzeuge SAP AG
Unterklassen erstellen

- Nur Modelliert
Falls Sie dieses Ankreuzfeld markieren, wird die Unterklasse nicht im Class-Pool
aufgenommen. Auf diese Klasse kann zur Laufzeit nicht zugegriffen werden.
11. Wählen Sie Sichern.
Das Dialogfenster Objektkatalogeintrag anlegen wird angezeigt.
12. Tragen Sie die Entwicklungsklasse ein.
13. Wählen Sie Sichern.

Ergebnis
Sie haben zu einer Klasse eine direkte Unterklasse angelegt. Damit erbt die Unterklasse alle
Komponenten der Oberklasse mit den Schtbarkeitsbereichen Public und Protected, bis auf die
Konstruktor-Methoden. Die in der Oberklasse implementierten Interfaces sind in der Unterklasse
ebenfalls implementiert und sichtbar. Die geerbten Komponenten der Unterklasse können Sie im
Class Editor anzeigen lassen, indem Sie dort das Ankreuzfeld auch Geerbte aktivieren.
Damit kann eine weitere Spezialisierung der Unterklasse erfolgen. Siehe hierzu Unterklassen
erweitern [Seite 247].

246 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Unterklassen erweitern

Unterklassen erweitern
Alle Änderungen in den Unterklassen sind additiv, d.h. es können keine von der Oberklasse
geerbten Komponenten entfernt werden. Stattdessen sind Erweiterungen der Unterklasse
gegenüber ihrer Oberklasse im folgenden Sinne möglich:
§ Hinzufügen neuer Komponenten
§ Redefinieren (oft auch als Überdefinieren bezeichnet) von geerbten Methoden
Es können nur Instanzmethoden redefiniert werden. Ein erneutes Definieren anderer
Komponenten (Attribute, Klassenmethoden, …) in der Unterklasse ist also nicht zulässig.
Ferner dürfen die betreffenden Methoden nicht in der Oberklasse als finale Methoden
definiert worden sein. Da Konstruktoren implizit finale Methoden sind, können sie
ebenfalls nicht redefiniert werden.
Die Redefinition der Methoden beschränkt sich nur auf eine neue Implementierung
dieser Methode in der Unterklasse. Die Signatur (Namen und Typen aller Parameter)
der Methoden darf jedoch nicht geändert werden. Die Schnittstelle der redefinierten
Methode unterscheidet nicht von derjenigen der Orginal-Methode in der Oberklasse.

Vorgehensweise
Neue Komponenten hinzufügen
Für alle Sichtbarkeitsbereiche (PUBLIC, PROTECTED und PRIVATE) können neue
Komponenten definiert werden. Da sowohl die geerbten wie die hinzugefügten Komponenten im
gleichen Namensraum liegen, ist darauf zu achten, daß bei der Namensvergabe die
Eindeutigkeit der Komponentennamen gewährleistet wird.
Siehe auch:
Attribute anlegen [Seite 229]
Methoden anlegen [Seite 231]
Ereignisse anlegen [Seite 237]

Methoden redefinieren
So gehen Sie vor, um im Änderungsmodus des Class Editors eine geerbte Methode in einer
Unterklassse zu redefinieren:
1. Lassen Sie sich alle Methoden der Unterklasse anzeigen. Aktivieren Sie hierzu das
Ankreuzfeld auch Geerbte.
Die geerbten Methoden aller Oberklassen werden angezeigt.
2. Führen Sie einen Doppelklick auf der betreffenden Methode aus.
Sie werden informiert, daß die Methode bereits in der Oberklasse implementiert ist.
3. Wählen Sie Weiter.
Der zur Orginal-Methode zugehörige ABAP-Quelltext wird angezeigt.
4. Wechseln Sie in den Änderungsmodus und implementieren Sie die Methode neu.
5. Führen Sie einen Syntaxcheck durch.
6. Sichern Sie den Quelltext.

April 2001 247


BC - ABAP Workbench: Werkzeuge SAP AG
Unterklassen erweitern

7. Dokumentieren Sie die neu definierte Methode. Wählen Sie dazu die entsprechende Ikone in
der Anzeige Methoden.

Ergebnis
In der erweiterten Klasse sind neben neu hinzugefügten Komponenten auch alle public und
protected Komponenten aller Oberklassen sichtbar. Alle redefinierten Methoden sind durch eine
Farbänderung in der Anzeige des Class Editors gekennzeichnet.
Die Änderungen durch Redefinieren der Methoden in den Unterklassen haben keine
Auswirkungen auf die Orginal-Methode in der Oberklasse.
Auf alle in der Unterklasse sichtbaren Komponenten kann in gleicher Weise zugegriffen werden.
Auch die geerbten Komponenten aus der Oberklasse werden mit ihren lokalen Namen
angesprochen. Sollte es jedoch erforderlich sein, auf die Komponenten der direkten Oberklasse
(z.B. auf die gleichnamige Orginal-Methode) zuzugreifen, so kann hierzu die Pseudo-Referenz
SUPER verwendet werden.
Siehe hierzu Sichtbarkeit von Komponenten.

248 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Interfaces schachteln

Interfaces schachteln
Das Konzept von ABAP Objects unterstützt die Schachtelung von Interfaces. Ein geschachteltes
(zusammengesetztes) Interface enthält ein oder mehrere Interfaces als Komponenten-
Interfaces. Diese können wiederum weitere Interfaces als Komponenten enthalten. Es sind also
mehrere Ebenen einer solchen Schachtelungshierarchie möglich.
Enthält ein Interface dagegen keine weiteren Interfaces, so spricht man vom elementaren
Interface.

Verwendung
Ein zusammengesetztes Interface stellt eine Spezialisierung gegenüber seinen Komponenten-
Interfaces dar. Die Komponenten-Interfaces können neben ihrer separaten Verwendung auch zur
Spezifizierung eines anderen Interfaces verwendet werden.

Voraussetzungen
Alle Komponenten-Interfaces wurden bereits in der Klassenbibliothek angelegt.

Vorgehensweise
1. Verzweigen Sie zum Class Editor des Class Builders.
2. Wählen Sie im Änderungsmodus zum betreffenden Interface den Tabreiter Interfaces.
3. Geben Sie den Namen des Komponenten-Interfaces unter umfaßt ein.
Falls Sie die Option Nur modelliert aktivieren, wird kein Eintrag im Class-Pool hinterlegt.
4. Bestätigen Sie mit der Eingabetaste.
Es findet eine Eintragsprüfung in der Klassenbibliothek statt. Anschließend wird die
Beschreibung hinzugefügt.

5. Sichern Sie Ihre Einträge.

Ergebnis
Alle angelegten Komponenten-Interfaces liegen auf derselben Ebene der
Schachtelungshierarchie. Eine Klasse, die das zusammengesetzte Interface verwenden wird,
muß alle Methoden der Komponenten-Interfaces implementieren.

April 2001 249


BC - ABAP Workbench: Werkzeuge SAP AG
Interfaces schachteln

Dabei werden alle beteiligten Interfaces unabhängig von ihrer Schachtelungshierarchie


gleichberechtigt nebeneinander implementiert. Sie stehen somit "flach nebeneinander". Auf ihre
Komponenten wird mit den orginären Namen zugegriffen, d.h. in der Form:
<Interface Name>~<Komponente>

250 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Aktivieren von Klassen und Interfaces

Aktivieren von Klassen und Interfaces


Bedeutung der Aktivierung
Bei der Erstellung von Laufzeitinstanzen wird stets auf aktive Sourcen zurückgegriffen. Dies ist
also bei der Instanzerzeugung von Klassen (mit CREATE OBJECT) zu berücksichtigen, da hier
immer auf die aktivierte Klasse Bezug genommen wird. Alle Teilobjekte der betreffenden
globalen Klasse, auf die im aufrufendem Programm zugegriffen werden soll, müssen explizit
aktiviert werden.

Teilobjekte globaler Klassen


Für alle globalen Klassen erfolgt ein Eintrag in der Tabelle TADIR. Das zugehörige
Transportobjekt für eine Klasse hat die Bezeichnung R3TR CLAS <class name> und beinhaltet
mehrere Teilobjekte, die jeweils separate Transporteinheiten repräsentieren. Inaktive Teilobjekte
der Klasse werden im Vorrat inaktiver Objekte des Benutzers hinterlegt.

TADIR

R3TR CLAS <class name>

CLSD Grunddaten (auch Vererbung)

CPUB Öffentliche Komponenten

CPRO Geschützte Komponenten

CPRI Private Komponenten

CREP Lokale Typdeklarationen

METH Methodenimplementierung

REPT Textelemente

§ Die Grunddaten und öffentliche Komponenten einer Klasse sind nicht getrennt aktivierbar.
§ Nur die Teilobjekte für die Grunddaten, öffentliche, geschützte und private Komponenten
wirken sich auf die Statusanzeige im Class Editor aus. Wenn Sie also das gesamte

April 2001 251


BC - ABAP Workbench: Werkzeuge SAP AG
Aktivieren von Klassen und Interfaces

Transportobjekt aktivieren und anschließend etwa die Methodenimplementierung ändern, so


wird weiterhin der Status aktiv angezeigt.

Teilobjekte globaler Interfaces


Das Transportobjekt für ein Interface hat die Bezeichnung R3TR INTF <interface name> und
enthält nur ein Objekt mit der Bezeichnung INTF.

Beim Aktivieren einer Klasse, die um ein Interface erweitert wurde, ist darauf zu
achten, daß dieses Interface zuvor aktiviert wurde. Anderenfalls wird ein
Syntaxfehler für die Public Section ausgegeben.

Statusanzeige im Class Builder


Der aktuelle Status einer Klasse oder eines Interfaces wird im Class Editor jederzeit angezeigt.
Er wird bestimmt durch:
§ die Laufzeitrelevanz (realisiert ↔ nur modelliert)
§ den Datenbankzustand (überarbeitet ↔ gesichert)
§ die Aktivierung (inaktiv↔aktiv).
Acht verschiedene Versionen von Klassen (Interfaces) können in der Statusanzeige des Class
Editors wiedergegeben werden:

Aktivieren

Ändern

Sichern
Ändern

Sichern

realisiert/ inaktiv realisiert/ inaktiv(überarbeitet) realisiert/ aktiv(überarbeitet) realisiert/ aktiv

nur modelliert/ inaktiv nur modelliert/ inaktiv(überarbeitet) nur modelliert/ aktiv(überarbeitet nur modelliert/ aktiv

252 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Testumgebung

Testumgebung
Verwendung
Die Testumgebung können Sie einsetzen, um im Class Builder Klassenkomponenten und im
Business Objekt Builder Komponenten von Business-Objekten zu testen. Hierzu wird dynamisch
ein ABAP-Testprogramm generiert, in dem die Ausführung verschiedener Sprachelemente
simuliert wird.

Es können nur public-Komponenten von Objekten getestet werden.

Funktionsumfang
Die Testumgebung rufen Sie auf, um
• den Zugriff auf Attribute eines Objekttyps (einer Klasse) anzuzeigen,
• die Änderung der Attribute zu simulieren,
• den Methodenaufruf zu simulieren,
• mit einem Standardbehandler die Ereignisbehandlung zu testen,
• eine Interface-Sicht auf ein Objekt zu testen.

Themenübersicht
Testumgebung aufrufen [Seite 254]
Instanz erzeugen [Seite 256]
Attribute testen [Seite 258]
Methoden testen [Seite 260]
Ereignisbehandlung testen [Seite 262]
Interface-Sicht auf Objekte testen [Seite 263]

April 2001 253


BC - ABAP Workbench: Werkzeuge SAP AG
Testumgebung aufrufen

Testumgebung aufrufen
Voraussetzungen
Bevor Sie die Testumgebung für eine Klasse (einen Objekttyp) aufrufen, sollten Sie die Klasse
(Objekttyp) auf syntaktische Richtigkeit prüfen. Falls Syntaxfehler vorliegen, kann die
Testumgebung nicht gestartet werden.

Vorgehensweise
Die Testumgebung kann sowohl für Klassen im Class Builder der ABAP Workbench als auch für
Objekttypen im Business Objekt Builder aufgerufen werden.

Im Class Builder aufrufen


1. Verzweigen Sie zum Einstiegsbild des Class Builders [Seite 218] (SE24).
2. Geben Sie den Namen der Klasse unter Objekttypname ein.
3. Wählen Sie Testen.
Alternative: Sie wählen die zu testende Klasse im Repository Browser aus und verzweigen nach
einem Doppelklick in den Class Editor [Seite 227]. Dort wählen Sie den Menüpfad Klasse →
Testen.

Im Business Object Builder aufrufen


1. Verzweigen Sie zum Einstiegsbild des Business Objekt Builders (SWO1).
2. Gegen Sie den Namen des Objekttyps unter Objekttyp ein.
3. Wählen Sie Testen.
Alternative: Sie wählen den zu testenden Objekttyp aus dem Business Object Repository aus
und verzweigen nach einem Doppelklick in die Anzeige des Objekttyps. Dort wählen Sie die
Drucktaste Testen.

Ergebnis
Das Systen verzweigt zur Testumgebung und gibt die Klasse (den Objektyp) in einer
Baumanzeige wieder.
Beispiel:

254 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Testumgebung aufrufen

April 2001 255


BC - ABAP Workbench: Werkzeuge SAP AG
Instanz erzeugen

Instanz erzeugen
Instanzen von Klassen werden mit der ABAP-Anweisung CREATE OBJECT erzeugt. Nach der
vollständigen Instanzbildung wird der Konstruktor für diese Instanz aufgerufen. Der Konstruktor
kann Parameter enthalten, die mit geeigneten Werten versorgt werden müssen.

Eine Instanzbildung für eine Klasse wird innerhalb der Testumgebung automatisch
durchgeführt, falls in der zu testenden Klasse noch keine statischen Attribute und
statischen Methoden definiert sind.

Voraussetzungen
Sie haben die Testumgebung gestartet. Siehe auch Testumgebung aufrufen [Seite 254].

Vorgehensweise
So legen Sie in der Testumgebung eine Instanz zu einer Klasse an:
1. Wählen Sie in der Objektanzeige die Drucktaste Instanz.
Falls der aufgerufene Konstruktor Parameter enthält, erscheint ein Dialogfenster, in dem Sie
die Parameter versorgen müssen.
2. Geben gültige Werte für die Konstruktorparameter ein.

Beispiel:

3. Wählen Sie die Drucktaste Instanz, um eine Instanz zu erzeugen.

Ergebnis
Sie haben eine Instanz (ein Testobjekt) für die zu testende Klasse erzeugt. In der ersten Zeile
der Objektanzeige erscheint die Bezeichnung TestObjekt ->. Neben dem Klassennamen wird die
Objekt-ID angezeigt.
Beispiel:

256 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Instanz erzeugen

April 2001 257


BC - ABAP Workbench: Werkzeuge SAP AG
Attribute testen

Attribute testen
Mit dem angelegten Testobjekt haben Sie die Möglichkeit, auf einen Container für Attribute
zuzugreifen. Dieser Zugriff kann nunmehr für Klassen simuliert werden. Dabei können die
Attribute angezeigt und auch geändert werden.
In der Anzeige der Attribute wird zwischen verschieden Arten von Werteingaben unterschieden:
• Felder für direkte Eingabe
• Verlängerte Felder
• Read-Only-Felder
• Komplexe Datenfelder (Tabellen)
• Attribute, die selbst Objektreferenzen sind.

Voraussetzungen
Eine Instanz der zu testenden Klasse wurde erzeugt. Siehe auch Instanz erzeugen [Seite 256].

Vorgehensweise
1. Wählen Sie aus der Objektanzeige unter Attribute das zu testende Attribut aus.

Beispiel:

2. Klicken Sie auf die jeweilige Ikone, die den entsprechenden Datentyp des Attributs
referenziert.
Bei Eingabefeldern können Sie nun Attributwerte ändern. Bei Objektreferenzen verzweigen
Sie erneut zur jeweiligen Objektanzeige.
3. Wiederholen Sie den Schritt 2. bei Objektreferenzen.

258 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Attribute testen

Beispiel:

Ergebnis
Sie haben den Zugriff auf Attribute einer Klasse getestet. Der jeweilige Zugriff wird in der ersten
Zeile der Objektanzeige angezeigt.

April 2001 259


BC - ABAP Workbench: Werkzeuge SAP AG
Methoden testen

Methoden testen
Mit Hilfe eines Testobjektes können Sie den Zugriff auf Methoden der zu testenden Klasse
simulieren. Sind in der Methode keine Export-Parameter definiert, so wird kein Ergebnisbild
angezeigt.

Voraussetzungen
Sie haben bereits eine Instanz der zu testenden Klasse erzeugt. Siehe auch Instanz erzeugen
[Seite 256].

Vorgehensweise
1. Wählen Sie in der Objektanzeige unter Methoden die zu testende Methode aus.

2. Klicken Sie auf die "Ausführen-Ikone", um die Methode auszuführen.


Die darauffolgende Anzeige hängt von der Definition der Methodenparameter ab:
a).
Falls die Methode Import-Parameter enthält, werden diese angezeigt und können mit neuen
Werten versorgt werden. Die Eingaben werden einer Typprüfung unterzogen.
Wählen Sie anschließend die Ikone für Ausführen.
Bei fehlerfreier Eingabe wird der Mehodenaufruf mit vorgegebenen Parameterwerten
ausgeführt.
Alternativ können Sie bei Auswahl der Drucktaste Debugging die Methode im Debugger
ausführen.

b).
Bei allen anderen Parametern wird der Methodenaufruf direkt ausgeführt und ein
Ergebnisbild mit der Angabe der Laufzeit angezeigt.

260 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Methoden testen

Das Debugging von Methoden ohne Import-Parameter kann über den Menüpfad
Hilfsmittel → Debugging → Debugging einschalten gestartet werden.

Ergebnis
Sie haben mit Hilfe eines Testobjektes den CALL METHOD-Aufruf einer Klassenmethode
ausgeführt.

Falls die getestete Methode eine Exception auslöst, wird ein Dialogfenster mit
Angabe der Exception und des Nachrichtentextes angezeigt.

April 2001 261


BC - ABAP Workbench: Werkzeuge SAP AG
Ereignisbehandlung testen

Ereignisbehandlung testen
Die Ereignisbehandlung innerhalb der Testumgebung wird mit Hilfe eines Standardbehandlers,
der die ausgelösten Ereignisse abfängt, vorgenommen. Die Testumgebung simuliert eine
Zuordnung von Behandlern und Auslösern, die mit der ABAP-Anweisung SET HANDLER
realisiert wird.

Voraussetzungen
Sie haben bereits eine Instanz der zu testenden Klasse erzeugt. Siehe auch Instanz erzeugen
[Seite 256].

Vorgehensweise
1. Wählen Sie in der Objektanzeige unter Ereignisse ein Ereignis aus.
2. Wählen Sie die Drucktaste Behandler, um den Behandler einzuschalten.
Mit einer neuen Ikone wird angezeigt, daß der Behandler aktiviert wurde.

3. Wählen Sie eine Methode in der Objektanzeige aus.


4. Klicken Sie auf die "Ausführen-Ikone", um die Methode auszuführen. Zum Methodenaufruf
siehe auch Methoden testen [Seite 260].

Ergebnis
Mit erfolgreichem Methodenaufruf wird das gewählte Ereignis ausgelöst und das Ergebnis
angezeigt.

Falls Sie den Behandler zum gewählten Ereignis ausschalten möchten, wählen Sie
den Menüpfad Hilfsmittel → Ereignisbehandlung → Behandler ausschalten.

262 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Interface-Sicht auf Objekte testen

Interface-Sicht auf Objekte testen


Mit einer Interface-Sicht auf Objekte können Sie den Zugriff auf Interface-Attribute und -
Methoden eines Objektes testen und so Interfacereferenzen simulieren.

Voraussetzungen
Sie haben bereits eine Instanz der zu testenden Klasse erzeugt. Siehe auch Instanz erzeugen
[Seite 256].

Vorgehensweise
1. Wählen Sie in der Objektanzeige ein Interface aus.

Beispiel:

2. Klicken Sie auf die "Lupen-Ikone", um eine Interface-Sicht auf das Objekt zu erzeugen.
Die Interface-Sicht auf das Testobjekt wird angezeigt.

Beispiel:

3. Ändern Sie gegebenfalls die Attributwerte. Siehe auch Attribute testen [Seite 258].
4. Führen Sie gegebenfalls die Methoden aus. Siehe auch Methoden testen [Seite 260].

April 2001 263


BC - ABAP Workbench: Werkzeuge SAP AG
Interface-Sicht auf Objekte testen

Ergebnis
Sie haben den Zugriff auf Attribute und Methoden eines Objektes über Interfacereferenzen
simuliert.

264 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Screen Painter

Screen Painter
Die nachfolgende Dokumentation behandelt den Screen Painter im grafischen und im
alphanumerischen Modus. Mit diesem Werkzeug der ABAP Workbench können Dynpros zu einer
Transaktion angelegt und mit Hilfe von Bildelementen definiert und gestaltet werden.

Wenn Sie den Screen Painter im Zusammenhang mit dem


Modifikationsassistenten einsetzen möchten, lesen Sie die Dokumentation
Modifikationen im Screen Painter [Extern].

April 2001 265


BC - ABAP Workbench: Werkzeuge SAP AG
Screen Painter: Konzepte

Screen Painter: Konzepte


Der Screen Painter ist ein Werkzeug innerhalb der ABAP Workbench, mit dem Bildschirmbilder
(Dynpros) zu einer Transaktion entwickelt werden. Es werden hier zum einen Dynpros angelegt
und die grafische Gestaltung der Bildschirmoberfläche mit Bedien- und Anzeigeelementen
vorgenommen, zum anderen wird im Screen Painter die Ablauflogik des Dynpros festgelegt.

SAP-Bildschirmbilder werden häufig als Dynpros bezeichnet. Der Begriff “Dynpro”


bezieht sich auf die Kombination aus einem Bild und dessen Ablauflogik.

Architektur des Screen Painters


Im Screen Painter werden alle Komponenten von Dynpros angelegt und bearbeitet. Dazu
gehören:
Dynproattribute Beschreiben ein Bildschirmbild im SAP-System. Zu den Attributen
gehören das Programm, zu dem das Bild gehört und der Bildtyp.
Bildlayout Anordnung der Bildelemente, also der Teile eines Bildes, mit denen der
Benutzer arbeitet. Zu den Bildelementen gehören z.B. Ankreuzfelder
oder Auswahlknöpfe.
Elemente Entsprechen den Bildelementen. Elemente werden im ABAP Dictionary
oder im Programm definiert.
Ablauflogik Steuert den Ablauf des Programms.

Zwei Screen-Painter-Modi
Der Screen Painter verfügt über einen Layout Editor. Mit diesem Editor entwerfen Sie das
Aussehen eines Dynpros. Dabei gibt es zwei Modi:
• den grafischen Modus [Seite 276] und
• den alphanumerischen Modus [Seite 315].
Beide Modi bieten dieselben Funktionen, jedoch unterschiedliche Oberflächen. Im grafischen
Modus steht Ihnen eine komfortable Oberfläche wie in einem Zeichenprogramm zur Verfügung.
Im alphanumerischen Modus arbeiten Sie mit Tasten und Menüs.
Der grafische Modus ist nur unter MS Windows 95, MS Windows NT und Unix/Motif verfügbar,
der alphanumerische Modus auf allen Plattformen.
Um den grafischen Modus zu setzen, aktivieren Sie die Einstellung Grafischer Layout Editor.
Wählen Sie dazu den Menüpfad Hilfsmittel → Einstellungen im Screen Painter.

Grundlegendes Vorgehen
1. Dynpros zum bereits bestehenden ABAP-Programm anlegen und dessen Attribute
definieren.
2. Bildlayout gestalten und Attribute der Elemente definieren.
3. Ablauflogik festlegen.

266 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Screen Painter: Konzepte

Grundlegende Prinzipien
• Verwenden von vordefinierten Elementen mit ABAP Dictionary- oder Programmreferenz.
• "Vorwärtsnavigation" mit Mausdoppelklick
• Verwenden von komplexen Bedienelementen: Table Control, Tabstrip Control, Custom
Container
• Cut/ Copy/ Paste (Graf.Fullscreen)
• Undo/ Redo (Graf.Fullscreen)

April 2001 267


BC - ABAP Workbench: Werkzeuge SAP AG
Das Einstiegsbild des Screen Painters

Das Einstiegsbild des Screen Painters


Um den Screen Painter aus der ABAP Workbench aufzurufen, wählen Sie dort die Drucktaste
Screen Painter oder geben Sie die Transaktion SE51 ein. Sie können von hier aus:
• neue Dynpros anlegen.
• bestehende Dynpros testen.
• Komponenten eines Dynpros erstellen und bearbeiten.

Unter Teilobjekte finden Sie die verschiedenen Sichten der Bildkomponenten. Mit jeder Sicht
können Sie einen anderen Aspekt des Bildes bearbeiten:
Bei Auswahl von... können Sie...
Layout Editor das Layout eines Bildschirmbildes pflegen
Elementliste die Dictionary-oder Programmfelder eines Bildes pflegen und eine
Zuordnung zum OK_CODE pflegen
Dynproattribute die Attribute eines Bildes pflegen
Ablauflogik die Ablauflogik eines Bildes bearbeiten

Innerhalb einer bestimmten Sicht können Sie über das Menü Springen in die
anderen Sichten wechseln.

268 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Dynpros anlegen

Dynpros anlegen
Sie können ein Dynpro aus dem Einstiegsbild des Screen Painters heraus oder aus der
Objektliste des Object Navigators anlegen.

Vorgehensweise
So legen Sie ein Dynpro aus dem Einstiegsbild [Seite 268] des Screen Painters an:
1. Öffnen Sie das Einstiegsbild des Screen Painters.
2. Geben Sie einen Programmnamen an.
Das Programm muß ein ausführbares Programm vom Typ 1, ein Modulpool vom Typ M
oder eine Funktionsgruppe vom Typ F sein und muß bereits existieren.
3. Geben Sie eine Dynpro-Nummer ein.
Die Nummer darf im zugehörigen Programm noch nicht vergeben sein und kann aus bis
zu 4 Ziffern bestehen. Alle Dynpro-Nummern über 9000 sind für SAP-Kunden reserviert.
Die Nummer 1000 ist für Tabellenbilder und Reportselektionsbilder reserviert.
Einstiegsbilder für Transaktionen erhalten oft Nummern, deren letzte drei Stellen 100
sind (z.B. 3100).
Mit der Werthilfetaste können Sie sich eine Liste der Dynpros anzeigen, die zu einem
Programm gehören.
4. Wählen Sie Anlegen.
Das Bild Ändern Dynproattribute erscheint.
5. Definieren Sie die Dynproattribute.

Dynproattribute
Dynproattribute ermöglichen dem System, ein Dynpro zuzuordnen und zu verarbeiten. Sie
können folgende Attribute vergeben:

Attribut Beschreibung und ergonomische Richtlinien

Programm Name des Modulpools, der zu einem Dynpro gehört.


Dynpro-Nummer Eindeutige Nummer bestehend aus bis zu 4 Ziffern.
Kurzbeschreibung Beschreibung der Funktion eines Dynpros.
Originalsprache Pflegesprache eines Dynpros. Beim Anlegen setzt das
System diesen Wert auf die Pflegesprache des Modulpools.
Entwicklungsklasse Entwicklungsklasse, zu der das Dynpro gehört.
Letzte Änderung bzw. Letzte Datum und Zeit der letzten Änderung bzw. Generierung des
Generierung Dynpros.
Dynprotyp

April 2001 269


BC - ABAP Workbench: Werkzeuge SAP AG
Dynpros anlegen

Normal Bei Aktivierung dieses Attributs wird das Dynpro als


normales Dynpro gekennzeichnet. Dies entspricht der
Standardeinstellung.
Subscreen Subscreen in einem Fenster.
Modales Dialogfenster Spezielle Oberfläche zur Anzeige von Informationen in
einem Dialogfenster. Weitere Details finden Sie in Arbeiten
mit modalen Dialogfenstern [Extern].
Selektionsdynpro Automatisch angelegtes Dynpro. Selektionsbilder erfordern
die Eingabe von Werten als Datenbankselektionskriterien
vor dem Starten eines Reports. Das System setzt dieses
Attribut automatisch.
Einstellungen

Halten Daten Nur wenn diese Option aktiviert ist, werden zur Laufzeit die
Funktionen System → Benutzervorgaben → Halten Daten
(Setzen Daten und Löschen Daten) auf dem
entsprechenden Dynpro unterstützt. Eingaben, die zur
Laufzeit auf dem Dynpro gemacht wurden, können so vom
System gehalten werden. Das System zeigt diese Daten
automatisch an, wenn der Benutzer das betreffende Dynpro
erneut aufruft.
Ausschalten Gibt an, daß ein Dynpro zur Laufzeit nicht komprimiert wird.
Laufzeitkomprimierung
Ergonomie: Dieses Flag sollte gemäß der ergonomischen
Richtlinien nicht gesetzt werden, da sonst bei dynamischem
Wegblenden von Feldern Lücken entstehen, die die
Bearbeitungszeit des Bildes erhöhen.
Halten Scrollposition Diese Einstellung legt fest, daß die beiden Scrollpositionen
(bezüglich der Breite und der Länge) für ein Dynpro erhalten
bleibt. Wird das Flag für ein Dynpro gesetzt, dann bleibt die
Scrollpositionen des ersten Aufrufs nach erfolgten
Absprüngen in andere Dynpros, unabhängig von deren
Dimensionierung, nach der Rückkehr, erhalten.
Dies gilt also auch dann, wenn sich die Länge oder Breite der
Dynpros ändert oder andere Subscreens genutzt werden,
oder auch der Cursor außerhalb des sichtbaren Bereichs
plaziert wurde.
Diese Einstellung ist vor allem für große Dynpros vorgesehen,
bei denen bisher die Scrollposition durch manche Aktionen
verloren gehen konnte.

Weitere Attribute

270 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Dynpros anlegen

Folgedynpro Nummer des nachfolgenden Dynpros, das im


Transaktionsablauf bei statisch verarabeiteten Dynpros
angezeigt wird.
Cursorposition Element, auf das der Cursor bei der ersten Anzeige des
Bildes gestellt wird. Wenn Sie dieses Feld leer lassen,
positioniert das System den Cursor auf das erste
Eingabefeld.
Bildgruppe Vierstellige Kennung einer Gruppe zusammenhängender
Bilder.
Zeilen/Spalten Belegt Größe des durch Bildelemente belegten Bereiches.
Zeilen/Spalten Pflege Bildschirmbildgröße in Zeilen/Spalten. Die Größe eines
Bildes wird in Zeichen ausgehend von der oberen linken
Ecke eines Bildes gemessen.

April 2001 271


BC - ABAP Workbench: Werkzeuge SAP AG
Der Ablauflogik-Editor

Der Ablauflogik-Editor
Die Ablauflogik eines Bildes können Sie durch Doppelklick auf ein Dynpro-Objekt aus dem
Repository Browser anzeigen. Das System startet den Screen Painter und verzweigt zum
Ablauflogik-Editor:

In dieser Sicht arbeiten Sie mit dem Ablauflogik-Editor. Er bietet einen Teil des
Funktionsumfangs, der Ihnen im ABAP Editor [Seite 98] zur Verfügung steht.

Hilfe zu Dynpro-Schlüsselwörtern
Bei der Bearbeitung der Ablauflogik können Sie Hilfeinformationen zu den einzelnen
Schlüsselwörtern aufrufen:
Positionieren Sie dazu den Cursor auf das entsprechende Schlüsselwort und wählen Sie F1-
TASTE.

Hinweise zur Navigation


Der Screen Painter unterstützt dieselben Navigationsoptionen wie alle Workbench-Werkzeuge.
Beachten Sie die folgenden Navigationsmöglichkeiten im Screen Painter:
Durch Doppelklick (F2) auf... gelangen Sie
einen Elementnamen in der Elementliste zu der Stelle, wo das Element definiert ist
oder
in der Ablauflogik
Nummer des Folgedynpros in das Dynproattributebild des Folgedynpros

272 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Der Ablauflogik-Editor

eine Dynpro-Nummer in der Ablauflogik in die Ablauflogik für das Dynpro mit dieser
Nummer
einen Modulnamen in der Ablauflogik zu der Stelle im Modulpool, an der das Modul
definiert ist

Zusätzlich stehen Ihnen die globalen Such- und Ersetzfunktionen der Workbench zur Verfügung.
Das System sucht oder ersetzt Elementnamen (auch generisch) in Ablauflogiken und
Elementlisten. Jede Suche erzeugt eine Hitliste, aus der Sie zu den jeweiligen Objekten
gelangen können.

April 2001 273


BC - ABAP Workbench: Werkzeuge SAP AG
Schlüsselwörter der Ablauflogik

Schlüsselwörter der Ablauflogik


Die Ablauflogik definieren Sie innerhalb des Screen Painters im Ablauflogik-Editor. Folgende
Schlüsselwörter stehen innerhalb dieses Editors zur Verfügung:
Schlüsselwort Beschreibung

CALL Ruft einen Subscreen.


CHAIN Startet eine Verarbeitungskette.
ENDCHAIN Beendet eine Verarbeitungskette.
ENDLOOP Beendet eine Loop-Verarbeitung.
FIELD Verweist auf ein Feld. Sie können dieses Schlüsselwort mit den
Schlüsselwörtern MODULE und SELECT kombinieren.
LOOP Startet die Loop-Verarbeitung.
MODIFY Ändert eine Tabelle.
MODULE Bezeichnet ein Verarbeitungsmodul.
ON Im Zusammenhang mit FIELD-Zuweisungen zu verwenden.
PROCESS Definiert einen Verarbeitungszeitpunkt.
SELECT Prüft einen Eintrag gegen eine Tabelle.
VALUES Legt mögliche Eingabewerte fest.

Informationen zur Dialogprogrammierung finden Sie in ABAP-Benutzerhandbuch [Extern].

Ablauflogik: Beispiel
Das folgende Beispiel zeigt die Ablauflogik eines Dynpros:
*---------------------------------------------------
* Beispiel-Code
*---------------------------------------------------
* Verarbeitung vor der Bildanzeige (PBO)
PROCESS BEFORE OUTPUT.
MODULE INIT_FIELDS.
* Selbstprogrammierte F1-Hilfe
PROCESS ON HELP-REQUEST.
FIELD GSSG-BUKRG MODULE V-BUKRG.
* Verarbeitung nach der Benutzereingabe (PAI)
PROCESS AFTER INPUT.
* Kundenstammsatz sperren
CHAIN.

274 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Schlüsselwörter der Ablauflogik
FIELD GSSG-KTNRG
MODULE ENQUEUE_CUSTOMER_MASTER.
* Kundenstammsatz lesen
MODULE READ_CUSTOMER_MASTER.
* Geschäftsbereich lesen
MODULE READ_GSSG.
ENDCHAIN.
* Funktionscode bearbeiten
FIELD OK-CODE MODULE OKCODE ON INPUT.

April 2001 275


BC - ABAP Workbench: Werkzeuge SAP AG
Der grafische Layout Editor

Der grafische Layout Editor


Für eine komfortable Gestaltung des Bildschirmbildes mit Anzeige- und Bedienelementen steht
Ihnen der grafische Layout Editor zur Verfügung. Sie erreichen den Layout Editor vom
Einstiegsbild des Screen Painters oder vom Repository Browser aus.

Den Layout Editor aufrufen


So rufen Sie den grafischen Layout Editor vom Einstiegsbild des Screen Painters auf:
1. Geben Sie den Programmnamen und eine Dynpronummer ein.
2. Wählen Sie Einstellungen à Graf. Screen Painter.
3. Markieren Sie das Ankreuzfeld Grafischer Screen Painter und wählen Sie Weiter.
4. Markieren Sie Layout Editor aus der Liste der Teilobjekte im Einstiegsbild.
5. Wählen Sie Ändern.
Das System öffnet den grafischen Fullscreen Editor im Änderungsmodus.

276 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Der grafische Layout Editor

Elementpalette Arbeitsbereich Elementzei

Komponenten des Layout Editors


• Elementpalette zum Anlegen von Bildelementen, die im Arbeitsbereich mit Drag and Drop
platziert werden. Weitere Informationen zu einzelnen Elementen erhalten Sie unter
Bildelementtypen [Seite 280].
• Arbeitsbereich für einen visuellen Entwurf des Bildschirmbildes.
• Elementzeile.
Wenn Sie ein Element auswählen, erscheinen die wichtigsten Attribute zu diesem
Element in dieser Zeile. Sie können diese Attribute auch in den entsprechenden
Eingabefeldern pfegen.

April 2001 277


BC - ABAP Workbench: Werkzeuge SAP AG
Der grafische Layout Editor

Bespiel:

278 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Bildlayout: Überblick

Bildlayout: Überblick
Nachdem Sie ein Dynpro angelegt haben, können Sie einen visuellen Entwurf des
Bildschirmbildes estellen.
Dazu sind folgende Arbeitsschritte auszuführen:
• Auswahl von Dictionary- oder Programmfeldern, die auf dem Bildschirmbild integriert werden
sollen. Lesen Sie dazu das Kap. Felder übernehmen [Seite 284].
• Positionieren weiterer Bildelemente [Seite 280] der Elementpalette auf der Arbeitsfläche des
Fullscreen Editors.
• Nachdem ein Bildelement auf dem Bildschirmbild angelegt wurde, sind seine Attribute zu
spezifizieren. Grundsätzliches dazu erfahren in Arbeiten mit Elementattributen [Seite 337].
• Prüfen der Dynpros auf Übereinstimmung des Layouts mit ergonomischen Standards.

Die Größe eines Bildes wird in Zeilen und Spalten gemessen (ausgehend von der
oberen linken Ecke). Die Standardbildgröße ist 21 Zeilen/83 Spalten. Die
Maximalgröße ist 200 Zeilen/240 Spalten. Das System pflegt den Titel des
Bildschirmbildes, die Menüleiste, Statuszeile und OK_Code-Zeile separat; diese
Elemente werden bei der Bildgröße nicht berücksichtigt.

April 2001 279


BC - ABAP Workbench: Werkzeuge SAP AG
Bildelemente

Bildelemente
Nachdem Sie ein Element auf dem Bild angelegt haben, können Sie es ggf. über das Menü
Bearbeiten in ein anderes Element umwandeln. Sie können auch mit der Elementpalette zum
Anlegen von Elementen, Bildelemente auswählen und positionieren, ohne vorher Felder zu
definieren.

Elementpalette (grafischer Screen Painter)

Reset

Textfeld
Ein / Ausgabefeld

Ankreuzfeld
Auswahlknopf

Drucktaste
TabStrip

TabStrip (miitels Wizard)


Rahmen
Subscreen-Bereich

Table Control

Table Control (mittels Wizard)

Custom Control

Status-Icon

Bildelemente im Überblick
Im Screen Painter stehen in beiden Modi (grafisch und alphanummerisch) folgende Bildelemente
zur Verfügung:

Textfelder
Textfelder enthalten Bezeichnungen für andere Elemente. Diese Bezeichnungen (manchmal als
“Schlüsselwörter” bezeichnet) sind reine Anzeigeelemente; weder der Benutzer noch das ABAP-
Programm kann sie zur Laufzeit ändern. Textfelder erscheinen an einer festen Position auf dem
Bildschirm.

280 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Bildelemente

Textfelder können auch Literale, Linien, Ikonen und andere statische Elemente enthalten.
Textfelder können alle alphanumerischen Zeichen enthalten. Sie können einen Text jedoch nicht
mit einem _ (Unterstrich) oder ? (Fragezeichen) beginnen. Wenn Sie einen Text als Bezeichnung
für einen Auswahlknopf oder ein Ankreuzelement verwenden, muß der Text denselben
Elementnamen haben wie das bezeichnete Element.
Wenn der Text aus mehreren Wörtern besteht, verbinden Sie die Wörter mit Unterstrichen. Die
Unterstriche ermöglichen es dem System, die Wörter als Einheit zu erkennen. Die Unterstriche
werden zur Laufzeit durch Leerzeichen ersetzt.

Ein-/Ausgabefelder
Ein-/Ausgabefelder werden auch als Schablonen bezeichnet. Sie dienen zur Eingabe und
Anzeige von Daten. Um die Größe eines Eingabeelementes zu definieren, geben Sie
Unterstriche im Feld Text ein:

Sie können auch andere Zeichen verwenden, um das Ein-/Ausgabefeld zu formatieren. Für
numerische Werte können Sie einen Punkt (.) als Trennzeichen und ein Komma (,) als
Dezimalzeichen angeben. Als letztes Zeichen des Ein-/Ausgabefeldes können Sie ein V als
Platzhalter für Vorzeichen angeben.

Ein-/Ausgabefelder haben keine Bezeichnungen. Um ihnen Bezeichnungen zuzuordnen, fügen


Sie daneben ein Textfeld hinzu.

Dropdown Listbox
Eine spezielle Variante von Ein-/Ausgabefeldern sind die Dropdown Listboxen (Listenfelder).
Eine Dropdown Listbox enthält eine Auflistung von Einträgen, aus denen der Benutzer einen
auswählen kann. Eine Eingabe von Einträgen ist bei Listboxen jedoch nicht möglich.
Weitere Informationen zur Definition von Dropdown Listboxen auf dem Attributebild des Screen
Painters erhalten Sie unter Allgemeine Attribute [Seite 338].
Informationen zur Programmierung von Dropdown-Listboxen erhalten Sie im ABAP
Benutzerhandbuch unter Dropdown-Boxen [Extern].

Ankreuzfelder
Mit Ankreuzfeldern kann der Benutzer einzelne Elemente in einer Mehrfachselektion markieren.
Die Kontrolle wird dabei nicht an einen Workprozeß des Applikationsservers zurückgegeben.
Weitere Selektionen sind möglich, bis der Benutzer eine Drucktaste betätigt oder eine
Menüfunktion auswählt.

Auswahlknöpfe
Auswahlknöpfe dienen zur ausschließlichen Selektion innerhalb einer Gruppe. Wenn der
Benutzer einen Auswahlknopf markiert, sind die anderen Auswahlknöpfe in der Gruppe
automatisch nicht selektiert. Damit sich Auswahlknöpfe bei der Selektion gegenseitig
ausschließen, müssen Sie sie nach dem Anlegen als Gruppe definieren.

April 2001 281


BC - ABAP Workbench: Werkzeuge SAP AG
Bildelemente

Bei Selektion eines Auswahlknopfes wird die Kontrolle nicht sofort an einen Workprozeß des
Applikationsservers zurückgegeben. Wie bei Ankreuzfeldern (jedoch anders als bei Drucktasten)
sind weitere Selektionen möglich, bis der Benutzer entweder eine Drucktaste betätigt oder eine
Menüoption wählt.

Drucktasten
Mit einer Drucktaste aktivieren Sie eine bestimmte Funktion. Wenn der Benutzer eine Drucktaste
auswählt, macht das System den entsprechenden Funktionscode für das zugrundeliegende
Programm verfügbar. Zu diesem Zeitpunkt wird die Kontrolle automatisch an einen Workprozeß
des Applikationsservers zurückgeben, der die PAI-Verarbeitung (Process After Input) durchführt.

Es gibt noch keine Verbindung zu der mit dem Menu Painter definierten Oberfläche.
Das System prüft zu diesem Zeitpunkt nicht, ob die gewählten Funktionscodes
einem gültigen Status entsprechen.
Eine Drucktastenbezeichnung kann ein statischer oder dynamischer Text sein, der sich zur
Laufzeit ändert. Dynamischen Text müssen Sie als Feld in Ihrem Program definieren.
Informationen zur Dialogprogrammierung finden Sie in der Dokumentation ABAP
Benutzerhandbuch [Extern].

Rahmen
Ein Rahmen gruppiert zusammenhängende Elemente wie z.B. eine Gruppe von
Auswahlknöpfen. Rahmen sind reine Anzeigeelemente. Sie dienen zur optischen Hervorhebung
und haben keine Laufzeitfunktion.
Der obere Rand eines Rahmens enthält gewöhnlich eine links ausgerichtete Kopfzeile. Dabei
kann es sich um ein Textfeld oder ein Ausgabefeld handeln. Wenn die Kopfzeile ein Ausgabefeld
und zur Laufzeit leer ist, werden die Linien des Rahmens geschlossen; d.h. um einen
geschlossenen Rahmen zu erhalten, muß die Kopfzeile völlig leer sein.

TabStrips
TabStrips gehören zu den komplexen Bedienelementen. Sie erfahren mehr
• zur Verwendung und zum Aufbau unter TabStrips [Seite 292].
• zur Vorgehensweise beim Anlegen von TabStrips unter grafischen Modus [Seite 295] bzw.
im alphanumerischen Modus [Seite 325].

Wizard für TabStrips


Mit dem Wizard werden Sie Schritt für Schritt bei der Erstellung eines funktionsfähigen Tabstrips
unterstützt.
Weitere Informationen erhalten Sie unter Wizard für Tabstrips einsetzen [Seite 299].

Subscreen-Bereiche
Subscreen-Bereiche sind rechteckige Bereiche in einem Bild, die für die Anzeige anderer Bilder
zur Laufzeit reserviert sind. Der Subscreen-Bereich kann keine anderen Bildelemente enthalten.
Sie können mit Subscreens andere Dynpro-Programme innerhalb Ihres Rahmenprogramms
ausführen.

282 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Bildelemente

Um einen Subscreen zu verwenden, definieren Sie ein zweites Bild, das in einem Subscreen-
Bereich des ersten Bildes erscheint.

Table Controls
Table Controls gehören ebenfalls zu den komplexen Bedienelementen. Weitere Informationen
erhalten Sie
• unter Table Controls [Seite 301].
• zur Vorgehensweise beim Anlegen von Table Controls im grafischen Modus [Seite 303]
bzw. im alphanumerischen Modus [Seite 321].
• unter Table Controls bearbeiten [Seite 307], wenn Sie bestehende Spalten und Zeilen
bearbeiten möchten.

Wizard für Table Controls


Der Wizard unterstützt Sie Schritt für Schritt bei der Erstellung eines funktionsfähigen Table
Controls.
Weitere Informationen erhalten Sie unter Wizard für Table Controls einsetzen [Seite 305].

Custom Container
Der Custom Container sorgt für die Einbettung eines oder mehrerer Controls innerhalb eines
Dynpro-Bereichs. Der Custom Container unterstützt das Dynpro Framework beim Resize und der
Komprimierung der eingebundenen Controls. Im Screen Painter wird hierzu ein rechteckiger
Bereich als Platzhalter für einen oder auch mehrere Controls reserviert. Zur Laufzeit dient es
dann zur Visualisierung von Controls auf dem Dynpro.
Die Resize-Fähigkeit wird über entsprechende Attribute definiert.
Sie erfahren mehr
• zu Resizing-Attributen unter Custom Container-Attribute [Seite 351].
• zur Vorgehensweise beim Anlegen von Containern unter grafischen Modus [Seite 308] bzw.
im alphanumerischen Modus [Seite 328].
• zur Control-Technologie unter Die Control Enabling Technologie [Extern].

Statusikonen
Statusikonen sind Ausgabefelder, die eine Ikone enthalten. Die Ikone wird zur Laufzeit
angegeben. Mit Ikonen zeigen Sie den Status Ihrer Anwendung an. Ikonen sind im System
vordefiniert und belegen zwei bis vier Zeichen.

April 2001 283


BC - ABAP Workbench: Werkzeuge SAP AG
Felder übernehmen

Felder übernehmen
Sie können ein Element zu Ihrem Dynpro-Layout hinzufügen, indem Sie ein vorhandenes
Dictionary- oder Programmfeld auswählen.
Mit Ausnahme von Textelementen muß jedes Element auf Ihrem Dynpro ein entsprechendes
Dictionary- oder Programmfeld enthalten. Wenn Sie Felder auswählen, die im ABAP Dictionary
definiert sind, übernehmen Sie diese Elemente mit allen Informationen aus dem Dictionary, z.B.
Bezeichnungen und Formate. Wenn Sie Dictionary-Felder verwenden, werden diese Felder
immer automatisch aktualisiert, wenn Änderungen im ABAP Dictionary vorgenommen werden.

Dialogfenster Dict/Programmfelder
Im Dialogfenster Dict/Programmfelder können Sie die Dictionary- oder Programmfelder auflisten.
Sie können dieses Fenster aus dem Fullscreeen Editor des Screen Painters aufrufen oder über
das Menü Springen, das in jeder Sicht des Screen Painters zur Verfügung steht:

Dict./Programmfelder übernehmen
So übernehmen Sie Dictionary- oder Programmfelder und fügen Sie zum Dypro-Layout hinzu:
1. Öffnen Sie das Dialogfenster Dict./Programmfelder.
2. Geben Sie einen Tabellen- oder Feldnamen an.
Sie müssen zunächst den Namen der Tabelle oder des Feldes angeben. Feldnamen
können Sie generisch angeben, Tabellennamen müssen jedoch vollständig angegeben
werden.

284 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Felder übernehmen

3. Holen Sie die Felder aus dem Programm oder der Tabelle.
Um im ABAP Dictionary nach einer Tabelle oder einem Feld zu suchen, wählen Sie
Holen aus Dict. Um im ABAP-Programm zu suchen, wählen Sie Holen aus Programm.
Das System zeigt die Felder an.
4. Markieren Sie ein oder mehrere Felder.
5. Wählen Sie die Weiter-Ikone.
Das System zeigt den Cursor und einen Felderumriß im Arbeitsbereich an.
6. Klicken Sie einmal, um die Felder zu positionieren.
7. Klicken Sie einmal außerhalb des Felderumrißes, um die Markierung aufzuheben.

Wenn Sie mehrere Felder gewählt haben, werden sie als Gruppe kopiert. Nach dem Kopieren
können Sie jedes Feld einzeln verschieben. Wenn Ihre Selektion leere oder ungültige Felder
enthält, erscheint eine entsprechende Nachricht. Diese Felder werden dann nicht kopiert.

Kopiervorgang abbrechen
Wenn Sie vor der Positionierung eines Feldes im Bild feststellen, daß Ihre Selektion falsch ist,
können Sie den Kopiervorgang abbrechen, indem Sie Reset-Ikone in der Elementpalette oder die
entsprechende Funktion der rechten Maustaste wählen.

April 2001 285


BC - ABAP Workbench: Werkzeuge SAP AG
Bildelemente ohne Felder anlegen

Bildelemente ohne Felder anlegen


Sie können Elemente auch anlegen, ohne zuvor Felder aus dem Dictionary oder einem
Programm auszuwählen. Möglicherweise bevorzugen Sie dieses Verfahren, wenn Sie zunächst
alle Elemente anlegen wollen, bevor Sie entsprechende Felder im Program oder im Dictionary
definieren. Empfehlenswert ist dies jedoch nicht, da Ihnen dabei die Vorteile verlorengehen, die
die Verwendung der zentralen Dictionary-Definitionen bietet.

Feldnamen angeben
Wenn Sie Elemente ohne zugrundeliegende Felder anlegen, müssen Sie Feldnamen explizit
angeben (Feld Feldname im Fullscreen Editor). Geben Sie einen Feldnamen ein (maximal 40
Zeichen). Der Name darf nur Buchstaben und die Sonderzeichen # (Pfundzeichen), /
(Schrägstrich), - (Gedankenstrich), _ (Unterstrich), $ (Dollarzeichen) enthalten.

Spezialfall
Wenn Sie ein Feld mit einem Gedankenstrich (-) angeben, prüft das System, ob das Feld im
Dictionary enthalten ist. Wenn ja, erscheint ein Popup, in dem Sie bestätigen können, daß das
Element auf das ABAP Dictionary Bezug nehmen soll.

286 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Bildelemente bearbeiten

Bildelemente bearbeiten
Es gibt einige Operationen, die für alle Bildelemente gleichermaßen genutzt werden: Markieren,
Verschieben und Löschen. Darüber hinaus kann bei manchen Elementen die Größe verändert
werden. Diese Operationen unterscheiden sich, wenn Sie den Layout Editor im
alphanumerischen Modus [Seite 332] nutzen.

Markieren
Sie können ein Element markieren, indem Sie es einfach anklicken. Wenn Sie mehrere Elemente
markieren wollen, ziehen Sie ein rechteckiges “Gummiband” um die entsprechenden Elemente.
So markieren Sie mehrere Elemente:
1. Positionieren Sie den Cursor außerhalb der Gruppe.
2. Drücken und halten Sie die Maustaste.
3. Ziehen Sie den Cursor von seiner Ausgangsposition weg.
Ein “Gummiband” erscheint, das die Größe der Markierung anzeigt.
4. Vergewissern Sie sich, daß das “Gummiband” die gesamte Gruppe umfaßt.
5. Lassen Sie die Maustaste los.
Mehrere Elemente können Sie auch markieren, indem Sie die Taste STRG drücken und dabei
jedes einzelne Element anklicken.
Um die einzelnen Elemente der Reihe nach zu markieren, verwenden Sie die Pfeiltasten
.

Löschen
Um ein Bildelement zu löschen, markieren Sie es und wählen Sie Bearbeiten → Löschen.
Alternativ können Sie hierfür die rechte Maustaste verwenden.

Besonderheiten
Wenn Sie ein Table Control oder ein TabStrip löschen, löschen Sie alle Elemente des Table
Controls bzw. des TabStrips
Das Löschen eines Gruppenrahmens löscht nur den Rahmen selbst, nicht seinen Inhalt.

Verschieben
Um ein Objekt zu verschieben, markieren Sie es und ziehen Sie es mit der Maus an die neue
Position. Sie können Elemente nicht an Positionen verschieben, wenn es dadurch zu einer
Überlappung mit anderen Elementen kommt.
Sie können mehrere Elemente auswählen und sie als Gruppe verschieben. Manche Elemente
haben “Griffe” am oberen Rand des Elements, die Sie zur Positionierung der Gruppe verwenden
müssen. Um ein Gruppenelement zu verschieben, markieren Sie es und ziehen es dann mit
seinem “Griff” an die neue Position.
Elemente in einem Gruppenrahmen verhalten sich wie andere gruppierte Elemente. Wenn Sie
den Rahmen verschieben, werden die Elemente ebenfalls verschoben.

April 2001 287


BC - ABAP Workbench: Werkzeuge SAP AG
Bildelemente bearbeiten

Größe verändern
So können Sie die Größe von Bildelementen verändern:
1. Markieren Sie das Element.
2. Klicken Sie den rechten oder unteren Rand des Elements an.
Der Cursor verändert seine Form, wenn die Größe des Objekts änderbar ist.
3. Ziehen Sie den Rand mit dem Cursor, um die Größe des Elements zu verändern.
Sie können auch die Größe des Bildes verändern, indem Sie seinen Rand markieren und ziehen.
Alternativ ist es auch möglich, die Zeilen- und Spaltenanzahl in den Element-Attributen zu
ändern.

Undo/Redo
Grundsätzlich können Sie immer den letzen Schritt rückgängig machen bzw. wiederholen. Dies
trifft auch zu, wenn ein Element gelöscht wurde. Verwenden Sie dazu die entsprechenden
Tasten.

Cut & Paste


Um Bildelemente auszuschneiden, zu kopieren oder einzusetzen, verwenden Sie die
entsprechende Funktion im Menü Bearbeiten des Layout Editors oder über die zugehörige Taste
in der Symbolleiste.

288 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Verwendung von Ikonen

Verwendung von Ikonen


Sie können Ikonen anstelle von oder auch zusammen mit Texten in Textelementen, Drucktasten,
Auswahlknöpfen und Ankreuzfeldern verwenden. Abhängig vom Elementtyp stehen
verschiedene Ikonentypen zur Verfügung. Wenn Sie versuchen, eine ungültige oder unzulässige
Ikone zu verwenden, erscheint eine Fehlermeldung.
So können Sie Texte durch Ikonen ergänzen oder ersetzen:
1. Markieren Sie das Element, das Sie mit einer Ikone versehen wollen.
2. Wählen Sie Attribute.
Das Dialogfenster Screen Painter: Attribute erscheint.

3. In das Feld Icon-Name können Sie direkt eine Bezeichnung für eine Ikone eintragen. Meist
kennen Sie die Bezeichnung der Ikone nicht, weshalb Sie eine Eingabehilfe über den Icon
Button erhalten können:

April 2001 289


BC - ABAP Workbench: Werkzeuge SAP AG
Verwendung von Ikonen

Um die richtige Ikone zu finden, haben Sie auf diesem Bildschirm die Möglichkeit, eine
Spalte alphabetisch zu sortieren, einen bestimmten Begriff zu suchen oder sich eine
Übersicht über die Ikonen zu verschaffen.
Wenn Sie eine Ikone für ein Ausgabefeld verwenden wollen, müssen Sie das Feld Mit
Icon markieren. Siehe dazu Allgemeine Attribute [Seite 338].
4. Schließen Sie das Dialogfenster Attribute.

290 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Arbeiten mit Auswahlknöpfen

Arbeiten mit Auswahlknöpfen


Die Kombination von Dynpro-Elementen in einer Auswahlknopfgruppe bedeutet, daß Sie diese
Auswahlknöpfe als Einheit manipulieren können. Ehe Sie eine Auswahlknopfgruppe anlegen
können, müssen Sie die einzelnen Auswahlknöpfe separat anlegen.
Wenn Sie Ankreuzfelder in eine Auswahlknopfgruppe aufnehmen möchten, müssen Sie diese
zunächst in Auswahlknöpfe umwandeln.

Gruppe definieren
So definieren Sie einzelne Elemente als eine Gruppe von Auswahlknöpfen:
1. Markieren Sie die einzelnen Auswahlknöpfe.
2. Wählen Sie Bearbeiten → Gruppierung → Auswahlknopfgruppe → Definieren.
3. Das System definiert eine Auswahlknopfgruppe.

Auswahlknöpfe in eine bestehende Gruppe aufnehmen


Um Auswahlknöpfe in eine vorhandene Gruppe aufzunehmen, gehen Sie so vor:
1. Markieren Sie die gewünschte Gruppe.
2. Wählen Sie Bearbeiten → Gruppierung → Auswahlknopfgruppe → Auflösen.
3. Nehmen Sie die neuen Auswahlknöpfe in die Auswahl auf.
4. Markieren Sie die Gruppe und wählen Sie Bearbeiten → Gruppierung
→ Auswahlknopfgruppe → Definieren.
Das System zeigt eine gepunktete Linie um die neue Gruppe herum an.

April 2001 291


BC - ABAP Workbench: Werkzeuge SAP AG
Tabstrips

Tabstrips
Definition
Ein Tabstrip ist eine Art Karteikasten, welcher auf einem Dynpro verschiedene Komponenten
einer Anwendung abbildet. Im Gegensatz zum klassischen Bildwechel sieht der Benutzer stets
alle Ansprungziele. Tabstrips bieten damit einen einfachen und leicht verständlichen Weg, um
unterschiedliche Komponenten einer Anwendung auf einem Dynpro zu definieren und zwischen
ihnen zu navigieren. Die Struktur einer Anwendung erscheint somit für den Benutzer transparent
und homogen.

Verwendung
Das Tabstrip wird verwendet:
• um komplexere Anwendungen in ihrer Struktur zu vereinheitlichen und
Navigationsmöglichkeiten zwischen den Komponenten der Anwendung zu optimieren.
• um Transparenz der Anwendungsstruktur zu erhöhen und damit den Lernaufwand und
Bedienbarkeit für den Benutzer zu erleichtern.

Tabstrips sollten überall dort zum Einsatz kommen, wo unterschiedliche


Teilkomponenten oder unterschiedliche logische Sichten zu einem Objekt bzw. zu
einer Anwendung vorkommen und über Bildwechsel angesprungen werden.
Typischerweise werden Property Sheets zur Angabe von Attributen komplexer
Objekte verwendet.

Struktur
Das nachfolgende Beispiel gibt die wesentlichen Komponenten und das Umfeld eines Tabstrips
wieder:

292 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Tabstrips

Tab-Reiter
Tab-Reiter geben die Ansprungziele einer Anwendung an und werden mit Drucktasten realisiert.
Das Einfügen der Ikonen auf dem Tab-Reiter ist ebenso wie bei Drucktasten möglich. Die
Bezeichnungen der Tab-Reiter sollten kurz und prägnant sein.

Tab-Reiterzeile
Die erste Zeile der Tabstrips ist für die Tab-Reiter reserviert. Sind mehr Tab-Reiter als anzeigbar
definiert, dann muß geblättert werden. Zu diesem Zweck erscheinen am rechten oberen Rand
automatisch zusätzliche Blättertasten.

Tabstrip-Seite
Verschiedene Felder werden auf einer Seite zu einer Einheit zusammengefaßt. Dies entspricht
der bisherigen Umrahmung von Feldern eines Dynpros mit einem Gruppenrahmen. Eine
Tabstrip-Seite wird durch ein Subscreen realisiert.

Tabstrip-Umfeld
Das Umfeld des Tabstrips muß konstant gehalten werden. Beim Wechsel von einer Tabstrip-
Seite in die andere dürfen sich Menü-, Drucktastenleiste oder weitere Felder auf dem Dynpro
nicht ändern.

April 2001 293


BC - ABAP Workbench: Werkzeuge SAP AG
Tabstrips

Zu den Einsatz- und Gestaltungsregeln von Tabstrips sei auf die Transaktion BIBS
verwiesen. Unter Elemente finden Sie in dieser Transaktion ein Beispiel-Programm
für Tabstrips und unter der Drucktaste Regeln Ratschläge zur Gestaltung von
Tabstrips.

294 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Tabstrips definieren

Tabstrips definieren
Folgende Schritte sind notwendig, um ein Tabstrip-Control im Screen Painter zu definieren:
1. Tabstrip-Bereich festlegen.
2. Tab-Reiter spezifizieren.
3. Subscreen-Bereiche definieren und zuweisen.
4. Ablauflogik programmieren.

Wenn Sie Tabstrips im alphanumerischen Screen Painter anlegen möchten, so


erhalten Sie weitere Informationen hierzu unter Tabstrips im alphanumerischen
Modus anlegen [Seite 325].

Vorgehensweise
Tabstrip-Bereich anlegen
So legen Sie im grafischen Screen Painter einen Tabstrip-Bereich für ein Dynpro an:
1. Wählen Sie die Tabstrip-Ikone aus der Elementpalette des Screen Painters im
Änderungsmodus an.
Der Cursor verändert seine Form.
2. Markieren Sie den oberen linken Rand, an dem das Tabstrip beginnen soll, durch einen
Mausklick. Halten Sie die Maustaste weiterhin gedrückt.
3. Positionieren Sie die Maus am unteren linken Rand des Tabstrips und lassen Sie die
Maustaste los.
4. Verändern Sie eventuell nachträglich die Position und Größe des Tabstrips.
5. Vergeben Sie einen Elementnamen <tab_strip_name> für das anzulegende Tabstrip.
6. Öffnen Sie mit einem Doppelklick das Attribute-Fenster.
7. Vergeben Sie weitere Attribute [Seite 349] zum Tabstrip.

Der Elementname des Tabstrips wird bei der Behandlung im ABAP-Programm mit
der Controls-Anweisung wie folgt verwendet:
CONTROLS <tab_strip_name> TYPE TABSTRIP.

Tab-Reiter spezifizieren
Das neu definierte Tabstrip ist standardmäßig mit zwei Reitern vorbelegt. Eine davon
abweichende Anzahl der Tab-Reiter haben Sie über das Tabstrip-Attribut Tab-Reiter festgelegt.
Um die Tab-Reiter weiter zu spezifizieren, gehen Sie wie folgt vor:
1. Mit einem Doppelklick auf einen Tab-Reiter wird das zugehörige Attributfenster (für die
Drucktaste) geöffnet.
2. Vergeben Sie die Attribute zum Tab-Reiter:

April 2001 295


BC - ABAP Workbench: Werkzeuge SAP AG
Tabstrips definieren

Attribut Bedeutung
Name Name der den Tab-Reiter definierenden Drucktaste.
Text Die Beschriftung des Tab-Reiters.
Icon-Name Ikone, die eventuell zum Textfeld hinzugefügt wird.
Bedenken Sie jedoch, daß die Verwendung von Ikonen auf Tab-Reitern in
der SAP Style Guide nicht empfohlen wird.
Ausnahme: Ikonen zur Statusanzeige oder als ausreichender Ersatz für eine
Beschriftung der Tab-Reiter (Phone, Fax, Alarm,…).
FktCode Funktionscode, der das PAI-Ereignis auslöst. Beim Anklicken des Tab-
Reiters wird der Funktionscode in das Systemfeld SY-UCOMM gestellt.
Beim Blättern am Backend wird auch das OK_Code-Feld mit dem
Funktionscode versorgt.
FktTyp Für die Tab-Reiter kommen die beiden Funktionstypen <P> oder <SPACE>
in Frage. Für das lokale Blättern am GUI-Frontend ist der Funktionstyp <P>
zu wählen. Bei der Auswahl eines Reiters wird dann kein PAI-Ereignis
ausgelöst und es findet auch kein Datentrafer zum Applikationsserver statt.
Zum Blättern am Backend ist der Fuktionstyp <SPACE> (keine Typisierung)
zu wählen. Bei der Auswahl eines Reiters wird PAI ausgelöst und der
entsprechende Funktionscode ins OK_CODE-Feld gestellt.

3. Wiederholen Sie die Schritte 1-2 für jeden weiteren Tab-Reiter.

Tab-Reiter können auch, ähnlich wie einfache Drucktasten, dynamisch mit Text
versorgt werden.

Subscreen-Bereich zuweisen
Jeder Tabstrip-Seite wird ein Subscreen-Bereich zugewiesen. Beim lokalen Blättern am GUI-
Frontend (Funktionstyp <P>) muß jedem Tab-Reiter ein separater Subscreen-Bereich
zugeordnet werden.
Im Gegensatz dazu ist beim Blättern am Backend (Funkionstyp <SPACE>) ein Subsreen-Bereich
allen Tabstrip-Seiten gemeinsam.
Gehen Sie wie folgt vor, um einen Subscreen-Bereich einer Tabstrip-Seite zuzuweisen:
1. Selektieren Sie einen Tab-Reiter.
2. Wählen Sie die Ikone Subscreen-Bereich in der Werkzeugpalette.
3. Durch Ziehen mit der Maus legen Sie die Position des Subscreen-Bereichs innerhalb der
Tabstrip-Seite fest.
4. Geben Sie den Namen <subscreen_area> für den jeweiligen Subscreen-Bereich an.
Dieser Name erscheint auch als Referenzfeld im Attibutebild des Tab-Reiters.

Alternativ kann die Zuweisung auch manuell über das sogenannte Referenzfeld im
Attributefenster des Tab-Reiters oder über die Elementliste erfolgen, indem dort der

296 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Tabstrips definieren

Elementname des Subscreen-Bereiches eingetragen wird (nur beim Blättern am


Backend).

Ablauflogik programmieren
Die Behandlung der Abaluflogik beschränkt sich auf die Einbindung der beteilgten Subscreen-
Dynpros in die (den) zugehörigen Subscreen-Bereich(e) im Tabstrip. Ensprechend der beiden
Blättermöglichkeiten ergeben sich Unterschiede in der Programmierung der Dynpro-Ablauflogik.

Blättern am GUI
Beim lokalen Blättern am GUI ist zu berücksichtigen, daß Subscreen-Dynpros in alle Subscreen-
Bereiche des Tabstrips einzubinden sind.
Um die Ablauflogik zu definieren, führen Sie die folgenden Schritte aus:
1. Fügen Sie in die Ablauflogik des Dynpros zum Verarbeitungsblock PBO folgende
Anweisungen ein:

PROCESS BFORE OUTPUT.

CALL SUBSCREEN: <subscreen_area1> INCLUDING [<progname 1>]


<subscreen_dynp 1>,
<subscreen_area2> INCLUDING [<progname 2>]
<subscreen_dynp 2>,
<subscreen_area3> INCLUDING [<progname 3>]
<subscreen_dynp 3>,
...
...

Beachten Sie, daß die einzelnen Subscreen-Dynpros unterschiedlichen ABAP-


Programmnamen entnommen werden können.
2. Fügen Sie in die Ablauflogik des Dynpros zum Verarbeitungsblock PAI folgende Anweisung
ein:

PROCESS AFTER INPUT.


...
CALL SUBSCREEN: <subscreen_area1>,
<subscreen_area2>,
<subscreen_area3>,
...
...

Blättern am Backend
Beim Blättern auf dem Applikationsserver ist nur in einen Subscreen-Bereich ein Subscreen-
Dynpro einzubinden.
Um die Ablauflogik zu definieren, führen Sie die folgenden Schritte aus:
1. Fügen Sie in die Ablauflogik des Dynpros zum Verarbeitungsblock PBO folgende Anweisung
ein:

PROCESS BFORE OUTPUT.


...

April 2001 297


BC - ABAP Workbench: Werkzeuge SAP AG
Tabstrips definieren

CALL SUBSCREEN < subscreen_area> INCLUDING [<progname>]


<subscreen_dynp>.
...
2. Fügen Sie in die Ablauflogik des Dynpros zum Verarbeitungsblock PAI folgende Anweisung
ein:
PROCESS AFTER INPUT.
...
CALL SUBSCREEN < subscreen_area>.

Ergebnis
Sie haben ein Tabstrip-Control im Screen Painter angelegt. Ferner haben Sie festgelegt, ob am
GUI-Frontend oder am Backend beim Wechsel der einzelnen Tabstrip-Seiten geblättert wird und
entsprechend die Dynpro-Abaluflogik definiert.
Nun können Sie sich der Behandlung des Tabstrips im ABAP-Programm widmen, nachdem Sie
einen Eintrag für das OK-Code-Feld (beim Blättern am Backend) in der Feldliste gesetzt haben.
Weitere Informationen zur Behandlung im ABAP-Programm, erhalten Sie im ABAP-Handbuch
unter Tabstrips [Extern].

298 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Wizard für Tabstrips einsetzen

Wizard für Tabstrips einsetzen


Mit Hilfe des Wizards können Sie schnell und auf einfache Weise Tabstrip Controls anlegen und
implementieren. Die generierte Dialoglogik leitet sich aus dem Programmiermodell für das
"Blättern am Backend" ab.
Ein so erstelltes Tabstrip Control können Sie auch als Vorlage für eine eventuelle
Weiterentwicklung innerhalb ihrer Anwendung verwenden.

Funktionsumfang
§ Anlegen einer Instanz des Tabstrip Controls.
§ Definieren der Tab-Reiter, einschließlich der zugehörigen Funktionscodes.
§ Zuordnen eines gemeinsamen Subcreen-Bereichs für alle Tabstrip-Seiten.
§ Anlegen neuer Dynpros vom Typ Subscreen, sofern nicht auf bereits existierende
zurückgegriffen werden soll.
§ Generieren der für das "Blättern am Backend" erforderlichen Ablauflogik.
§ Anlegen der PBO- und PAI-Module und aller notwendigen Datendefinitionen.
§ Anlegen entsprechender Includes für die Module und für die Datendefinitionen, falls
erforderlich.

Vorgehen
So starten Sie den Wizard für das Tabstrip Control:

Im grafischen Screen Painter


1. Rufen Sie den Layout Editor des grafischen Screen Painters auf.
2. Falls erforderlich, schalten Sie in den Änderungsmodus um.

3. Klicken Sie die Ikone aus der Elementpalette an.


4. Markieren Sie den Tabstrip-Bereich auf der Dynprofläche.
Im Anschluß daran wird der Wizard im separaten Dialogfenster gestartet.
5. Der Wizard begleitet Sie von nun an bis zur Fertigstellung eines funktionsfähigen Tabstrips.
Der gesamte Erstellungsablauf besteht aus 5 Dialogen, die Schritt für Schritt die
Eigenschaften des Tabstrips und des zu generierenden ABAP-Codings festlegen. Zwischen
den einzelnen Dialogen können Sie mit den Drucktasten Weiter und Zurück wechseln und
schließlich mit der Taste Fertigstellen die Generierung ansteuern.

Im alphanumerischen Screen Painter


1. Rufen Sie den Layout Editor des alphanumerischen Screen Painters auf.
2. Falls erforderlich, schalten Sie in den Änderungsmodus um.
3. Setzen Sie den Cursor auf die Position, an der die linke obere Ecke des Tabstrip-Bereichs
erscheinen soll.
4. Wählen Sie den Menüpfad Bearbeiten → Wizards für Anlegen Element → Tabstrip.

April 2001 299


BC - ABAP Workbench: Werkzeuge SAP AG
Wizard für Tabstrips einsetzen

5. Setzen Sie den Cursor auf die Position, an der die rechte untere Ecke des Tabstrip-Bereichs
erscheinen soll.
6. Wählen Sie die Drucktaste Ctrl Ende mark.
Der Wizard wird im separaten Dialogfenster gestartet.
7. Siehe Schritt 5 für den grafischen Screen Painter.

Tritt bei der Generierung des Tabstrips ein Fehler auf oder wird der Wizard
abgebrochen, dann werden alle zwischenzeitlich vom Wizard erstellten Objekte und
generierten Quelltextzeilen gelöscht und der ursprüngliche Zustand hergestellt.

300 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Table Controls

Table Controls
Definition
Ein Table Control ist ein Bereich auf dem Dynpro zur effizienten Erfassung und Anzeige von
einzeiligen, tabellenförmigen Daten, die in einer Schleife verarbeitet werden. Table Controls sind
mit Step Loop-Tabellen vergleichbar. Während ein Table Control aus einer Definitionszeile (s.
Abb.) besteht, können sich Step Loop-Blöcke über mehrere Zeilen erstrecken. Table Controls
bieten einen größeren Funktionsumfang und sollen die herkömmlichen Step Loop-Tabellen
ablösen.

Zu den Einsatz- und Gestaltungsregeln von Table Controls sei auf die Transaktion
BIBS verwiesen. Unter dem Menüpfad Elementeà Table Controls finden Sie
Realisierungen von Table Controls für verschiedene Einsatzbereiche. Mit der
Drucktaste Regeln erhalten Ratschläge zur Gestaltung von Table Controls.

Verwendung und Funktionsumfang


Table Controls werden verwendet, um die Erfassung, Darstellung und Bearbeitung von
Tabellendaten zu vereinfachen.
Table Controls stellen folgenden Funktionsumfang zur Verfügung:
• Zur Definitionszeit:
Vorgabe feststehender Führungsspalten.
Definieren von Überschriften.
• Zur Laufzeit:
Vertikales und horizontales Scrollen.
Verändern der Spaltenbreite.
Markieren von Spalten und Zeilen.
Verschieben von Spalten.
Sichern aktueller Einstellungen.

Komponenten eines Table Controls


In der nachfolgenden Abbildung sind die wesentlichen Komponenten eines Table Controls
aufgeführt:

April 2001 301


BC - ABAP Workbench: Werkzeuge SAP AG
Table Controls

Definitionszeile Kopfzeile Titelzeile Sichern der Einstellungen

Feststehende Führungsspalte
Markierspalte Scrollbars

Besonderheiten
• Innerhalb von Definitionszeilen können Schlüsselwörter, Ein- und Ausgabefelder,
Auswahlknöpfe, Ankreuzfelder, Gruppen von Auswahlknöpfen und Drucktasten verwendet
werden.
• Eine Zeile kann bis zu 255 Spalten beinhalten.

302 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Table Controls definieren

Table Controls definieren


Um ein Table Control zu definieren, sind folgende Schritte durchzuführen:
1. Table Control-Bereich festlegen.
2. Table Control-Elemente definieren.
3. Titel hinzufügen (optional).
4. Table Control im Modulpool definieren.

Vorgehensweise

Die hier beschriebene Vorgehensweise unterscheidet sich, wenn Sie den Fullscreen
Editor im alphanumerischen Modus einsetzen. Informationen dazu finden Sie in
Table Controls anlegen und bearbeiten [Seite 321].

Table Control-Bereich festlegen


So legen Sie im Fullscreen Editor zu einem Dynpro den Table Control-Bereich fest:
1. Wählen Sie Table Control-Ikone aus der Elementpalette im Änderungsmodus des Screen
Painters an.
Der Cursor verändert seine Form.
2. Positionieren Sie den Cursor, ziehen ihn und lassen schließlich die Maustaste los.
3. Verändern Sie eventuell nachträglich die Größe oder die Position des Table Controls.
4. Vergeben Sie für das angelegte Table Control einen Elementnamen.

Elemente definieren
Um Elemente des Table Controls zu definieren, haben Sie die Möglichkeit, sie aus dem ABAP
Dictionary bzw. aus dem Programm zu übernehmen oder neu anzulegen. Im ersten Fall wenden
Sie die Vorgehnsweise aus Felder übernehmen [Seite 284] an. Im zweiten Fall werden Elemente
aus der Elementpalette verwendet. Die Vorgehensweise hierzu ist im folgenden beschrieben:
1. Wählen Sie ein Element aus der Elementpalette aus und stellen Sie es in die Definitionszeile
des Table Controls.
Das System legt eine Spalte an.
2. Vergeben Sie für das angelegte Element einen Elementnamen und gegebenenfalls noch
zusätzliche Attribute.
3. Legen Sie eine Spaltenüberschrift an, indem Sie einen Text oder ein Ein/Ausgabefeld in die
Spaltenüberschrift ziehen.
4. Wiederholen Sie die bisherigen Schritte für jede weitere Spalte.
5. Vergeben Sie Table Control-Attribute [Seite 350], um weitere Spezifizierungen vorzunehmen.

Titel hinzufügen
1. Markieren Sie im Attribut-Fenster des Table Controls das Ankreuzfeld mit Titel.
Sie erhalten die Aufforderung, ein Titelelement anzulegen.

April 2001 303


BC - ABAP Workbench: Werkzeuge SAP AG
Table Controls definieren

2. Fügen Sie ein Textfeldelement bzw. ein Ein/Ausgabefeld in die Titelzeile ein.
3. Geben Sie den Elementnamen und unter Text den Überschrifttext ein.

Table Control im Modulpool definieren


Fügen Sie im Deklarationsteil Ihrer Transaktion eine Controls-Anweisung für das angelegte Table
Control ein:
CONTROLS <tab_ctrl_name> TYPE TABLEVIEW USING SCREEN <dynpro_nr>.

Informationen zur Tabellenbearbeitung finden Sie in Table Controls bearbeiten [Seite


307].

304 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Wizard für Table Controls einsetzen

Wizard für Table Controls einsetzen


Mit Hilfe dieses Wizards können Sie schnell und auf einfache Weise funktionsfähige Table
Controls erstellen und sich einige Standardfunktionen zur Tabellenpflege generieren lassen.
Ein so erstelltes Table Control können Sie auch als Vorlage für eine eventuelle
Weiterentwicklung innerhalb ihrer Anwendung verwenden.

Funktionsumfang
§ Anlegen einer Instanz des Table Controls.
§ Festlegen der Tabellenzuordnung zur Dictionary- bzw. zur Programmtabelle.
§ Auswählen der Tabellenfelder für die Spaltendefinition.
§ Vergabe wichtiger Attribute zum Table Control.
§ Generieren der zugehörigen Anweisungen in der Dynpro-Ablauflogik.
§ Anlegen der PBO- und PAI-Module, Unterprogramme (für die Standardfunktionen zur
Tabellenpflege) und aller notwendigen Datendefinitionen.
§ Generieren von Standardfunktionen für die Tabellenpflege (Blättern, Zeile einfügen/löschen,
Alles markieren/entmarkieren).
§ Anlegen entsprechender Includes für die Module, für die Datendefinitionen und für
Unterprogramme, falls erforderlich.

Vorgehen
So starten Sie den Wizard für das Table Control:

Im grafischen Screen Painter


5. Rufen Sie den Layout Editor des grafischen Screen Painters auf.
6. Falls erforderlich, schalten Sie in den Änderungsmodus um.

7. Klicken Sie die Ikone aus der Elementpalette an.


8. Markieren Sie den Table Control-Bereich auf der Dynprofläche.
Im Anschluß daran wird der Wizard im separaten Dialogfenster gestartet.
6. Der Wizard begleitet Sie von nun an bis zur Fertigstellung eines funktionsfähigen Table
Controls. Der gesamte Erstellungsablauf besteht aus 7 Dialogen, die Schritt für Schritt die
Eigenschaften des Table Controls und des zu generierenden ABAP-Codings festlegen.
Zwischen den einzelnen Dialogen können Sie mit den Drucktasten Weiter und Zurück
wechseln und schließlich mit der Taste Fertigstellen die Generierung ansteuern.

Im alphanumerischen Screen Painter


7. Rufen Sie den Layout Editor des alphanumerischen Screen Painters auf.
8. Schalten Sie in den Änderungsmodus um, falls erforderlich.
9. Setzen Sie den Cursor auf die Position, an der die linke obere Ecke des Table Control-
Bereichs erscheinen soll.
10. Wählen Sie den Menüpfad Bearbeiten → Wizards für Anlegen Element → Table Control.

April 2001 305


BC - ABAP Workbench: Werkzeuge SAP AG
Wizard für Table Controls einsetzen

11. Setzen Sie den Cursor auf die Position, an der die rechte untere Ecke des Table Control-
Bereichs erscheinen soll.
12. Wählen Sie die Drucktaste Ctrl Ende mark.
Der Wizard wird im separaten Dialogfenster gestartet.
Siehe Schritt 5 für den grafischen Screen Painter.

Tritt bei der Generierung des Table Controls ein Fehler auf oder wird der Wizard
abgebrochen, dann werden alle zwischenzeitlich vom Wizard erstellten Objekte und
generierten Quelltextzeilen gelöscht und der ursprüngliche Zustand hergestellt.

306 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Table Controls bearbeiten

Table Controls bearbeiten


Größe und Position ändern
Bevor Sie das Table Control bearbeiten, müssen Sie es selektieren. Dann erscheinen auf beiden
Seiten des Table Controls "Griffe". Diese verwenden Sie, um die Position oder die Größe des
Table Controls zu verändern.
Wählen Sie den quadratischen "Griff" am oberen Rand des Table Controls, um es zu
verschieben. Mit den rautenförmigen "Griffen" können Sie seine Größe verändern.

Spalten bearbeiten
• Um Anordnung der Spalten in einem Table Control zu ändern, wählen Sie eine Spalte und
ziehen Sie sie an die neue Position. Das System paßt die Spaltenüberschriften automatisch
an.
• So verschieben Sie eine Spalte an eine zu diesem Zeitpunkt unsichtbare (aus dem Bild
verschobene) Position:
– Selektieren Sie die Spalte und ggf. die zugehörige Spaltenüberschrift und ziehen Sie
beide aus dem Table Control heraus.
– Blättern Sie im Table Control, bis die gewünschte Position erscheint.
– Schieben Sie die Spalte mit ihrer Überschrift in die neue Position des Table Controls
zurück.

Alternativ können Sie die Spalten bearbeiten, indem Sie gemäß Cut & Paste aus
dem Table Control ausschneiden und wieder einsetzten oder die Spaltennummer im
Attribut-Fenster direkt eingeben.
• Um eine Spaltenüberschrift zu löschen, markieren Sie sie und wählen Sie Bearbeiten →
Löschen. Sie können den Inhalt einer Spalte auf dieselbe Art und Weise löschen. Wenn Sie
eine Spalte löschen, löscht das System auch die Überschrift.
• Wenn Sie Spaltenmarkierung auf dem Table Control zulassen wollen, müssen Sie das
Attribut Spaltenmark. setzen. Dabei können Sie sich entscheiden, ob sie keine Selektion,
Einfach- oder Mehrfachselektion zulassen wollen. Die Standardeinstellung ist
Einfachselektion.

Zeilen bearbeiten
Sie können bei Ihrem Table Control auch Zeilenauswahl zulassen. Dazu müssen Sie das Attribut
Zeilenmark. setzen. Auch hier sind Einfach- und Mehrfachselektionen möglich. Zusätzlich
müssen Sie auch das Feld Mark.Sp. ankreuzen und einen Feldnamen in das dahinterliegende
Feld einpflegen. Über diesen Namen können Sie in Ihrem ABAP-Programm abfragen, welche
Zeile ausgewählt wurde.

Siehe auch
Table Control-Attribute [Seite 350].

April 2001 307


BC - ABAP Workbench: Werkzeuge SAP AG
SAP Custom Container anlegen

SAP Custom Container anlegen


Der SAP Custom Container ist ein Control, in das Sie weitere Controls einbinden können. Es
ermöglicht dem Dynpro Framework, Controls beim Resize und der Komprimierung zu
unterstützen.

Weitere Informationen zur Control Framework erhalten Sie unter SAP Control
Framework [Extern].

Voraussetzungen
Sie haben den Layout Editor des grafischen Screen Painters geöffnet. Der Änderungsmodus ist
eingeschaltet.

Vorgehensweise
So legen Sie einen Bereich für den Custom Container an:
1. Wählen Sie die Ikone Custom Control aus der Elementpalette aus.
Der Cursor verändert seine Form.
2. Positionieren Sie den Cursor im Arbeitsbereich, ziehen ihn und lassen schließlich die
Maustaste los.
3. Verändern Sie eventuell die Größe oder die Position des Containers.
4. Geben Sie den Namen für den Container ein.
5. Vergeben Sie die Attribute [Seite 351] für das Resizing.

Ergebnis
Ein Custom Container wurde angelegt. Der zugehörige physische Bereich im Screen Painter
dient zur Visualisierung des (der) einzubettenden Controls. Der Custom Container wird im
folgenden als "Parent" dieses (dieser) Controls angesprochen.

308 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
SAP Custom Container anlegen

Siehe auch:
Anlegen eines Controls am Beispiel des SAP Picture [Extern].

April 2001 309


BC - ABAP Workbench: Werkzeuge SAP AG
Arbeiten mit Step Loops

Arbeiten mit Step Loops

Step Loops bieten einen weitaus geringeren Funktionsumfang als Table Controls
[Seite 301]. Diese sollen die herkömmlichen Step Loop-Tabellen ablösen.

Step Loops
Sie können Bildelemente in sog. Step Loops zusammenfassen. Ein Step Loop besteht aus einer
Reihe wiederholter Loop-Blöcke. Ein Loop-Block dagegen setzt sich einer oder mehreren Loop-
Zeilen von grafischen Bildelementen zusammen. Sie können einen Loop-Block als fix oder
variabel definieren.
In einem fixen Loop bleibt die untere Grenze des Loop-Bereichs immer unverändert wie
ursprünglich definiert. Bei einem variablen Loop wird die Anzahl der Wiederholungen dynamisch
im Dynpro an die Größe des aktuellen Fensters angepaßt. Damit das System auf die variable
Loop-Größe reagieren kann, stellt es immer die aktuelle Anzahl der Loop-Blöcke in das
Systemfeld SY-LOOPC. Wenn das Dynpro mehrere Loops enthält, können Sie nur einen davon
als variabel definieren.
Wenn Sie ein Dynpro mit mehreren Step Loop ausführen, geht der Dialogprozessor Zeile für
Zeile durch diese “Dynpro-Tabelle”.

Verwenden Sie das Step Loop-Verfahren nicht, um Listen aufzubereiten. Legen Sie
dazu einen eigenen Report an.
Die Step Loop-Verfahren in der alphanumerischen Anzeige sind anders.
Informationen dazu finden Sie in Step Loops im alphanumerischen Modus anlegen
und bearbeiten [Seite 330].

Step Loop anlegen


So legen Sie einen Step-Loop an:
1. Öffnen Sie ein Bildschirmbild im Layout Editor.
2. Legen Sie die Elemente an, die Sie einem Wiederholungsblock zuordnen möchten.
Diese Elemente können in einer Zeile erscheinen oder über mehrere Zeilen gehen.
3. Markieren Sie alle Elemente in der gewünschten Zeile/den gewünschten Zeilen als Gruppe.
4. Wählen Sie Bearbeiten → Gruppierung → Steploop → Definieren.
Die Zeilen Ihres Elements enthalten jetzt einen Step Loop-Block mit den ursprünglichen
Elementen, deren Attributen und einer vordefinierten Anzahl von Wiederholungsblöcken.
Jeder Wiederholungsblock enthält eine Kopie des ersten Blocks, jedoch ohne Attribute.
Die Wiederholungsblöcke sind fortlaufend numeriert, damit Sie sich auf eine bestimmte
Zeile beziehen können.

310 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Arbeiten mit Step Loops

Step Loops bearbeiten


• Um einen Loop-Block als Ganzes zu bearbeiten, klicken Sie auf die “Griffe” am Rand des
Loop. Mit Bearbeiten → Step-Loop können Sie den Block manipulieren, beispielsweise als
variabel oder fix neu definieren oder auflösen.
• Wenn Sie ein Element aus einem Block entfernen wollen, klicken Sie das Element an und
wählen Sie Löschen. Wenn Sie alle Elemente löschen, wird auch der Block gelöscht.
• Um einen Loop-Block aufzulösen, wählen Sie Bearbeiten → Steploop → Auflösen. Die
einzelnen Elemente werden dann wieder zu normalen Bildelementen.
• Um einen Loop-Block als fix oder variabel zu definieren, markieren Sie den Block und wählen
Bearbeiten → Steploop → Fix oder Variabel. Denken Sie daran, daß sich ein variabler
Loop-Block automatisch an die Fenstergröße anpaßt, ein fixer jedoch nicht.
Wenn Sie mit der Definition von Loop-Blöcken fertig sind, finden Sie Informationen zur
Programmierung von Step Loops in ABAP-Benutzerhandbuch [Extern].

April 2001 311


BC - ABAP Workbench: Werkzeuge SAP AG
Step Loops umwandeln

Step Loops umwandeln


Sie können einen Step Loop in ein Table Control umwandeln. Bei dieser Umwandlung ist zu
unterscheiden, ob die Überschriften in die Umwandlung einbezogen werden sollen oder nicht.

Umwandlung ohne Überschriften


Markieren Sie einen Step Loop ohne seine Überschriften und wählen Sie Bearbeiten →
Umwandeln → Table Control. Das System legt ein Table Control an, das genau die Größe hat,
die vorher von dem ursprünglichen Step Loop belegt wurde.
Die erste Zeile des Tabellenelements (für Spaltenüberschriften verwendet) bleibt leer.
Mehrzeilige Step Loops sind mit einer Tabellenzeile verbunden. Wenn die Zeile zu lang ist, um in
den sichtbaren Bereich zu passen, müssen Sie blättern, um den Rest der Zeile anzuzeigen. Das
System errechnet die Spaltenbreiten der Tabelle aufgrund des Leerraumes zwischen den
Elementen im ursprünglichen Step Loop.

Umwandlung mit Überschriften


Markieren Sie einen Step Loop zusammen mit seinen Überschriften als Gruppe und wählen Sie
Bearbeiten → Umwandeln → Table Control.
Das System legt die Tabelle an und füllt die Kopfzeile mit den Überschriften aus dem Step Loop.
Die Überschriften werden entsprechend der Reihenfolge der Step Loop-Spalten eingefügt, nicht
nach Namen.
Die Höhe des Table Controls wird so gewählt, daß die vorherigen Überschriften Platz finden.

312 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Elementliste im grafischen Modus

Elementliste im grafischen Modus


Mit der Elementliste erhalten Sie eine Gesamtübersicht zu allen Attributen sämtlicher Elemente
des Bildschirmbildes. Attribute können hier analog zu den einzelnen Attributebildern angezeigt
und auch geändert werden.
Eine Elementliste ist stets einem Editor-Modus zugeordnet. Die Darstellung der Atttribute in der
Elementliste ist also unterschiedlich, je nachdem ob Sie den grafischen oder den
alphanumerischen Modus verwenden.
Dieser Abschnitt beschreibt die Elementliste vom grafischen Layout Editor. Diese wird dort mit
der Taste Elementliste aufgerufen.

In Einstiegsbild des Screen Painters wird die Elementliste im alphanumerischen


Modus [Seite 335] aufgrufen, da sie dort voreingestellt ist.

Besonderheiten
In der Elementliste sind Attribute in 4 Kategorien unterteilt und zusammenhängend gruppiert in:
• Allgemeine Attr.
• Dictionary-Attr.
• Programm-Attr.
• Anzeige-Attr.

April 2001 313


BC - ABAP Workbench: Werkzeuge SAP AG
Elementliste im grafischen Modus

Die Gruppierungen sind farblich hervorgehoben. Durch Mausklick auf die farblich markierten
Attribut-Tasten wird die zugehörige Attributegruppe in Blickfeld gestellt.
Sie können die Anzeige einer Gruppierung aufreißen oder verbergen, indem Sie das Pluszeichen
+ oder das Minuszeichen - unterhalb der Attribute-Überschriften wählen.
Die zweite Spalte zeigt den hierarchischen Baum der Bildelemente. Für komplexe Elemente wie
TabStrips und Table Controls enthält diese Spalte Teilbäume. Durch Klick auf die + bzw. - -
Bilder können die Teilbäume aufgerissen oder verborgen werden.

314 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Der alphanumerische Fullscreen Editor

Der alphanumerische Fullscreen Editor


Für die Gestaltung des Bildschirmbildes mit Anzeige- und Bedienelementen steht Ihnen der
alphanumerische Layout Editor auf allen Plattformen zur Verfügung. Sie erreichen den Layout
Editor vom Einstiegsbild des Screen Painters oder vom Repository Browser aus.

Den Layout Editor aufrufen


So rufen Sie den alphanumerischen Layout Editor vom Einstiegsbild des Screen Painters auf:
1. Geben Sie den Programmnamen und eine Dynpronummer ein.
2. Wählen Sie Einstellungen à Graf. Screen Painter.
3. Falls das Ankreuzfeld Grafischer Screen Painter markiert ist, heben Sie die Markierung auf
und wählen Sie Weiter.
4. Markieren Sie Layout Editor aus der Liste der Teilobjekte im Einstiegsbild.
5. Wählen Sie Ändern.
Das System öffnet den alphanumerischen Layout Editor im Änderungsmodus.

Beispiel:

April 2001 315


BC - ABAP Workbench: Werkzeuge SAP AG
Der alphanumerische Fullscreen Editor

Unterschiede zum grafischen Modus


Grundsätzlich steht mit dem alphanumerischen Layout Editor der gleiche Funktionsumfang wie
beim grafischen Editor zur Verfügung. Unterschiede treten auf in der Präsentation grafischer
Elemente und in der Vorgehensweise des Anlegens und Bearbeitens dieser Elemente.

Präsentation grafischer Elemente


Das System verwendet alphanumerische Zeichen, um grafische Elemente darzustellen.
Grafische Elemente werden farblich hervorgehoben.
Um unbeabsichtigtes Überschreiben zu vermeiden, sind alle Elemente schreibgeschützt. Um ein
Element zu ändern, müssen Sie es auswählen oder markieren und dann die Funktionen
verwenden, die in Menüs, in den Attributebildern, in der Symbol- oder in der Drucktastenleiste
angeboten werden.
Siehe auch:

Bildelemente anlegen [Seite 317]

Bildelemente bearbeiten [Seite 332]

316 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Bildelemente anlegen

Bildelemente anlegen
Anders als im grafischen Layout Editor, wählen Sie die einzelnen Bildelemente nicht aus einer
Elementpalette aus, sondern über Menüs.
Eine Kurzbeschreibung sämtlicher Bildelemente erhalten Sie unter Bildelementtypen [Seite 280].
Um Bildelemente anzulegen, können 2 verschiedene Vorgehensweisen angewendet werden:
• Referenzieren von Dictionary- bzw. Programmfeldern und Umsetzen im Dynprolayout. Die
Vorgehensweise dazu finden Sie unter Dict./Programmfelder übernehmen [Seite 319].
• Neue Bildelemente über den Menüpfad Bearbeiten → Anlegen Element definieren, ohne
zuvor einen Bezug zu Dictionary- bzw. zu Programmfeldern herzustellen. Die
Vorgehensweise wird im folgenden beschrieben.

Vorgehensweise
Die Vorgehensweise weist Unterschiede auf, je nachdem welches Bildelement anzulegen ist.

Textfeld, Ein/Ausgabefeld, Auswahlknopf, Ankreuzfeld, Drucktaste anlegen


1. Positionieren Sie den Cursor an der Stelle, an der das Element eingefügt werden soll. Um
den Cursor zu bewegen, können Sie die Pfeiltasten verwenden.
2. Wählen Sie Bearbeiten → Anlegen Element und anschließend aus dem folgenden
Untermenü das gewünschte Element.
Das System zeigt das Dialogfenster Attribute eines Dynproelements an.
3. Geben Sie die entsprechenden Attributwerte ein.
Wenn Sie als Elementnamen einen Namen angeben, der im Dictionary als Name eines
Tabellenfeldes bekannt ist, fordert Sie das System auf, anzugeben, ob es das Feld als
Dictionary-Feld interpretieren soll oder nicht. Wenn Sie Ankreuzfelder und
Auswahlknöpfe erstellen, zeigt das System hierzu zwei Attributbilder an: ein Bild für das
Element selbst und ein Bild für den Bezeichner des Elements.
4. Wählen Sie Übernehmen.
Das System fügt das Element an der Cursorposition des Eingabefensters ein.

Gruppenrahmen anlegen
1. Positionieren Sie den Cursor an der Stelle, wo die linke obere Ecke des Elements erscheinen
soll.
2. Wählen Sie Bearbeiten → Anlegen Element → Rahmen.
Das System zeigt das Dialogfenster Attribute eines Dynproelements an.
3. Geben Sie die Attribute des Gruppenrahmens ein.
4. Wählen Sie Übernehmen.
Das System zeigt das Änderungsbild für den Gruppenrahmen an.
5. Mit einem Mausklick geben Sie das Rahmenende, also seine rechte untere Ecke, vor.
6. Markieren Sie das Rahmenende mit der Taste Ende Rahmen.
Der Rahmen wird im Eingabefenster entsprechend der angegeben Dimensionen angezeigt.

April 2001 317


BC - ABAP Workbench: Werkzeuge SAP AG
Bildelemente anlegen

Subscreen anlegen
1. Positionieren Sie den Cursor an der Stelle, wo die linke obere Ecke des Subscreens
erscheinen soll.
2. Wählen Sie Bearbeiten → Anlegen Element → Subscreen.
Das System zeigt im Änderungsbild die Grenzen an, in denen der Subscreen liegen
kann.
3. Mit einem Mausklick geben Sie das Subscreenende, also seine rechte untere Ecke, vor.
4. Markieren Sie es mit der Taste Bereichsende.
Das System zeigt das Dialogfenster Attribute eines Dynproelements an.
5. Geben Sie die Attribute des Subsreens ein.
6. Wählen Sie Übernehmen.
Der Subscreen wird im Eingabefenster entsprechend der angegeben Bereichsdimensionen
angezeigt.

Table Control anlegen


Siehe dazu Table Control anlegen [Seite 321].

TabStrip anlegen
Siehe dazu TabStrip anlegen [Seite 325].

Step Loop anlegen


Siehe dazu Arbeiten mit Steploops [Seite 330].

318 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Dict./Programmfelder übernehmen

Dict./Programmfelder übernehmen
Sie können ein Element zu Ihrem Dynprolayout hinzufügen, indem Sie bereits vorhandene
Dictionary- bzw. Programmfelder auswählen.

Vorgehensweise
So übernehmen Sie mehrere Dictionary-Felder und fügen Sie zum Dyprolayout hinzu.
1. Setzen Sie den Cursor an die Position, an der Felder (bzw. die linke obere Ecke des
Blocks) eingefügt werden sollen.
2. Wählen Sie Springen àDict./Programmfelder.
3. Geben Sie einen Tabellennamen ein.
Tabellennamen müssen vollständig angegeben werden.
4. Holen Sie die Felder der Tabelle.
Um im ABAP Dictionary nach einer Tabelle oder einem Feld zu suchen, wählen Sie
Holen aus Dict. Um im ABAP-Modulpool zu suchen, wählen Sie Holen aus Programm.
Das System zeigt die Felder an.
5. Markieren Sie ein oder mehrere Felder.

6. Wählen Sie Übernehmen.


Das System verzweigt zum Eingabebereich.
7. Wählen Sie Markieren.

Ergebnis
An der Einfügeposition erhalten Sie die alphanumerische Darstellung der ausgewählten Felder in
einem Block.

April 2001 319


BC - ABAP Workbench: Werkzeuge SAP AG
Dict./Programmfelder übernehmen

Sie können nun sowohl die einzelnen Elemente oder auch einen Block von Elementen
bearbeiten.

Siehe auch
Bildelemente bearbeiten [Seite 332].

320 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Table Controls anlegen und bearbeiten

Table Controls anlegen und bearbeiten


Weitere Informationen zur Definition, Verwendung und zum Funktionsumfang von Table Controls
finden Sie unter Table Controls [Seite 301].

Sie können alternativ der unter angegebenen Vorgehensweise den Wizard für Table
Controls verwenden, der Sie Schritt für Schritt bei der Erstellung eines
funktionsfähigen Table Controls unterstützt.
Weitere Informationen erhalten Sie unter Wizard für Table Controls einsetzen [Seite
305].

Table Control anlegen


1. Setzen Sie den Cursor an die Stelle, an der die linke obere Ecke der Tabelle erscheinen soll.
2. Wählen Sie Bearbeiten → Anlegen Element → Table Control.
Das System zeigt das Änderungsbild für das Table Control in seiner maximalen
Dimensionierung an.
3. Mit einem Mausklick geben Sie das Tabellenende, also die rechte untere Ecke der Tabelle
vor.
4. Wählen Sie Ctrl Ende mark., um das Tabellenende zu markieren.
Das System zeigt das Attribute-Fenster für das Table Control an.
5. Geben Sie diese Attribute [Seite 350] ein.
6. Sie Übernehmen.
Die Darstellung des Table Controls erscheint entsprechend der vorgegebenen
Dimensionierung im Eingabefenster.

April 2001 321


BC - ABAP Workbench: Werkzeuge SAP AG
Table Controls anlegen und bearbeiten

Elemente und Überschriften hinzufügen


In der folgenden Vorgehensweise gehen wir davon aus, daß neue Bildelemente ohne Referenz
auf Dictionary- Programmfelder [Seite 319] angelegt werden. Bei dieser Referenz ist unter Pkt. 5
entsprechend die Funktion Dict/ProgFelder zu wählen.
1. Positionieren Sie den Cursor im Bereich des Table Controls.
2. Wählen Sie Markieren oder Bearbeiten → Table Control.
Im Änderunsbild für das Table Control werden Ihnen spezielle Funktionen zum Bearbeiten
von Tabellen angeboten.
3. Wählen Sie Ctrl Elemente.
Das System zeigt ein Eingabefester zur Definition der Tabellenspalten und deren
Überschriften.
4. Positionieren Sie den Cursor im Eingabefeld der zugehörigen Tabellenspalte.
5. Wählen Sie Anlegen Element.
Im angezeigten PopUp können Sie die Elementtypen zur Tabellenspalte festlegen. Es
kommen Textfeld, Ein/Ausgabefeld, Auswahlknopf, Ankreuzfeld und Drucktaste in Frage.
6. Markieren Sie einen Elementtyp z.B. Ein/Ausgabefeld.
Sie gelangen zum Fenster Attribute eines Dynproelementes.
7. Geben Sie die Attribute ein und wählen Sie Übernehmen.
Beim Elementtyp Ein/Ausgabefeld ist neben der Angabe des Feldnamens das Attribut def
Länge zu definieren.
8. Geben Sie die Überschrift zur Tabellenspalte an und drücken Sie ENTER.
9. Geben Sie im angezeigten PopUp den Elementtyp an und wählen Sie Weiter.
10. Geben Sie Attribute zum Elementtyp an und wählen Sie Übernehmen.
11. Wiederholen Sie die Schritte 4-10 für jede weitere Tabellenspalte.
12. Wählen Sie Übernehmen.
Die Darstellung des Table Controls mit definierten Elementen und Spaltenüberschriften erscheint
im Änderungsmodus des Eingabefensters.

322 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Table Controls anlegen und bearbeiten

Tabellentitel hinzufügen
1. Öffnen Sie das Attribute-Fenster des Table Controls.
2. Markieren Sie dort mit Titel.
3. Geben Sie den Elementnamen für den Titel ein und wählen Sie Übernehmen.
4. Geben Sie im angezeigten PopUp den Elementtyp an und wählen Sie Weiter.
5. Geben Sie Attribute zum Elementtyp an und wählen Sie Übernehmen.

Funktionen zur Bearbeitung von Table Controls

Funktion Bedeutung
Ctrl Attribute Attribute des Table Control ändern.
Ctrl Elemente Tabellenspalten manipulieren. Sie können damit Spalten
hinzufügen, bearbeiten und verschieben.
Ctrl Ende markieren. Den Endpunkt des Table Control ändern.
Ctrl entmarkieren Markierung aufheben
Ctrl umwandeln Umwandeln in fixen oder variablen Step Loop [Seite 330].
Ctrl verschieben Table Control an eine neue Position verschieben.

April 2001 323


BC - ABAP Workbench: Werkzeuge SAP AG
Table Controls anlegen und bearbeiten

Ctrl auflösen Table Control in Einzelelemente auflösen. Dem System steht dann
aber nur der ursprüngliche Tabellenbereich für die einzelnen
Elemente zu Verfügung. Sollte das Auflösen eines Table Control ein
unbefriedigendes Ergebnis liefern, fragt Sie das System vorher, ob
Sie mit dem Auflösen fortfahren wollen.
Ctrl löschen Table Control wird gelöscht.

324 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Tabstrips anlegen

Tabstrips anlegen
Weitere Informationen zur Definition, Verwendung und Funktionsumfang von Tabstrips finden Sie
unter Tabstrips [Seite 292].

Sie können alternativ der unter angegebenen Vorgehensweise den Wizard für
Tabstrips verwenden, der Sie Schritt für Schritt bei der Erstellung eines
funktionsfähigen Tabstrips unterstützt.
Weitere Informationen erhalten Sie unter Wizard für Tabstrips einsetzen [Seite 299].

Vorgehensweise
Sie legen Tabstrips im alphanumerischen Modus in 2 Schritten an:
• Anlegen eines Tabstrip-Bereichs.
• Definieren von Tabstrip-Elementen (Drucktasten und Subscreen-Bereiche).

Tabstrip-Bereich anlegen
1. Setzen Sie den Cursor an die Stelle, an der die linke obere Ecke des Tabstrips erscheinen
soll.
2. Wählen Sie Bearbeiten → Anlegen Element → Tabstrip Control.
Das System zeigt das Änderungsbild für das Tabstrip in seiner maximalen
Dimensionierung ab der in 1 gewählten Cursorposition an.
3. Mit einem Mausklick geben Sie das Control-Ende, also die rechte untere Ecke des Tabstrips
vor.
4. Wählen Sie Ctrl Ende mark., um das Control-Ende zu markieren.
Das System zeigt das Attribute-Fenster für das Tabstrip Control an.
5. Geben Sie Tabstrip-Attribute [Seite 349] ein.
6. Wählen Sie Übernehmen.
Die Darstellung des Tabstrips erscheint entsprechend der vorgegebenen
Dimensionierung im Eingabefenster. Das angelegte Tabstrip ist standardmäßig mit 2

April 2001 325


BC - ABAP Workbench: Werkzeuge SAP AG
Tabstrips anlegen

Reitern vorbelegt.

Tabstrip-Elemente definieren
Tab-Reiter werden mit Drucktasten realisiert. Jeder Tabstrip-Seite ist der entsprechende
Subscreen-Bereich zuzuweisen.
1. Markieren das Tabstrip Control.
Das Eingabefenster wechselt in den Änderungsmodus.
2. Wählen Sie Bearbeitenà Ctrl Elemente.
Sie erhalten ein Eingabefenster für die Definition der Tabstrip-Elemente.
3. Geben Sie unter Reiter den Elementnamen für die neu anzulegende Drucktaste, die als Tab-
Reiter fungieren soll.
4. Wählen Sie Attrribute oder drücken Sie auf ENTER.
5. Geben Sie die Attribute an und bestätigen Sie mit Übernehmen.
6. Geben Sie eventuell den zur Drucktaste gehörenden Funktionscode und Funktionstyp an.
7. Wiederholen Sie die Schritte 3-6 für jede weitere Drucktaste.
8. Geben Sie unter Subscreens die Feldnamen für die jeweilgen Subscreen-Bereiche an und
bestätigen Sie deren Attribute.
9. Weisen Sie den jeweiligen Drucktasten unter Referenz-Subscreen die entsprechenden
Subscreen-Bereiche zu.
10. Wählen Sie Übernehmen.

Ergebnis
Sie haben ein Tabstrip angelegt und ihm zusätzliche Tab-Reiter und Subcscreen-Bereiche
zugeordnet. Um sich einen Eindruck vom Layout zu verschaffen, können Sie das Dynpro in einer
Laufzeitsimulation testen.

Siehe dazu Dynpros testen [Seite 354].

326 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Tabstrips anlegen

April 2001 327


BC - ABAP Workbench: Werkzeuge SAP AG
SAP Custom Container anlegen

SAP Custom Container anlegen


Der SAP Custom Container ist ein Control, in das Sie weitere Controls einbinden können. Es
ermöglicht dem Dynpro Framework, Controls beim Resize und der Komprimierung zu
unterstützen.

Weitere Informationen zur Control Framework erhalten Sie unter SAP Control
Framework [Extern].

Voraussetzungen
Sie haben den Layout Editor des alphanumerischen Screen Painters geöffnet. Der
Änderungsmodus wurde eingeschaltet.

Vorgehensweise
So legen Sie den Custom Container an:
7. Setzen Sie den Cursor an die Stelle, an der die linke obere Ecke des Containers erscheinen
soll.
8. Wählen Sie Bearbeiten → Anlegen Element → Custom Control.
Das System zeigt das Änderungsbild für den Container in seiner maximalen
Dimensionierung an.
9. Mit einem Mausklick geben Sie den Endpunkt, also die rechte untere Ecke des Containers
vor.
10. Wählen Sie Ctrl Ende mark., um die Ecke zu markieren.
Das System zeigt das Attribute-Fenster für das Custom Control an.
11. Geben Sie die Custom Control-Attribute [Seite 351] ein.
12. Wählen Sie Übernehmen.
Die Darstellung des Containers erscheint entsprechend der vorgegebenen Dimensionierung
im Eingabefenster.

328 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
SAP Custom Container anlegen

Funktionen zur Bearbeitung des Containers

Funktion Bedeutung
Ctrl Attribute Attribute des Custom Controls ändern.
Ctrl Ende markieren. Den Endpunkt des Containers (rechte untere Ecke) ändern.
Ctrl entmarkieren Markierung aufheben
Ctrl löschen Container löschen.
Ctrl verschieben Container an eine neue Position verschieben.

Siehe auch:
Anlegen eines Controls am Beispiel des SAP Picture [Extern].

April 2001 329


BC - ABAP Workbench: Werkzeuge SAP AG
Step Loops anlegen und bearbeiten

Step Loops anlegen und bearbeiten


Das Arbeiten mit Step Loops unterscheidet sich in den beiden Modi des Layout Editors.

Step Loops anlegen


1. Legen Sie die gewünschten Elemente für den Loop an.
Die Elemente können in eine Zeile passen oder sich über mehrere Zeilen erstrecken. Sie
können die einzelnen Elemente durch Leerzeilen voneinander trennen.
2. Stellen Sie den Cursor auf das Element, das an der oberen linken Ecke des Loops
erscheinen soll.
3. Wählen Sie Loop.
Das System zeigt das Bild Screen Painter: Ändern Loop-Definition an. Sie können
verschiedene Loop-Blöcke auf einem Bild anlegen, diese jedoch nicht verschachteln.
4. Stellen Sie den Cursor auf die untere rechte Ecke des letzten Loop-Elements.
5. Wählen Sie Ende Loopblock.
Das System generiert automatisch einen fixen Loop-Block mit zwei Wiederholungen. Sie
können nun mit Zurück das Bild Screen Painter: Ändern Loop-Definition verlassen oder
mit den Bearbeitungsfunktionen den Step Loop weiter bearbeiten.
6. Sichern Sie Ihre Änderungen.

Bearbeitungsfunktionen
Um einen Step Loop zu bearbeiten, müssen Sie sich auf dem Bild Screen Painter: Ändern Loop-
Definition befinden. Um einen vorhandenen Loop-Block zu bearbeiten, stellen Sie den Cursor auf
den Block und wählen Loop. Mit den folgenden Funktionen können Sie einen Steploop
bearbeiten:
Funktion Bedeutung
Loop Endzeile Legt die Länge des Loop-Bereiches fest. Das System wiederholt den
Block automatisch innerhalb des angegebenen Bereichs.
Variabler Loop Legt einen variablen Loop fest. Das System gleicht die Zahl der
Wiederholungen im Bildprogramm automatisch an die Größe des
aktuellen Fensters an. Enthält das Bild mehrere Loop-Blöcke, können
Sie nur einen von ihnen als variabel angeben.
Die zulässige Zeilenzahl ist maximal 200. Um auf die variable Loop-
Größe reagieren zu können, stellt das System die aktuelle Zahl der
Loop-Blöcke immer im Systemfeld SY-LOOPC dar.
Bei fixen Loops entspricht die Untergrenze des Loop-Bereiches dem
ursprünglich angegebenen Wert.
Loop auflösen Löst den Steploop in Einzelelemente auf.
Loop verschieben Verschiebt den Loop an eine neue Position.

330 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Step Loops anlegen und bearbeiten

Sie können Änderungen nur im Definitionsblock vornehmen. Diese Änderungen greifen


automatisch im Wiederholungsblock. Im eigentlichen Definitionsblock können Sie die Attribute
eines Elements wie üblich ändern. Sie können neue Elemente definieren oder bestehende
löschen. Sie können jedoch keine Zeilen innerhalb eines Loop-Blocks einfügen oder löschen.
Wenn Sie entweder Bearbeiten → Markieren oder Bearbeiten → Zwischenspeicher →
Kopieren in Zw. wählen, können Sie wie bei Feldern arbeiten, die nicht in einem Loop stehen. Sie
können jedoch nur Elemente im Definitionsblock eines Loops markieren. Der markierte Block
kann die Loop-Grenzen nicht überschreiten.
Sie können Elemente, die außerhalb von Loop-Blöcken liegen, in einen Loop-Block kopieren und
umgekehrt. In beiden Fällen gleicht das System die Elementattribute entsprechend an. Wenn Sie
in einen Loop-Block kopieren, werden die Elemente automatisch den entsprechenden
Wiederholelementen hinzugefügt. Kopieren Sie aus einem Loop-Block, werden die gleichen
Wiederholelemente gelöscht.

April 2001 331


BC - ABAP Workbench: Werkzeuge SAP AG
Bildelemente bearbeiten

Bildelemente bearbeiten
Um ein grafisches Element im alphanumerischen Modus zu bearbeiten, müssen Sie zuerst das
Änderungsbild für das Element anzeigen. Stellen Sie dazu den Cursor auf ein Element und
wählen Bearbeiten → Grafisches Element. Vom Änderungsbild aus können Sie
• mehrere logisch zusammenhängende Auswahlknöpfe in einer Auswahlknopfgruppe
zusammenfassen.
• eine Auswahlknopfgruppe in einzelne Auswahlknöpfe auflösen.
• Auswahlknöpfe in Ankreuzfelder umwandeln und umgekehrt.
• Elemente umwandeln.
Siehe dazu Elemente umwandeln [Seite 334].
• ein Element oder eine Auswahlknopfgruppe verschieben.
• die Größe von Subscreens oder Gruppenrahmen ändern.
Mit Zurück verlassen Sie den Bearbeitungsmodus für das grafische Element und kehren zur
normalen alphanumerischen Anzeige zurück.

Markieren
Sie markieren ein Element, indem Sie es mit einem Doppelklick auswählen (oder stellen Sie den
Cursor auf das gewünschte Element und wählen Markieren). Das System verzweigt
anschließend auf das Bild Ändern Markierung. Mit Zurück kehren Sie zum normalen Anzeige des
Layout Editors zurück.
Wenn Sie in einem Block zusammengefaßte Elemente markieren, wird der gesamte Block
markiert. So markieren Sie einen Block verschiedener Elemente:
1. Markieren Sie das erste Element des Blocks.
Das System zeigt das Bild Ändern Markierung an.
2. Stellen Sie den Cursor auf das letzte Element des Blocks.
3. Wählen Sie Blockende markieren.
Das System markiert den gesamten Block.

Verschieben
So verschieben Sie ein Element oder einen Block:
1. Markieren Sie das Element.
Das System zeigt das Bild Ändern Markierung an.
2. Stellen Sie den Cursor auf dem Bild an die Stelle, an die Sie das Element verschieben
möchten.
Wenn Sie einen Block verschieben, kann die neue Position innerhalb des alten Blocks
liegen. Das System verschiebt den gesamten Block an die neue Position.
3. Wählen Sie Verschieben.

332 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Bildelemente bearbeiten

Kopieren und Einfügen


Sie können ein markiertes Element in die Zwischenablage kopieren und die Kopie zu einem
späteren Zeitpunkt auf einem Bild einfügen. Um ein Element zu kopieren, markieren Sie das
Element und wählen Kopieren in Zw. Um den Inhalt der Zwischenablage einzufügen, stellen Sie
den Cursor an die gewünschte Stelle und wählen Bearbeiten → Zwischenspeicher →
Einsetzen aus Zw.
So schneiden Sie einen markierten Bereich auf einem Bild aus und fügen ihn an anderer Stelle
ein:
1. Markieren Sie das Element.
2. Kopieren Sie das Element in die Zwischenablage.
3. Löschen Sie das Original.
4. Stellen Sie den Cursor an die neue Stelle.
Um den Inhalt der Zwischenablage auf einem anderen Bild einzufügen, müssen Sie sie
zuerst in die Bearbeitung dieses Bildes wechseln. Wählen Sie dazu Dynpro → Anderes
Dynpro.
5. Fügen Sie die Kopie aus der Zwischenablage ein.
Der Vorteil dieser Methode liegt darin, daß Sie keine Elementattribute angeben müssen. Die
Zwischenablage behält die ursprünglichen Attribute. Die Zwischenablage wird allerdings nur für
die aktuelle Screen-Painter-Sitzung gepflegt. Um sich den Inhalt der Zwischenablage anzusehen,
wählen Sie Bearbeiten → Zwischenspeicher → Anzeigen Zwischenspeicher.

Loop-Informationen werden nicht gehalten. Wenn Sie die Loop-Blöcke nach dem
Einfügen benötigen, müssen Sie sie neu erstellen.

April 2001 333


BC - ABAP Workbench: Werkzeuge SAP AG
Elemente umwandeln

Elemente umwandeln
Ähnlich wie im grafischen Modus können Sie auch im alphanumerischen Modus Elemente
umwandeln, wobei sich die Vorgehensweisen jedoch leicht unterscheiden.
So wandeln Sie im alphanumerischen Modus Elemente um:
1. Stellen Sie den Cursor auf das gewünschte Element.
2. Wählen Sie Graf. Element.
Das System zeigt das Änderungsbild für das Element an.
3. Wählen Sie Bearbeiten → Wandeln in und den neuen Elementtyp.

Fassen Sie logisch zusammenhängende Auswahlknöpfe zu einer


Auswahlknopfgruppe zusammen.

Elemente in Drucktasten umwandeln


Bevor Sie Elemente in Drucktasten umwandeln, stellen Sie sicher, daß Sie nur Schlüsselwörter
oder Ausgabefelder verwenden. Sie können niemals Eingabefelder in Drucktasten umwandeln.
Nach der Umwandlung können Sie dem Element in einer der Sichten der Feldliste oder dem
Dialogfenster Attribute einen Funktionscode zuweisen.

Table Controls in Step Loops umwandeln


Möchten Sie ein Table Control in einen variablen oder fixen Step Loop umwandeln, versucht das
System, die vorgegebene Struktur von Spalten und Zeilen beizuhalten. Sollte das nicht möglich
sein, legt das System einen mehrzeiligen Step Loop an. Das System legt immer so viele
Wiederholungszeilen wie möglich an, mindestens jedoch zwei.

334 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Arbeiten mit der Elementliste

Arbeiten mit der Elementliste


Mit der Elementliste können Attribute sämtlicher Elemente eines Bildschirmbildes angezeigt und
z.T. geändert werden.
Um die Elementliste im alphanumerischen Modus anzuzeigen, wählen Sie entweder den
Menüpfad Springen → Elementliste bzw. Drucktaste Elementliste.

Beispiel:

Komponenten der Elementliste


Sicht Beschreibung
Allg. Attrib. Enthält diejenigen Attribute, die den Dialog des Benutzers mit dem
Feld festlegen. Dazu zählt z.B. die Positionierung der Elemente auf
dem Bild.
Texte u.E/A-Schabl. Enthält die Attribute zu Text und Ikonen, die zu einem Element
gehören.
Spez. Attrib. Enthält spezifische Attribute, die ein Element beschreiben. Dazu
zählen die Attribute, die das sichtbare Element beschreiben ebenso
wie die Attribute des zugrundeliegenden Feldes.
Anzeigeattrib. Enthält Anzeigeattribute, z.B. ob ein Feld sichtbar ist oder ob es
rechtsbündig ausgegeben wird.
ModifGruppen. Enthält die Attribute zu Modifikationsgruppen.
Referenzen Enthält die Attribute zu Suchhilfe und Referenzen.

Die erste Spalte in jeder Elementlistensicht zeigt die Hierarchie des Elements. Bei komplexen
Elementen (Step Loop, Table Control, Subscreen, TabStrip) enthält diese Spalte ein Plus (+). Bei

April 2001 335


BC - ABAP Workbench: Werkzeuge SAP AG
Arbeiten mit der Elementliste

Elementen, die in den unmittelbar vorangehenden komplexen Elementen enthalten sind, enthält
diese Spalte ein Minus (-).

336 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Arbeiten mit Elementattributen

Arbeiten mit Elementattributen


Nachdem Sie Bildelemente für Ihr Bildschirmbild angelegt haben, müssen Sie für jedes Element
Attribute angeben. Attribute können entweder im Attribute-Fenster oder in der Elementliste [Seite
313] gesetzt werden.

Dialogfenster Attribute
Um das Dialogfenster Attribute aus dem Fullscreen Editor anzuzeigen, wählen Sie die Funktion
Attribute oder machen Sie einen Doppelklick auf ein Element. Das Dialogfenster Attribute listet
die Attribute für ein bestimmtes Element auf.
Zu diesen Attributen gehören:
• Allgemeine Attribute [Seite 338]
• Dictionary- Attribute [Seite 342]
• Programmattribute [Seite 344]
• Anzeigeattribute [Seite 347]
Weitere Attribute sind bei Verwendung von Table Controls, TabStrips und weiteren Controls zu
berücksichtigen:
• Table Control-Attribute [Seite 350]
• TabStrip-Attribute [Seite 349]
• Custom Control-Attribute [Seite 351]

Alle Änderungen, die Sie mit Auswahlknöpfen in den Elementattributen vornehmen,


werden sofort aktiv. Textänderungen werden auch aktiv, wenn der Texteditor den
Focus verliert, z.B. bei Mausklick.

April 2001 337


BC - ABAP Workbench: Werkzeuge SAP AG
Allgemeine Attribute

Allgemeine Attribute
Zu weiteren Attributen, siehe auch Arbeiten mit Elementattributen [Seite 337].
Die folgenden allgemeinen Attribute stehen zur Verfügung:
Attribut Beschreibung und ergonomische Richtlinien
Elementtyp Typ des Bildelementes (z.B. Textfeld oder Gruppenrahmen)
Name Name eines Elements. Mit diesem Namen wird das Element aus dem
Modulpool angesprochen. Alle Eingabe-/Ausgabefelder benötigen
immer einen Namen. Textfelder benötigen nur dann Elementnamen,
wenn sie in eine andere Sprache übersetzt werden sollen.
Ein Ein-/Ausgabefeld und das zugehörige Textfeld können denselben
Elementnamen haben. Ansonsten müssen Elementnamen eindeutig
sein. Diese dürfen nicht mehr als 40 Zeichen haben und müssen mit
einem Buchstaben oder * (Stern) beginnen. Erlaubte Sonderzeichen
sind # (Pfundzeichen), / (Schrägstrich), - (Gedankenstrich), _
(Unterstrich) und $ (Dollarzeichen).
Wenn Sie einen neuen Elementnamen angeben oder einen
bestehenden so ändern, daß er einen Gedankenstrich (-) enthält,
prüft das System, ob das ABAP Dictionary Informationen zu diesem
Element enthält. Das System kopiert nach Bestätigung alle
Informationen in die Elementattribute.
Zusatz:
Mit dem Release 46C kann sich der Elementname beim
Ein/Ausgabefeld auch auf den ABAP-Datentyp STRING beziehen.
Beachten Sie jedoch, daß die maximale Länge eines
Ein/Ausgabefeldes durch die maximale Dynpro-Breite (132 Zeichen)
begrenzt ist. Damit können derzeit nur einzeilige Ein/Ausgabefelder
im Screen Painter definiert werden. Die über diese maximale Länge
definierten Zeichen eines Strings werden abgeschnitten.
Das definierende Element im ABAP-Programm oder im Dictionary
(bei Dictionary-Bezug) kann dabei beliebig lang sein.
In diesem Zusammenhang werden zwei neue Feldformate des ABAP
Dictionary (STRG und RSTR) eingeführt. Siehe auch: Feldformate
[Seite 352].
Text Text zu einem Element. Wenn Sie anstelle des Textes eine Ikone
verwenden wollen, lassen Sie das Feld leer.

338 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Allgemeine Attribute

Dropdown Dieses Attribut kann nur einem Ein-/Ausgabefeld zugeordnet werden.


Mit dem Eintrag Listbox kann eine Liste von Einträgen angezeigt
werden. Die einzelnen Einträge der Dropdown-Liste können
ausgewählt werden.
Die Breite dieser Liste wird mit dem Attribut visLänge (sichtbare
Länge) bestimmt. Die Höhe der Dropdown-Liste wird mit einer
Standardgröße vom System vorgegeben. Bei zu vielen Einträgen
werden automatisch vertikale Scrollbars angezeigt.
Eine Zuordnung des Eingabefeldes zu einer Werteliste erfolgt über
die ValueID. Diese ist durch den angegebenen Namen des Ein-
/Ausgabefeldes (Attribut Name) vorbelegt.
Wie jedoch die Werteliste, die in der Dropdown-Liste anzuzeigen ist,
erzeugt wird, hängt vom Eintrag im Attribut Eingabehilfe. Siehe dazu
Eingabehilfe unter Programmattribute [Seite 344].
Mit der Auswahl eines Wertes aus der Dropdown-Liste kann ein
Event ausgelöst werden. Hierzu ist es erforderlich, einen
Funktionscode mit dem Attribut FktCode anzugeben.
Mit Icon Dieses Attribut können Sie nur für Ausgabefelder (jedoch nicht für
Eingabefelder) setzen. Sie teilen mit dem gesetzten Flag dem System
mit, daß das betreffende Feld zur Laufzeit mit einer Ikone belegt
werden soll.
Eine Liste der vorhandenen Ikonen mit Länge und Quick-Info-Texten
finden Sie in der Tabelle ICON (auch mit Transaktion ICON).
Icon-Name Identifiziert eine Ikone für ein Testfeld. Wenn Sie eine Ikone angeben,
die einem Element nicht zugeordnet werden könnnen, wird eine
Fehlermeldung ausgegeben. Wenn Sie nur die Ikone ohne Text
anzeigen wollen, lassen Sie das Feld Text leer. Bei Schablonen
setzen Sie das Attribut Icon-Name zur Laufzeit.
Ergonomie: Ikonen brauchen keinen erklärenden Text, wenn die
Bedeutung der Ikone für das konkrete Element genau zutrifft. Die
Bedeutung der Ikone kann weiterhin über den Quick-Info-Text
angezeigt werden.
Quick-Info Infotext zu einer Ikone. Dieser Text wird sichtbar, wenn der Benutzer
den Cursor auf eine Ikone positioniert. Die Tabelle ICON definiert den
Quick-Info-Standardtext für jede Ikone. Um diesen Text zu ändern
oder leer zu lassen, verwenden Sie das Feld Quick-Info.
Ergonomie: Jede Ikone braucht eine Quick-Info, da eine Ikone
niemals selbsterklärend ist.
Rollbar Setzt die Blätterfunktion. Verwenden Sie dieses Attribut, wenn die
definierte Länge die sichtbare Länge überschreitet. Wenn das Flag
Rollbar gesetzt ist, aktiviert das System die Blätterfunktion für dieses
Element.
Wenn Sie Dictionary- oder Programmfelder verwenden, die zu lang
für Ihr Bild sind, vergessen Sie nicht, Rollbar zu setzen und die
sichtbare Länge des Elementes nach Bedarf zu reduzieren.

April 2001 339


BC - ABAP Workbench: Werkzeuge SAP AG
Allgemeine Attribute

Zeile Zeile, in der das Bildelement erscheint. Das System setzt dieses
Attribut automatisch.
Spalte Spalte, in der das Element beginnt. Das System setzt dieses Attribut
automatisch.
Höhe Höhe eines Elementes in Zeilen. Texte und Eingabeelemente haben
immer die Höhe 1.
defLänge Definierte Länge, d.h. die tatsächliche Länge des Feldes im
Dictionary (Ausgabelänge) oder in Ihrem Programm.
visLänge Sichtbare Länge, d.h. die zur Laufzeit des Dynpros angezeigte Länge
eines Elementes. Setzen Sie dieses Attribut, wenn die angezeigte
Länge sich von der definierten Länge unterscheiden soll.
Wenn die sichtbare Länge die definierte Länge unterschreiten soll,
müssen Sie das Attribut Rollbar setzen. Sie können die sichtbare
Länge nur für Ein-/Ausgabefelder oder für Elemente in
Tabellenspalten ändern. Im letzteren Fall kann visuelle Länge die
definierte Länge überschreiten. Für alle anderen Elemente (mit
Ausnahme von Elementen, die Ikonen enthalten und für Ein-
/Ausgabefelder, die Attribut Dropdown haben) sind sichtbare und
definierte Länge identisch und können nicht geändert werden.
Bei Ein-/Ausgabefeldern mit dem Attribut Dropdown und dem Eintrag
Listbox ist es die Länge des Elements einschließlich des Dropdown-
Buttons. Die visuelle Länge ist dann mit der Breite der Dropdown-
Liste identisch.
Gruppen Modifikationsgruppen. Mit diesem Attribut können Sie mehrere
Elemente auf einmal aktualisieren. Sie können jedes Element zu bis
vier Modifikationsgruppen zuordnen (die Namen müssen aus drei
Zeichen bestehen). Um ein Element einer Modifikationsgruppe
zuzuordnen, geben Sie den dreistelligen Gruppennamen in der
entsprechenden Spalte ein.
FktCode Funktionscode. Dieses Attribut gilt nur für Drucktasten und für Ein-
/Ausgabefelder mit dem Attribut Dropdown und dem Eintrag Listbox.
Ist bei dieser Variante von Ein-/Ausgabefeldern ein Funktionscode
zugeordnet, so wird dieser wie eine OK-Code-Eingabe in dem
Augenblick zur Verfügung gestellt, in dem auf der Liste eine Auswahl
vorgenommen wird. Der angegebene Funktionscode wird als Event
an den Server gesendet.
Bei einer Drucktaste, die ein Benutzer betätigt, setzt das System das
Befehlsfeld auf den 20-stelligen Code, den Sie hier angeben.
Dieser Wert wird nicht gegen die Werte geprüft, die Sie im Menu
Painter angeben.
FktTyp Ereignis, bei dem das Element verarbeitet wird (z.B. AT EXIT-
COMMAND).

340 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Allgemeine Attribute

Context Menu Form Namensergänzung für die Callback-Routine ON_CTMENU_<NAME>.


Die frei wählbare Namensergänzung <NAME> wird als Attribut
entweder zum gesamten Dynpro oder zu einem Dynproelement
(Eigabefeld, Textfeld, Rahmen oder Table Control) vergeben.
Die Callback-Routine ON_CTMENU_<NAME> wird für den Aufbau
des Kontextmenüs im ABAP-Programm benötigt. Insbesondere wird
über diese Routine ein Anschluß des Dynpro(elements) aus dem
Screen Painter an das Kontextmenü des Programms hergestellt.

April 2001 341


BC - ABAP Workbench: Werkzeuge SAP AG
Dictionary-Attribute

Dictionary-Attribute
Zu weiteren Attributen der Dynproelemente, siehe auch Allgemeine Attribute [Seite 338].
Die folgenden Dictionary-Attribute stehen zur Verfügung:
Attribut Beschreibung & ergonomische Richtlinien

Format Feldformat: im ABAP Dictionary definierter Datentyp. Dieser Datentyp


bestimmt, welche Eingabewertprüfungen (gültiges Datum, numerische
Werte) das System durchführen soll und wie das Feld bei der Ein-
/Ausgabe umzusetzen ist. Bei Schlüsselwörtern ist das Feld immer
leer. Eine Liste der verfügbaren Datentypen finden Sie unter
Feldformate [Seite 352].
Aus Dict Aktuelle ABAP-Dictionary-Referenz. Dieses Attribut wird vom System
gesetzt, wenn Sie es aus dem Dictionary übernommen haben.
Wenn Sie einem neuen Element einen Namen zuweisen oder den
Namen eines vorhandenen Elementes so ändern, daß der Name
einen Gedankenstrich (-) enthält, prüft das System, ob ein
entsprechendes Feld im Dictionary existiert. Wenn ja, werden Sie vom
System gefragt, ob Sie auf das Dictionary-Feld verweisen wollen.
Modifiz. Das System setzt dieses Attribut, wenn es einen Unterschied
zwischen der Dictionary-Definition des Feldes und seiner Verwendung
im Dynpro feststellt. Setzen Sie dieses Attribut, wenn Sie ein
Schlüsselwort verwenden möchten, das von der Dictionary-Definition
abweicht.
KonvertExit Soll eine von den Standard-Feldkonvertierungen abweichende
Konvertierungsroutine zur Umsetzung der Feldeingaben benutzt
werden, geben Sie hier einen vierstelligen Code an. Zwei
Konvertierungsroutinen werden unterstützt:
CONVERSION_EXIT_<name>_INPUT
CONVERSION_EXIT_<name>_OUTPUT
Informationen dazu finden Sie in der Dokumentation zum Programm
SAPCNVE.
Suchhilfe Ermöglicht es dem Benutzer, eine Suchhilfe als Eingabe in einem
Element einzugeben. Geben Sie einen vierstelligen Suchhilfe-
Dateinamen oder den Namen des Feldes an, das den Dateinamen
enthält. Im letzteren Fall stellen Sie Ihrer Eingabe einen Doppelpunkt
voran. Informationen zu Suchhilfe finden Sie in ABAP Dictionary
[Extern].

342 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Dictionary-Attribute

Referenzfeld Für TabStrips: Stellt die Verknüpfung der Reiter des TabStrips mit
dem Subscreen-Bereich her. In diesem Feld wird der Name des
zugeordneten Subscreens angegeben.
Für Währungen und Mengen: Gibt einen Währungsschlüssel oder
eine Mengeneinheit an. Dieses Attribut gilt nur für Felder des Typs
CURR (Währung) oder QUAN (Menge). Wenn das Bildelement eine
Währung enthält und der Feldtyp CURR ist, müssen Sie den
Währungsschlüssel angeben, der zu dieser Währung gehört (CUKY).
Wenn das Bildelement eine Menge enthält und der Feldtyp QUAN ist,
müssen Sie hier den Schlüssel der Mengeneinheit angeben, die zu der
Menge gehört (UNIT). Wenn das Bildelement aus dem Dictionary
kommt, übernimmt das System das Referenzfeld, ohne Änderungen
zuzulassen.
Parameter-ID Bis zu 20-stellige ID für einen SET/GET-Parameter. Dieses Attribut
wird nur zusammen mit dem Attribut SET Parameter oder GET
Parameter verwendet.
SET Parameter Setzt den Vorgabewert für den Anzeigewert in einem Element. Wenn
Sie Set Parameter wählen, speichert das System den vom Benutzer
GET Parameter
eingegebenen Wert unter der entsprechenden Parameter-ID. Wenn
Sie Get Parameter wählen, zeigt das System anstelle des Initialwertes
den Wert aus der Parameter-ID im Element an.
Fremdschlüssel- Legt fest, ob das System eine Fremdschlüsselprüfung für das
prüfung betreffende Feld durchführt. Die Fremdschlüsselprüfung wird durch die
Definition des Feldes im ABAP Dictionary bestimmt.
Groß und Klein- Setzen Sie dieses Attribut, wenn Ihr Programm die Eingabe des
Schreibung Benutzers als Literal behandelt. Falls nicht, wird die Eingabe in
Großbuchstaben umgesetzt.
Ergonomie: Nach Möglichkeit sollte dieses Attribut gesetzt werden. Die
Eingaben sind dann besser lesbar als in Großbuchstaben.

April 2001 343


BC - ABAP Workbench: Werkzeuge SAP AG
Programmattribute

Programmattribute
Zu weiteren Attributen der Dynproelemente, siehe auch Allgemeine Attribute [Seite 338].
Die folgenden Programmattribute stehen zur Verfügung:
Attribut Beschreibung & ergonomische Richtlinien
Eingabefeld Definiert ein Element als Eingabefeld. Ausgabedaten in diesem
Element werden im Verlauf einer Transaktion verarbeitet, aber nicht
angezeigt, falls das Attribut Ausgabefeld nicht explizit gesetzt ist. Sie
können auch beide Attribute setzen; beim Anlegen eines neuen
Bildelements Ein/Ausgabe ist das die Standardeinstellung.
Ausgabefeld Definiert ein Element als Ausgabefeld. Wählen Sie dieses Attribut für
Felder, in denen das Programm Ausgabedaten anzeigen kann. In
diesen Feldern ist keine Eingabe erlaubt, falls das Attribut Eingabefeld
nicht explizit gesetzt wurde.
Nur Ausgabefeld Verhindert, daß Anzeigeelemente zur Laufzeit in Eingabeelemente
umgesetzt werden. Dieses Attribut ist sinnvoll, wenn ein Programm
versucht, alle Eingabeelemente global auf “eingabebereit” zu setzen. In
diesem Fall werden die Eingabefelder und die Ein-/Ausgabefelder auf
Eingabebereitschaft gesetzt; die Elemente, die mit dem Attribut Nur
Ausgabefeld versehen sind, bleiben davon jedoch unberührt. (Dieses
Attribut wird z.B. in der ABAP Workbench für die Funktion Anzeigen<-
>Ändern genutzt).
Ergonomie: Verwenden Sie dieses Attribut immer für dynamisch
gesetze Feldbezeichner. Durch dieses Attribut werden die
ausgegebenen Informationen flach auf der Maske und in
Proportionalschrift dargestellt und entsprechen so in ihrem Aussehen
den statischen Bezeichnern.
Mußeingabe Die Aktivierung dieses Attributs macht die Eingabe in einem Feld
obligatorisch. Als erstes Zeichen in einem Mußeingabefeld erscheint
ein Fragezeichen (?).

344 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Programmattribute

Eingabehilfe / Dieses Attribut kann nur bei Ein-/Ausgabefeldern mit dem Attribut
Dropdown und dem Eintrag Listbox belegt werden und wird nur dann
Werteliste
angezeigt. Sie bestimmen mit diesem Attribut, wie und zu welchem
Zeitpunkt die Werteliste für die Anzeige in einer Dropdown Listbox
erzeugt wird. Es stehen 2 Optionen zur Auswahl:
• Space
Es wird eine Standardhilfe angeboten. Der Help-Prozessor wird
zum PBO-Zeitpunkt angesteuert und füllt die Wertetabelle
automatisch, um sie dann an den Value Request Manager zu
übergeben. Die Quellen sind Domänenfestwerte, Wertetabellen und
Suchhilfen.
Falls in der Ablauflogik zum Zeitpunkt PROCESS ON VALUE-
REQUEST eine Anweisung innerhalb eines Moduls das Ein-
/Ausgabefeld bindet, so hat diese Form der Wertebeschaffung
Vorrang gegenüber der automatischen Wertebeschaffung duch den
Help-Prozessor.
• A aus Programm
Die Werte werden innerhalb eines PBO-Moduls von der
Anwendung selbst ermittelt. Die Wertetabelle wird zusammen mit
der ValueID (Attribut Name) mit dem Funktionsbaustein
VRM_SET_VALUES an den Value Request Manager übergeben.
Eingabehilfe / Gibt an, ob eine Eingabehilfetaste neben einem Element erscheinen
soll und wird für Ein- /Ausgabefelder nicht angezeigt, wenn das Attribut
Eingabehilfetaste
Dropdown mit dem Eintrag Listbox belegt wurde. Wenn für das
Element mögliche Eingabewerte definiert sind, können Sie die Anzeige
der Eingabehilfetaste mit diesem Feld aktivieren oder unterdrücken.
Das Feld wird vom System automatisch für solche Felder gesetzt, für
die eine Fremdschlüsselprüfung oder eine Werteliste im Dictionary
definiert ist. Das Feld wird auch für Felder des Typs TIMS oder DATS
automatisch gesetzt.
Ergonomie: Verändern Sie dieses Feld nur, wenn die vom System
automatisch gewählte Darstellung aufgrund technischer
Rahmenbedingungen falsch ist.
Rechtsbündig Rechtsbündige Ausgabe numerischer Felder in einem Element. Sie
können auch Schlüsselwörter so anzeigen (z.B. bei der Definition von
Kopfzeilen).
Führende Nullen Linksbündige Ausgabe von Werten in numerischen Feldern mit
führenden Nullen.
*-Eingabe Ermöglicht die Eingabe eines Sterns (*) an der ersten Stelle eines
Elements. Das System ignoriert den Stern und transportiert die
Eingabe ab der zweiten Stelle. Der Transport wird durch die
Konvertierungsvorschriften für das jeweilige Feldformat bestimmt. Der
Stern an erster Position veranlaßt jedoch die Verarbeitung eines
Ablauflogikmoduls, das Sie so deklarieren:
FIELD... MODULE... ON *-INPUT.

April 2001 345


BC - ABAP Workbench: Werkzeuge SAP AG
Programmattribute

Ohne Rücknahme Verhindert die Verwendung des Rücknahmezeichens (!) für das
Löschen eines Eingabewertes in einem SAP-Feld.
Ohne Schablone Verhindert, daß Sonderzeichen besonders behandelt werden. Wenn
die Eingabe des Benutzers Sonderzeichen enthält, werden sie als
normaler Text an das Bildschirmbild übergeben. Im Zusammenhang
mit diesem Attribut können Sie das Attribut Muß-Eingabe nicht setzen.

346 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Anzeigeattribute

Anzeigeattribute
Zu weiteren Attributen der Dynproelemente, siehe auch Allgemeine Attribute [Seite 338].
Die folgenden Anzeigeattribute stehen zur Verfügung:

Attribut Beschreibung und ergonomische Richtlinien


Äquidistanz- Zeigt Ein/Ausgabefelder und Textfelder in einer nichtproportionalen
Schriftart an. Um dieses Attribut für Ausgabefelder zu verwenden,
Schrift
müssen Sie das betreffende Element mit dem Attribut Nur
Ausgabefeld definiert haben.
Ergonomie: Dieses Flag sollte nicht gesetzt werden, da die
Äquidistanzschrift schlechter lesbar ist als Proportionalschrift.
Hell Helleuchtende Anzeige eines Elements.
Ergonomie: Maximal 10% aller Informationen auf einem Dynpro
sollten mit dem Attribut Hell versehen werden.
Unsichtbar Setzen Sie dieses Attribut, wenn das Element unsichtbar sein soll.
2-dimensional Zeigt Elemente ohne die dreidimensionale Schattierung an, die
normalerweise um den Elementrand herum erscheint. Dieses
Attribut wird automatisch gesetzt, wenn Sie eine Ikone verwenden.
Ergonomie: Dieses Flag sollte nicht gesetzt werden, da die
Darstellung von Feldern automatisch vom System optimiert wird.
als Bezeichner links Dieses Attribut wird für Textfelder und für Ein/Ausgabefelder, die
lediglich für die Ausgabe vorgesehen sind (Attribut Eingabefeld nicht
gesetzt) verwendet.
Ist dieses Attribut gesetzt, so wird eine Zuordnung des Textfeldes zu
dem, in derselben Zeile rechts von ihm stehenden Dynproelement,
visualisiert. Das Textfeld erscheint zur Laufzeit als zugehöriger
Bezeichner des ihm folgenden Dynproelements (neben dem es links
als Bezeichner steht).
Bei Feldern mit Dictionary-Bezug ist dieses Attribut voreingestellt.
als Bezeichner rechts Dieses Attribut wird für Textfelder und für Ein/Ausgabefelder, die
lediglich für die Ausgabe vorgesehen sind (Attribut Eingabefeld nicht
gesetzt) verwendet.
Ist dieses Attribut gesetzt, so wird eine Zuordnung des Textfeldes zu
dem, in derselben Zeile links von ihm stehenden Dynproelement,
visualisiert. Das Textfeld erscheint zur Laufzeit als zugehöriger
Bezeichner des Dynproelements, dem es folgt (neben dem es rechts
als Bezeichner steht).
Doppelklick-sensitiv Visualisierung eines doppelklick-sensitiven Bildelements (Hotspot).
Dieses Attribut kann nur für Textfelder und Ein/Ausgabefelder
gesetzt werden.
Wird dieses Attribut zum entsprechenden Element gesetzt, so wird
zur Laufzeit visualisiert, daß der Doppelklick eine Aktion auslöst.

April 2001 347


BC - ABAP Workbench: Werkzeuge SAP AG
Anzeigeattribute

Die im R/2-System verfügbaren Attribute Invers, Blinkend und Unterstrichen sowie


individuelle Farbgebung für jedes Element werden im R/3-System nicht unterstützt.
Das Farbschema ist für das gesamte System vorgegeben.

348 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
TabStrip-Attribute

TabStrip-Attribute
Zu weiteren Attributen der Dynproelemente, siehe auch Allgemeine Attribute [Seite 338].

Attribut Beschreibung und ergonomische Richtlinien


Tab-Reiter Anzahl # der Tabreiter zum Tabstrip. Sie werden mit dem Feldtext
<Feld1> bis <Feld#> vorbelegt.
Resizing Dieses Attribut bestimmt das Verhalten des TabStrips bei manueller
Größenänderung der Fensterhöhe (vertikales Resizing) und/oder der
vertikal/ horizontal
Fensterbreite (horizontales Resizing). Setzen Sie diese Attribute,
wenn sich die Größe des TabStrips mit der Fenstergröße ändern soll.
Ergonomie: Dese Attribute sollten immer gesetzt werden, wenn die
Information mehr als 21 Spalten oder mehr als 83 Zeilen für die
Anzeige benötigt.
Zeilen min. Gibt die Minimalanzahl der Zeilen bei vertikalem Resizing an. Der
angegebene Wert gibt an, wie weit der TabStrip in seiner Höhe
(gemessen in Zeilen) verkleinert werden kann und entspricht der Höhe
des größten Subscreen-Bereichs im TabStrip.

Gibt die minimale Anzahl der Spalten bei horizontalem Resizing an.
Der angegebene Wert gibt an, wie weit der TabStrip in seiner Breite
Spalten min.
(gemessen in Spalten) verkleinert werden kann und entspricht der
Breite des größten Subscreen-Bereichs im TabStrip.
Ergonomie: Durch geschickte Wahl des Wertes kann verhindert
werden, daß sich der untere Rand des TabStrips bei der Wahl der
Reiter verschiebt.

Falls sich innerhalb des Bildschirmbildes ein variabler Step Loop befindet, ist die
vertikale Resize-Fähigkeit nicht mehr vorhanden.

April 2001 349


BC - ABAP Workbench: Werkzeuge SAP AG
Table Control-Attribute

Table Control-Attribute
Zu weiteren Attributen der Dynproelemente, siehe auch Allgemeine Attribute [Seite 338].
Die folgenden Attribute stehen für Table-Controls zur Verfügung:

Attribut Beschreibung ergonomische Richtlinien


Tabellentyp Kennzeichnet eine Tabelle als Erfassungs- bzw. als Auswahltabelle.
mit Sp.Üb. Das Attribut erlaubt das Anlegen der Spaltenüberschriften in Form von Text-
oder Ein/Ausgabefeldern.
mit Titel Das Attribut erlaubt das Anlegen einer Tabellenüberschrift in Form von
Text- oder Ein/Ausgabefeldern. Der Titel muß separat angelegt werden.
Konfig.bar Ermöglicht es Ihnen, die aktuelle Einstellung der Table-Control-Attribute zu
Laufzeit in einer Datei zu sichern. Das System greift dann immer auf diese
Einstellungen zurück, wenn die Tabelle angezeigt wird.
Ergonomie: Dieses Attribut soll ausgeschaltet werden, wenn es nichts zu
konfigurieren gibt (z. B. wenn nur eine Spalte vollständig angezeigt wird)
oder wenn das Table Control programmseitig modifiziert wird.
Resizing Gibt an, daß eine Tabelle Größenveränderung in vertikaler und/oder
horizontaler Richtung unterstützt. Setzen Sie dieses Attribut, wenn Sie
möchten, daß sich die Tabellengröße mit der Fenstergröße ändert. Für
weitere Informationen siehe auch TabStrip-Attribute [Seite 349].
Trennlinien Fügt horizontale Trennlinien zwischen den Tabellenzeilen und vertikale
Linien zwischen den Tabellenfeldern (Spalten) ein.
Ergonomie: Bei sehr breiten Table Controls sollen horizontale Trennlinien
angezeigt werden.
Zeilenmark. Ermöglicht die Zeilenmarkierung. Wählen Sie ohne, einfach oder mehrfach.
Spaltenmark. Wenn Sie Spaltenmarkierung zulassen wollen, wählen Sie einfach oder
mehrfach. Andernfalls wählen Sie keine.
mit Mark.sp. Gibt an, ob die Tabelle eine Zeilenmarkierspalte hat. Sie wird intern als
Ankreuzfeld gespeichert und benötigt deshalb einen Namen. Geben Sie
diesen Namen im dafür vorgesehenen Feld an.
Fixe Spalten Schließt Spalten von der Blätterfunktion aus. Geben Sie die Anzahl der
Spalten an, die Sie ausschließen wollen. Die Fixierung der Spalten setzt
von links an.

350 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Custom Container-Attribute

Custom Container-Attribute
Zu weiteren Attributen der Dynproelemente, siehe auch Allgemeine Attribute [Seite 338].

Attribut Beschreibung & ergonomische Richtlinien


Resizing Dieses Attribut bestimmt das Verhalten des Custom Containers bei
manueller Größenänderung der Fensterhöhe (vertikales Resizing)
vertikal/ horizontal
und/oder der Fensterbreite (horizontales Resizing). Setzen Sie
dieses Attribut, wenn sich die Größe des (der) eingebetteten Controls
mit der Fenstergröße ändern soll. Standardmäßig werden die
eingebetteten Controls auf die Größe des Containers gesetzt.

Zeilen min. Gibt die Minimalanzahl der Zeilen bei vertikalem Resizing an. Der
angegebene Wert gibt an, wie weit der Container in seiner Höhe
(gemessen in Zeilen) verkleinert werden kann.

Gibt die minimale Anzahl der Spalten bei horizontalem Resizing an.
Spalten min. Der angegebene Wert gibt an, wie weit das Container in seiner Breite
(gemessen in Spalten) verkleinert werden kann.

April 2001 351


BC - ABAP Workbench: Werkzeuge SAP AG
Feldformate auswählen

Feldformate auswählen
Das Feldformat bestimmt die Bearbeitung der Elementattribute.
Dynproelemente können folgende Formate haben:
Format Beschreibung
ACCP Buchungsperiode
Format: YYYYMM.
Internes Format: C(6)
CHAR Character
Zeichenkette (in ASCII- oder EBCDIC-Format).
Internes Format: C(n)
CUKY Currency key
Internes Format: C(5)
CURR Währungsfeld
Entspricht einem Betragsfeld DEC, zeigt auf ein Feld des Typs CUKY.
Internes Format: P
DATS Datum
Ausgabe wird laufzeitabhängig ermittelt.
Internes Format: D(8)
DEC Rechenfeld
Rechen- oder Betragsfeld mit Dezimalstelle und - falls zutreffend - Komma und
Vorzeichen.
Internes Format: P
INT1 1-Byte-Ganzzahl
Internes Format: X(1)
INT2 2-Byte-Ganzzahl
Internes Format: X(2)
INT4 4-Byte-Ganzzahl
Internes Format: X(4)
LANG Sprachenschlüssel
Internes Format: C(1)
NUMC Numerisches Feld
Beliebig langes Feld, das nur aus Ziffern besteht (für Schlüssel, nicht zum
Rechnen).
Internes Format: N(n)

352 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Feldformate auswählen

PREC Genauigkeit
Genauigkeit eines QUAN-Feldes.
Internes Format: X(2)
QUAN Menge
Zeigt auf ein Feld mit dem Format UNIT und auf ein Feld mit dem Format PREC,
das die Genauigkeit angibt.
Internes Format: P
RAW Hexadezimale Darstellung des internen Wertes (Byte-Folge) eines beliebigen
Feldes.
STRG Zeichenfolge (String) variabler Länge.
RSTR Bytefolge variabler Länge in Hexadezimaldarstellung.
TIMS Zeit im Format HHMMSS.
Internes Format: T(6)
Wenn der Benutzer Leerzeichen oder das Rücknahmezeichen eingibt (!), liefert
das System Leerzeichen zurück. Der Wert muß numerisch sein. Die Zahlen links
dürfen 240000 nicht überschreiten. Die Minuten und Sekunden dürfen 59 nicht
überschreiten.
Wenn Sie die Verwendung von Leerzeichen unterbinden wollen, müssen Sie die
Rücknahme verbieten. Wählen Sie in diesem Fall das Attribut Ohne Rücknahme.
UNIT Einheitenschlüssel
Feld mit Einheitenschlüssel.
Internes Format: C(n)

April 2001 353


BC - ABAP Workbench: Werkzeuge SAP AG
Dynpros testen

Dynpros testen
Beim Testen überprüfen Sie das Dynpro in einer Laufzeitsimulation. Falls Sie bereits die
Ablauflogik festgelegt haben, können Sie beim Umfang der Simulation angeben, ob das Dynpro
mit vollständiger Ablauflogik oder ohne Ablauflogik getestet werden soll.

Vorgehensweise
So testen Sie Ihr Dynpro innerhalb des Screen Painters:
1. Wählen Sie Dynproà Testen…
Das System zeigt ein Dialogfenster für die Laufzeitsimulation an:
2. Modifizieren Sie gegebenfalls die Fensterkoordinaten, die die Größe des simulierten Dynpros
angeben.
3. Bestimmen Sie den Umfang der Simulation.
Wählen Sie vollständige Ablauflogik, falls die Ablauflogik in die Simulation einbezogen
werden soll. Andernfalls wird die Ablauflogik nicht einbezogen und Sie können lediglich das
Dynpro-Layout testen.
4. Wählen Sie Weiter.
Das System simuliert das entsprechende Dynpro.

354 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Dynpros prüfen

Dynpros prüfen
Mit der Funktion Prüfen können Sie die Syntax, Konsistenz oder das Bildlayout eines Dynpros
prüfen.

Syntaxprüfungen
Wählen Sie Dynpro → Prüfen → Syntax, um eine Syntaxprüfung innerhalb des Screen
Painters (Attribute, Ablauflogik) zu starten. Wenn ein Fehler auftritt, zeigt das System die
Fehlerart in der Statuszeile an und stellt den Cursor an die betreffende Stelle. Wenn die
Syntaxprüfung keine Fehler liefert, gibt das System eine Erfolgsmeldung aus. Sie können Ihr
Dynpro dann Sichern oder Generieren.

Dynpro-Konsistenz
Wählen Sie Dynpro → Prüfen → Konsistenz, um die Datenkonsistenz zwischen einem
Modulpool, dem ABAP Dictionary und einem Dynpro zu prüfen. Das System überprüft, ob die
Ablauflogik ein Objekt (Feld oder Modul) oder ob die Feldliste ein Feld enthält, das nicht im
ABAP Dictionary oder im Modulpool definiert ist.
Die Funktion Konsistenz prüft ebenfalls die Konsistenz von Dynpro-Attributen, die in den Feldern
Folgebild und Cursorposition angegeben sind. Insbesondere prüft das System, ob das
angegebene Folgebild existiert und ob das Feld, das als Cursorposition angegeben wurde,
existiert.
Es werden auch Attribute wie das Suchhilfe, Referenzfeld und andere geprüft. Sie können so
Fehler frühzeitig feststellen und beheben. Fehler werden in einer Hitliste angezeigt.

Normverstöße
Wenn Sie Dynpro → Prüfen → Layout wählen, prüft das System, ob das Layout Ihres Dynpros
im Fullscreen Editor den ergonomischen Standards der SAP entspricht. Unter anderem werden
folgende Prüfungen durchgeführt:
• Sind die Felder auf dem Bildschirmbild korrekt ausgerichtet/angeordnet?
• Sind Rahmen richtig positioniert?
• Wie häufig werden Anzeigeattribute verwendet?
Nach der Prüfung zeigt das System die Fehler in einer Hitliste an, die nach Priorität sortiert ist.
Für jeden Fehler wird eine Lösung angeboten. Diese Fehler beeinflussen jedoch die
Verarbeitung des Dynpros nicht. Sie können das ohne Rücksicht auf die Normverstöße
generieren.

April 2001 355


BC - ABAP Workbench: Werkzeuge SAP AG
Dynpros sichern, aktivieren und löschen

Dynpros sichern, aktivieren und löschen


Sichern
Immer wenn Sie ein Dynpro ändern, sollten Sie es sichern. Wählen Sie dazu Sichern. Das
System sichert alle Komponenten des Dynpros (Attribute, Layout, Elementliste, Ablauflogik).

Aktivieren
Wenn Sie ein Dynpro in einem ABAP-Programm aufrufen wollen, muß es bereits in der
Laufzeitversion existieren. Um eine Laufzeitversion eines Dynpros zu erstellen, muß es vorher
aktiviert werden. Wählen Sie zu diesem Zweck den Menüpfad Dynpro → Aktivieren oder die
entsprechende Ikone. Nach der Aktivierung wird in der Statuszeile die folgende Nachricht
angezeigt:
Dynpro gesichert und aktiviert.

Führen Sie jedesmal, bevor Sie ein Dynpro aktivieren, eine Konsistenzprüfung
durch. Manchmal empfiehlt es sich, ein Dynpro lediglich für Testzwecke zu
aktivieren, obwohl es Inkonsistenzen enthält. Wenn es sich um schwerwiegende
Inkonsistenzen oder syntaktische Fehler handelt, erstellt das System keine aktivierte
Fassung zum Dynpro.

Löschen

Bevor Sie ein Dynpro löschen, sollten Sie die Funktion Verwendungsnachweis
aktivieren.
Um ein Dynpro zu löschen, markieren Sie das entsprechende Dynpro und wählen Sie Dynpro
→ Löschen. Das System löscht alle Dynpro-Komponenten einschließlich Ablauflogik.

356 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Menu Painter

Menu Painter
Der Menu Painter ist ein Werkzeug zur Erstellung und Gestaltung der Benutzungsoberfläche für
ABAP-Programme.
In der folgenden Dokumentation erfahren Sie, wie Sie Oberflächen für Ihre ABAP-Programme
anlegen und verwenden können und wie die zur Oberfläche zugehörigen Funktionen zu
definieren sind.

Wenn Sie den Menu Painter im Zusammenhang mit dem Modifikationsassistenten


einsetzen möchten, lesen Sie die Dokumentation Modifikationen im Menu Painter
[Extern]

April 2001 357


BC - ABAP Workbench: Werkzeuge SAP AG
Einführung: der Menu Painter

Einführung: der Menu Painter


Ein ABAP-Programm bietet im allgemeinen eine Vielzahl von Funktionen an, die innerhalb der
Benutzungsoberfläche in unterschiedlichen Kategorien angeordnet sind. Von großer Bedeutung
ist es daher, daß der Anwender aus einer übersichtlichen Anordnung die benötigte Funktion
leicht auswählen, ausführen und letztlich seine Aktionsfolge im Programm bestimmen kann. Die
Gestaltung der Anordnung von Funktionen auf der Oberfläche wird mit dem Werkzeug Menu
Painter vorgenommen.
Eine spezielle Ausprägung der Oberfläche, bestehend aus einer Menüleiste, einer Symbolleiste,
einer Drucktastenleiste und der zugehörigen Tastenbelegung, wird mit dem GUI-Status
wiedergegeben. Zusammen mit dem GUI-Titel definiert der GUI-Status den konkreten Zustand
der Benutzungsoberfläche eines ABAP-Programms.

358 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Einführung: der Menu Painter

Komponenten der Benutzungsoberfläche

Titelleiste GUI-Titel

Menüleiste

Symbolleiste
GUI-Status
Drucktastenleiste

Funktionstastenbelegung

Nicht jeder Status verwendet alle diese Objekte. So werden für einen Status eines
modalen Dialogfensters beispielsweise nur Funktionstasten und eine
Drucktastenleiste benötigt.

Zugrundeliegende Konzepte
• Der GUI-Status ist das Hauptobjekt einer Benutzungsoberfläche und kann jedem
Bildschirmbild (Dynpro, Selektionsbildschirm oder Liste) zugeordnet werden. Er stellt in
technischer Sicht eine Referenz auf eine Menüleiste, eine Symbolleiste, Drucktastenleiste

April 2001 359


BC - ABAP Workbench: Werkzeuge SAP AG
Einführung: der Menu Painter

und auf die zugehörige Funktionstastenbelegung dar.

Status 100 Status 200

Menüleiste Drucktastenleiste Tastenzuordnung


Symbolleiste Funktionstasten
M1 D1 S1 F1

• Verschiedene GUI-Status können gemeinsam auf gleiche Teilobjekte verweisen, etwa auf
gleiche Menüleiste.
• Ein Programm kann viele GUI-Status und GUI-Titel haben. Hierdurch können die diversen
Modi einer Anwendung wiedergegeben werden.

Eine Transaktion hat beispielsweise die beiden Status "Ändern" und "Anzeigen". Im
Änderungsstatus ist z.B. die Löschfunktion aktiv, im Anzeigestatus dagegen nicht.
• Mehrere Bildschirmbilder können denselben Status verwenden.
• Der GUI-Titel eines Bildschirmbildes wird unabhängig vom Status gesetzt.

360 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Das Arbeitsblatt des Menu Painters

Das Arbeitsblatt des Menu Painters


Vom Einstiegsbild des Menu Painters gelangen Sie nach Auswahl eines Status des Programms
zu dem folgenden Arbeitsblatt, auf dem Sie alle Objekte und Teilobjekte einer
Benutzungsoberfläche einsehen und pflegen können.

Auf diesem Bild können Sie eine Menüleiste anlegen, Menüfunktionen definieren,
Funktionstasten belegen, die Symbolleiste erstellen und die Drucktastenleiste anlegen.
Für die Pflege der Bereiche Menüleiste, Drucktastenleiste oder Tastenzuordnung reißen Sie den
entsprechenden Bereich mit der "Expandieren-Ikone" auf. Damit wird der entsprechende Bereich
angezeigt.

Liste von Oberflächenobjekten


Für alle Teilobjekte der Benutzungsoberfläche pflegt der Menu Painter entsprechende Listen. Sie
dienen zur Verwaltung dieser Teilobjekte und verfügen über die entsprechenden Funktionen wie
Anlegen, Umbenennen, Kopieren, usw. So werden z.B. in einer Menüliste Einträge aller
Menüleisten des zugehörigen Programms aufgenommen. Es werden insgesamt 6 verschiedene
Listen (Status- Menü-, Funktions- und Titelliste, Menüleisten und F-Tastenbelegungen) geführt.
Sie gelangen zu der jeweiligen Liste über das Menü Springen des Arbeitsblatts oder vom
Einstiegsbild des Menu Painters aus. Nehmen Sie Änderungen auf dem Arbeitsblatt vor, wird die
Listanzeige automatisch aktualisiert. Andererseits können Sie beim Zugriff auf Listen im
Änderungsmodus Menütexte, Funktionstexte, die Auswahl der Ikonen, Titeltexte und die
Kurzdokumentation pflegen. Die Listen ermöglichen also nicht nur eine schnelle Übersicht über
sämtliche Teilobjekte der Oberfäche im gesamten Programm, sondern vereinfachen auch die
Pflege von deren Texteinträgen.

Sichern der Oberfläche


Solange Sie im Menu Painter arbeiten, müssen Sie Ihre Eingaben nicht nach jedem Arbeitsschritt
sichern (z.B. beim Wechsel zwischen Arbeitsblatt und Liste der Statuselemente). Grundsätzlich
brauchen Sie nur vor dem Verlassen des Menu Painters zu sichern. Dazu verwenden Sie die
Funktion Sichern. Sollten Sie es jedoch vergessen, werden Sie über ein Dialogfenster vor dem
Verlassen des Menu Painters daran erinnert.

April 2001 361


BC - ABAP Workbench: Werkzeuge SAP AG
Das Arbeitsblatt des Menu Painters

Aktivieren der Oberfläche


Solange die Oberfläche nicht aktiviert wird, sind die seit der letzten Aktivierung getätigten
Änderungen an der Oberfläche zur Laufzeit nicht wirksam. Nachdem Sie alle Änderungen an
dem Status vorgenommen haben und diesen auch getestet haben, muß die Oberfläche noch
aktiviert werden. Durch die Aktivierung erstellen Sie eine aktuelle Laufzeitversion der Oberfläche.
Der aktivierte Status wirkt sich dann auf alle Programme aus, die diesen Status verwenden.
Siehe auch:
Inaktive Sourcen [Seite 513]

362 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Das Einstiegsbild des Menu Painters

Das Einstiegsbild des Menu Painters


Aufruf
Um das Einstiegsbild des Menu Painters in der ABAP Workbench aufzurufen, wählen Sie dort
die Drucktaste Menu Painter oder geben Sie den Transaktionscode SE41 ein.

Verwendung
Vom Einstiegsbild können Sie sich rasch einen Überblick zu allen Teilobjekten der Oberfläche
eines ABAP-Programms verschaffen und umfassende Navigationsmöglichkeiten nutzen.
Insbesondere haben Sie den Zugriff auf bestimmte Teilobjekte der Oberfläche und können sich
bei der weiteren Bearbeitung nur auf Teilaspekte der Oberfläche beschränken.
Sie können vom Einstiegsbild
§ neue Status anlegen.
§ existierende Oberfläche testen.
§ Teilobjekte der Oberfläche anzeigen oder ändern.

Teilobjekte

Bei Auswahl von … können Sie


Status zum Arbeitsblatt des Menu Painters gelangen.
Oberflächenobjekte Alle angelegten Objekte der Benutzungsoberfäche zum
angegebenen Programm anzeigen lassen.

April 2001 363


BC - ABAP Workbench: Werkzeuge SAP AG
Das Einstiegsbild des Menu Painters

Statusliste eine Liste der angelegten Status zum angegebenen Programm


anzeigen lassen.
Menüleisten eine Liste der Menüleisten, nach Status sortiert, ausgeben.
Menüliste zur Auflistung aller Menüs gelangen.
F-Tastenbelegungen zur Liste der Funktionstastenbelegungen gelangen.
Funktionsliste eine Liste mit allen Funktionscodes ausgeben.
Titelliste zur Liste aller GUI-Titel für das betreffende Programm gelangen.

Innerhalb einer bestimmten Liste können Sie über das Menü Springen in eine jeweils
andere Liste wecheln.

364 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
GUI-Titel anlegen

GUI-Titel anlegen
Zu jedem Bildschirmbild eines Programms sollte ein GUI-Titel angelegt werden. Die Titel bieten
dem Benutzer eine Hilfe zur Orientierung im System, besonders dann, wenn eine Anwendung
aus mehreren Bildschirmbildern besteht.

Vorgehensweise
So legen Sie im Repository Browser einen GUI-Titel an:
1. Wählen Sie aus der Liste der Teilobjekte Programm aus.
Das System zeigt eine Liste der Programmobjekte an.
2. Markieren Sie GUI-Titel.
3. Tragen Sie einen bis zu zwanzigstelligen Titelcode ein.
4. Wählen Sie Anlegen.
Das System zeigt ein Dialogfenster an, in dem Sie die Titelleiste pflegen können.
5. Geben Sie den gewünschten Titeltext ein.
6. Wählen Sie Sichern.

Ergebnis
Ein GUI-Titel wurde im Manu Painter angelegt. Er kann nun mit der folgenden ABAP-Anweisung
gesetzt werden:
SET TITLEBAR <Titelcode>.

Wird kein GUI-Titel explizit gepflegt, so verwendet das System einen Standardtitel.

Titel mit Variablen


Um einen Titel zur Laufzeit zu definieren, können Sie das Zeichen & bzw. &Nr. (im Falle der
Nummerierung) als Variable für den Titeltext verwenden.
Zur Laufzeit werden diese Variablen durch einen von Ihnen eingegebenen Wert ersetzt. Dazu
verwenden Sie die folgende ABAP-Anweisung:
SET TITLEBAR <Titelcode> WITH <Wert1> <Wert2>... <WertN>.
Es können bis zu 9 Variablen für den Titel verwendet werden.
Die Variablen werden entsprechend der Nummerierung oder in der
Reihenfolge von links nach rechts ( falls die Variable nicht nummeriert
ist) durch Werte an der entsprechenden Stelle im SET-Kommando ersetzt.
Weitere informationen zur Syntax erhalten Sie mit der F1-Hilfe.

GUI-Titel sind so lange wirksam, bis Sie sie explizit ändern. Zur Laufzeit wird der
aktuelle Titel stets im Systemfeld SY-TITLE abgelegt.

April 2001 365


BC - ABAP Workbench: Werkzeuge SAP AG
Definieren eines Status

Definieren eines Status


Schritte
Um einen neuen Status im Menu Painter zu erstellen, sind folgende Schritte durchzuführen:
• Anlegen des Status.
• Anlegen der Menüleiste (oder Referenzieren auf eine bestehende Menüleiste).
• Hinzufügen der Menüeinträge.
• Definieren einer neuen Funktionstastenzuordnung.
• Definieren der Symbolleiste (oder Referenzieren auf eine bestehende).
• Definieren der Druckstastenleiste (oder Referenzieren auf eine bestehende
Drucktastenleiste).
• Testen des Status.
• Aktivieren der Oberfläche .

Navigation
Die Statuspflege kann aus unterschiedlichen Positionen der ABAP-Workbench heraus
vorgenommen werden:
• Mit Vorwärtsnavigation aus dem ABAP Editor.
• Aus dem Repository Browser unter Programmobjekte.
• Aus dem Einstiegsbild des Menu Painters.

366 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
GUI-Status anlegen

GUI-Status anlegen
Vorgehensweise
So legen Sie aus dem Einstiegsbild des Menu Painters einen neuen GUI-Status an:
1. Geben Sie den Namen des ABAP-Programms ein.
2. Wählen Sie Status aus der Liste der Teilobjekte aus.
3. Geben Sie einen Statusnamen ein.
Ein Statusname kann aus bis zu zwanzig alphanumerischen Zeichen bestehen.
4. Wählen Sie Anlegen.
Das Dialogfenster zur Pflege der Statusattribute wird angezeigt:
5. Geben Sie einen Kurztext ein.
6. Markieren Sie einen Statustyp.
Der ausgewählte Statustyp fungiert als Eingabehilfe für den Menu Painter. Die
vorgegebenen Eingaben halten sich an die Normen der SAP Style Guide.

Statustyp Referenz auf

Dialogstatus Menüleisten, Symbolleiste, Funktionstasten und Drucktasten.


Dialogfenster Funktionstasten und Drucktasten. Dialogfenster haben keine Menüleisten
und keine Symbolleiste.
Kontextmenü Ein Kontextmenü. Das Kontextmenü faßt einen Satz von Funktionen
zusammen, die als Vorlage für den Aufbau eines Kontextmenüs
verwendet werden können.
Siehe auch Kontextmenü anlegen [Seite 369].

7. Wählen Sie Weiter.


Das System zeigt das Arbeitsblatt des Menu Painters an.
8. Definieren Sie die weiteren Teilobjekte der Oberfläche (oder referenzieren Sie bereits
vorhandene Teilobjekte).
Siehe auch:
Tastenzuordnung definieren [Seite 377]

Menüleisten anlegen [Seite 372]

Drucktastenleisten definieren [Seite 379]

Symbolleiste anlegen [Seite 385]


9. Sichern Sie den Status.

Ergebnis
Das neue Statusobjekt erscheint in der Objektliste Ihres Programms.

April 2001 367


BC - ABAP Workbench: Werkzeuge SAP AG
GUI-Status anlegen

Solange der Status nicht aktiviert wurde, ist er im Programm nicht aufrufbar (Siehe
auch: Status testen und aktivieren [Seite 386])

368 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Kontextmenü anlegen

Kontextmenü anlegen
Verwendung
Die Einträge eines im Menu Painter vordefinierten Kontextmenüs können als Vorlagen für den
Aufbau von Kontextmenüs auf Dynpros und Listen verwendet werden. Sie können dann über die
Methode LOAD_GUI_STATUS der globalen Klasse CL_CTMENU vom Menu Painter ins
Programm geladen werden.

Vorgehensweise
So legen Sie, ausgehend vom Repository Browser, ein Kontextmenü an:
1. Wählen Sie Programmobjekte und anschließend Bearbeiten.
2. Geben Sie den Namen des ABAP-Programms ein.
3. Wählen Sie GUI-Status und geben Sie den Codenamen für das Kontextmenü ein.
Dieser Name wird später mit dem Importing-Parameter STATUS der Methode
LOAD_GUI_STATUS an das Programm übergeben werden.
4. Wählen Sie Anlegen.
Das Dialogfenster Status anlegen für die Pflege des Statusattribute wird angezeigt.
5. Geben Sie einen Kurztext ein.
6. Wählen Sie den Statustyp Kontextmenü.
7. Wählen Sie Weiter.
Das Arbeitsblatt für das Kontextmenü wird angezeigt.
8. Geben Sie in der Spalte Code den Funktionscode und unter Text den entsprechenden
Kurztext ein.
Dieser Text wird im Kontexmenü angezeigt.
9. Wiederholen Sie den letzen Schritt für jede weitere in das Kontextmenü aufzunehmende
Funktion.
10. Falls Sie eine Trennlinie in eine Ziele einfügen möchten, dann wählen Sie den Menüpfad
Bearbeiten → Einfügen → Trennlinie.
11. Falls Sie ein Untermenü anlegen möchten, lassen Sie die Spalte Code leer und tragen Sie
nur den Text für das Untermenü ein. Öffnen Sie dann das Untermenü mit Doppelklick und
pflegen Sie dort die entsprechenden Einträge.
Beispiel:

April 2001 369


BC - ABAP Workbench: Werkzeuge SAP AG
Kontextmenü anlegen

Ergebnis
Sie haben eine Sammlung von Funktionen in einem Kontextmenü zusammengefaßt und können
diese als vordefinierte Vorlage für den Aufbau eines Kontextmenüs verwenden.

Wie Sie die entsprechende Verarbeitungslogik im ABAP defnieren, erfahren Sie


unter Kontextmenüs [Extern].

370 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Arbeiten mit Menüleisten

Arbeiten mit Menüleisten


Jeder neue, von Ihnen erstellte Status kann eine Referenz auf eigene Menüleiste haben. Sie
können eine Menüleiste komplett neu erstellen oder oder auf Vorgaben zurückgreifen.
Sie können bis zu 6 Menüs in einer Menüleiste definieren. Das System fügt standardmäßig die
beiden Menüs System und Hilfe zu diesen noch hinzu. Diese beiden Menüs werden auf allen
R/3-Bildschirmen an den beiden letzten Positionen der Menüleiste angezeigt.
Ist der die Menüleiste neu anzulegen, so zeigt das Statusarbeitsblatt zunächst einen leeren
Menüleistenbereich.

Normvorschläge verwenden
Bei der Pflege einer Menüleiste können Sie den Ergonomievorschlag der SAP als Vorlage
verwenden. Wählen Sie dazu Normen einmischen mit Einfachklick aus, um den Vorschlag
anzuzeigen. Sie können ebenfalls die angebotenen Menüs nach Ihren Wünschen ändern.
Um wieder eine leere Menüleiste zu erhalten, wählen Sie Normen ausblenden mit Einfachklick
aus.

Beim Status für Listen können auch einzelne Funktionen als Vorschlag übernommen
werden. Wählen Sie dazu Listfunktionen einmischen mit Einfachklick aus, um den
Vorschlag anzuzeigen Auch hier können Sie die angebotenen Funktionen
übernehmen oder diese für Ihre Zwecke ändern.

April 2001 371


BC - ABAP Workbench: Werkzeuge SAP AG
Menüleisten anlegen

Menüleisten anlegen
Vorgehensweise
So legen Sie bei geöffnetem Arbeitsblatt des Menu Painters eine neue Menüleiste an:
1. Öffnen Sie im Änderungsmodus eine leere Menüleiste mit der Auffreißen-Ikone rechts
neben dem Textfeld Menüleiste.
2. Sofern Sie die Normvorschläge verwenden wollen, wählen Sie Normen einmischen.
3. Sofern Sie die Normvorschläge verwendet haben, ändern Sie das erste in Klammern
stehende Menüfeld <Objekt> ab und spezifizieren es.
4. Geben Sie anderenfalls Menüpunkte explizit ein.
Beispiel:

5. Tragen Sie zu den einzelnen Menüs Menüeinträge [Seite 374] ein.

372 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Normen einhalten

Normen einhalten
Der Menu Painter unterstützt die im BC - SAP Style Guide festgelegten Normen für die R/3-
Oberflächengestaltung, indem er Namen für die GUI-Objekte vorschlägt. Diese Vorschläge
können Sie sich entweder vom Einstiegsbild oder vom Arbeitsblatt des Menu Painters anzeigen
lassen.
Wählen Sie hierzu Hilfsmittel → Erläuterungen → Normen/Vorschläge.
Wenn Sie sich an diese Vorschläge halten, erstellen Sie Anwendungen, die mit dem Aussehen
der R/3-Standardanwendungen übereinstimmen.

April 2001 373


BC - ABAP Workbench: Werkzeuge SAP AG
Menüeinträge hinzufügen

Menüeinträge hinzufügen
Nachdem Sie eine Menüleiste angelegt haben, fügen Sie zu den einzelnen Menüs der Leiste die
entsprechenden Menüeinträge hinzu. Jedes Menü kann bis zu 15 Einträge enthalten.
Ein Menü kann folgende 3 Arten von Einträgen enthalten:
• Funktionsnamen (mit Angabe von Code und Text)
• Untermenüs (Kaskadenmenüs)
• Trennlinien
Die maximal mögliche Schachtelungstiefe bei Untermenüs beträgt drei Ebenen.
Zusammengehörende Menüfunktionen werden zwecks besserer Übersicht durch Trennlinien
gruppiert. Bei sehr langen Menüs dienen die Trennlinien auch zur Unterteilung in kleinere
Bereiche. So wird das Menü übersichtlicher und leichter lesbar.
Beispiel:

Menüfunktionen definieren
So fügen Sie bei geöffnetem Arbeitsblatt Funktionen zu einem Menü hinzu:
1. Wählen Sie ein Menü in der Menüleiste und öffnen Sie die Liste der Einträge mit Maus-
Doppelklick.
Das System öffnet das Menü. Die Liste der Einträge enthält die beiden Spalten Code
und Text.
2. Tragen Sie in der Spalte Code einen bis zu zwanzigstelligen Funktionscode ein.

Falls Sie einen Funktionscode eintragen wollen, der länger als das Eingabefeld für
Funktionscodes ist, müssen Sie die angezeigte Länge in Ihren benutzerbezogenen
Einstellungen ändern. Wählen Sie dazu Hilfsmittel → Einstellungen →
Benutzerbezogen.
3. Tragen Sie in der Spalte Text den Funktionstext ein.

374 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Menüeinträge hinzufügen

Der hier eingegebene Name erscheint zur Laufzeit im Menü. Sie können auch den Inhalt
der Funktionstexte zur Laufzeit festlegen (siehe Dynamische Funktionstexte definieren
[Seite 401]).
4. Wiederholen Sie Schritt 2 und 3 für jeden einzelnen Menüeintrag.

Untermenüs anlegen
So fügen Sie ein Untermenü (Kaskadenmenü) Ihrem Menü hinzu:
1. Lassen Sie die Spalte Code leer.
2. Tragen Sie in der Spalte Text einen Namen (für das Untermenü) ein.
3. Öffnen Sie das Untermenü durch Maus-Doppelklick.
Das System öffnet die zugehörige Liste für Menüeinträge.
4. Vervollständigen Sie das Menü wie oben beschrieben.

Trennlinie einfügen
1. Positionieren Sie den Cursor auf die entsprechnede Zeile.
2. Wählen Bearbeiten → Einfügen → Trennlinie.

Ist zwischen zwei schon bestehenden Menüeinträgen nachträglich eine Trennlinie


einzufügen, so positionieren Sie den Curser auf die Zeile, vor der die Trennlinie
eingefügt werden soll.

Menüeinträge bearbeiten
Einzelne Menüeinträge können ausgeschnitten, kopiert, eingefügt oder gelöscht werden.
1. Positionieren Sie den Cursor auf die entsprechnede Zeile.
2. Wählen Sie Bearbeitenà Eintragà Auschneiden (Kopieren, Einsetzen, Löschen).

Mit einem Doppelklick auf den Funktionscode gelangen Sie zu Dialogfenster


Funktionsattribute, wo u.a. eine neue Ikonenzuordnung vorgenommen werden kann.

Normvorschläge übernehmen
Einige SAP-Menüfunktionen sind standarisiert. Wenn Sie mit den SAP-Standardmenüs arbeiten,
werden diese Funktionen in Ihren Menüs angezeigt:

April 2001 375


BC - ABAP Workbench: Werkzeuge SAP AG
Menüeinträge hinzufügen

Um eine Standardfunktion zu übernehmen, aktivieren Sie diese durch die Eingabe eines bis zu
zwanzigstelligen Funktionscodes. Geben Sie keinen Funktionscode an, wird die Funktion zur
Laufzeit in Ihrem Menü nicht angezeigt.

376 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Tastenzuordnung definieren

Tastenzuordnung definieren
Um auf häufig benutzte Funktionen der Oberfläche schnell zuzugreifen, werden Funktionstasten
verwendet. Die Funktionstasten sind besondere Tasten auf Ihrer Tastatur (F-Tasten), die
bestimmte Funktionen ohne Auswahl von Menüs aufrufen können.
Um Funktionstasten Ihrer Oberfläche hinzuzufügen, müssen Sie der entsprechenden
Funktionstaste einen bestimmten Funktionscode zuordnen.
Bei der Pflege der Funktionstastenzuordnung wird unterschieden zwischen:
• Reservierten Funktionstasten
• Empfohlener Funktionstastenbelegung
• Frei belegbaren Funktionstasten.
Die folgenden Funktionstasten sind von SAP reserviert und können nicht anders belegt werden.
Einige Beispiele:
F1 Hilfe
F3 Zurück
F4 Eingabemöglichkeiten
F12 Abbrechen

Welche Funktionstasten reserviert sind oder vom System empohlen werden, hängt
vom gewählten Statustyp ab. Näheres erfahren Sie in der SAP Style Guide. Wählen
Sie hierzu Hilfsmittelà Erläuterungenà Normen/Vorschläge.

Vorgehensweise
So legen Sie die Funktionstastenzuordnung fest.
1. Verzweigen Sie zum Arbeitsblatt des Menu Painters.
2. Öffnen Sie den Teil des Arbeitsblatts Tastenzuordnung mit der "Aufreißen-Ikone".
3. Definieren Sie für die entsprechende Funktionstaste im ersten Eingabefeld einen
Funktionscode.
Sofern Sie eine bereits definierte Funktionstastenbelegung referenzieren wollen, lesen
Sie Objekte in einen GUI-Status übernehmen [Seite 391]
4. Geben Sie im zweiten Eingabefeld einen Text für die Funktion an. Dieser wird dann als
Dokumentation sichtbar, wenn der Benutzer auf der Oberfläche die rechte Maustaste
drückt.

Wenn Sie eine Funktionstaste der Gruppe Empfohlene Funktionstastenbelegung


definiert haben, wird bereits eine Funktionsbezeichnung vorgeschlagen. Diese
können Sie allerdings überschreiben. Sie sollten den entsprechenden
Funktionstasten aber nur Funktionen zuordnen, die dieser Bezeichnung
entsprechen, da diese auf allen SAP-Oberflächen einheitlich verwendet werden.

April 2001 377


BC - ABAP Workbench: Werkzeuge SAP AG
Tastenzuordnung definieren

378 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Drucktastenleisten definieren

Drucktastenleisten definieren
Häufig verwendete Funktionen können auch als Drucktasten auf einer Leiste unterhalb der
Symbolleiste angeordnet, zugänglich gemacht werden.
Beispiel einer Drucktstenleiste:

Besonderheiten:
• Um eine Funktion als Drucktaste in die Drucktastenleiste aufzunehmen, ist es erforderlich,
zunächst diese Funktion einer Funktionstaste zuordnen.
• Die Drucktastenleiste kann bis zu 35 Drucktasten enthalten.
• Die Funktionen in der Drucktastenleiste können als Text oder Ikone oder als Kombination
von Text und Ikone angezeigt werden.
• Inaktive Funktionen innerhalb der Drucktastenleiste können angezeigt werden, falls für die
Drucktastenleiste eine Ortskonstanz definiert wurde. Siehe auch Ortskonstanz definieren
[Seite 383].
• Sie können zur Laufzeit auch dynamische Texte einer Drucktaste zuordnen. Näheres hierzu
finden Sie unter Dynamische Funktionstexte definieren [Seite 401].
• Funktionen der Drucktastenleiste können mit Trennstrichen inhaltlich gruppiert werden. Siehe
auch Trennstriche einfügen [Seite 384].
• Der SAP Style Guide empfiehlt, daß Sie nur Funktionen als Drucktasten implementieren, die
auch über die Menüs ausgewählt werden können. Wählen Sie zur weiteren Information den
Menüpfad Hilfsmittelà Erläuterungenà Normen/Vorschläge.

Vorgehensweise
1. Ornden Sie eine Funktion einer Funktionstaste zu. Die Vorgehensweise dazu erhalten Sie
unter Tastenzuordnung definieren [Seite 377].
2. Öffnen Sie die Detailsicht für die Drucktastenleiste und geben Sie für die anzulegende
Drucktastenleiste einen Namen ein.
3. Geben Sie den im 1-ten Arbeitsschritt definierten Funktionscode in das Eingabefeld einer
bestimmten Position auf der Drucktastenleiste ein und bestätigen mit ENTER.
Das System fügt die in der Funktionstastenzuordnunhg verwendete
Funktionsbezeichnung und evntuell eine Ikone (falls dem Funktionscode zugeordnet)
ein.

April 2001 379


BC - ABAP Workbench: Werkzeuge SAP AG
Drucktastenleisten definieren

4. Wiederholen Sie Schritt 3 für weitere Drucktasten.


Orientieren Sie sich bei der Vergabe von Positionen an den Normen der SAP Style Guide.
5. Eventuell können Sie Ikonen zu den Drucktasten hinzufügen. Näheres über die Zuordnung
von Ikonen zu Drucktasten finden Sie unter Ikonen für die Drucktastenleiste definieren [Seite
381].

380 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Ikonen für die Drucktastenleiste definieren

Ikonen für die Drucktastenleiste definieren


Sie können zu Funktionen der Drucktastenleiste Ikonen definieren. Eine Ikone kann mit oder
ohne Text angezeigt werden.

Die im Menu Painter verfügbaren Ikonen entsprechen nicht ganz denen in anderen
Editoren (z.B. im Screen Painter). Im einem Pool sind alle Ikonen je nach
Verwendungszweck bestimmten Gruppen zugeordnet.
Um einer Funktion eine Ikone zuzuordnen, haben Sie folgende Möglichkeiten:
• Ausgehend von der Funktionsliste machen Sie einen Eintrag unter Ikonenname.
• Führen Sie auf der Funktionstastenzuordnung einen Doppelklick aus.
Es erscheint das Dialogfenster Funktionsattribute, wo Sie unter Ikonenname einen
Eintrag machen.
Eine Liste der möglichen Ikonen können Sie mit der Werthilfetaste anzeigen lassen:

Weitere Optionen
• Soll die Ikone mit einem erklärenden Text angezeigt werden, geben Sie den gewünschten
Text in das Feld Ikonentext ein.

April 2001 381


BC - ABAP Workbench: Werkzeuge SAP AG
Ikonen für die Drucktastenleiste definieren

• Geben Sie eventuell einen Infotext ein. Das System zeigt den Infotext an, wenn der
Benutzer den Cursor auf die Ikone positioniert und dabei die rechte Maustaste gedrückt
hält.

382 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Ortskonstanz definieren

Ortskonstanz definieren
Mit dem Attribut Ortskonstanz können Sie erreichen, daß sich Funktionen in der
Drucktastenleiste, insbesondere beim dynamischen Inaktivieren nicht verschieben, also
ortskonstant bleiben.

Vorgehensweise
1. Verzweigen Sie zum Arbeitsblatt [Seite 361] des Menu Painters.
2. Schalten Sie den Änderungsmodus ein.
3. Wählen Sie den Menüpafad Springen → Attribute → D-Tastenleiste.
Alternativ können Sie die "Sperren-Ikone" rechts neben der Kurzbeschreibung für die
Drucktstenleiste wählen.
4. Aktivieren Sie den Flag Ortskonstant und wählen Sie Weiter.

Ergebnis
Die "Sperren-Ikone" rechts neben der Kurzbeschreibung für die Drucktstenleiste schaltet um und
zeigt jetzt an.
Sie erreichen damit, daß inaktive Funktionen innerhalb der Drucktstenleiste zur Laufzeit grau
angezeigt werden. Dabei ist es unerheblich, ob die Funktion im Menu Painter oder dynamisch im
Programm inaktiviert wurde.

April 2001 383


BC - ABAP Workbench: Werkzeuge SAP AG
Trennstriche einfügen

Trennstriche einfügen
Verwendung
Ähnlich, wie bei Menüs, können Funktionen in der Drucktastenleiste in logische Gruppen
eingeteilt werden. Solche Gruppierungen auf der Drucktastenleiste werden durch Trennstriche
hervorgehoben und können verwendet werden, um ähnliche Arbeitsabläufe zusammenzufassen.

Vorgehensweise
So gehen Sie vor, um einen Trennstrich für die Drucktastenleiste einzufügen.
1. Verzweigen Sie zum Arbeitsblatt des Menu Painters.
2. Schalten Sie den Änderungsmodus ein.
3. Setzen Sie den Cursor an die Position, an der ein Trennstrich eingefügt werden soll.
4. Wählen Sie den Menüpfad Bearbeiten→ Einfügen→ Trennlinie.
Ein entsprechendes Zeichen für den Trennstrich wird zu der Position eingefügt.
Beispiel:

Ergebnis
Die Drucktastenleiste hat für das obige Beispiel folgende Form:

384 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Symbolleiste anlegen

Symbolleiste anlegen
• Die Symbolleiste hat für alle Oberflächen des R/3-Systems mit dem Statustyp Dynpro
oder Liste die gleiche Gestalt:

• Die Tasten nicht aktiver Funktionen erscheinen "grau".


• Oberflächen mit dem Statustyp Dialogfenster oder Liste im Dialogfenster haben keine
Symbolleiste.

Voraussetzungen
Für alle aktiven Funktionen der Symbolleiste muß zuvor die Funktionstastenzuordnung definiert
werden. Siehe auch Tastenzuordnung definieren [Seite 377].

Der SAP Style Guide empfiehlt, daß in der Symbolleiste zumindest die Funktionen
Zurück, Beenden und Abbrechen aktiviert werden sollen.

Vorgehensweise
So legen Sie eine Symbolleiste im Menu Painter an:
1. Verzweigen Sie zum Arbeitsbaltt des Menu Painters.
2. Schalten Sie den Änderungsmodus ein.
3. Geben Sie den definierten Funktionscode im Bereich Symbolleiste über der
entsprechenden Ikone ein.

April 2001 385


BC - ABAP Workbench: Werkzeuge SAP AG
Status testen und aktivieren

Status testen und aktivieren


Beim Testen überprüfen Sie den Status in einer Laufzeitsimulation. Dabei wird auf die inaktive
Fassung des Status, sofern diese vorhanden ist, zurückgegriffen.

Die Änderungen am GUI-Status werden in Ihrer Anwendung aber erst sichtbar,


nachdem Sie den Status aktiviert haben.

Status testen
So testen Sie Ihren Status vom Arbeitsblatt des Menu Painters aus:
1. Wählen Sie Oberfläche → Status testen.
Das System zeigt ein Dialogfenster zur Statussimulation an.
2. Geben Sie die Dynpronummer und den Titel ein, falls die Simulation für das
eingegebene Dynpro angezeigt werden soll. Machen Sie keine Angaben hierzu, so wird
die Simulation für ein leeres Testdynpro durchgeführt.
3. Wählen Sie Ausführen.
Es wird Dialogfenster mit Fensterkoordinaten angezeigt.
4. Wählen Sie Weiter.
Das System simuliert Ihren Status.

Status aktivieren
Um den Status zu aktivieren, wählen Sie Oberfläche → Aktivieren oder die entsprechende
Ikone. Beim Aktivieren führt das System automatisch eine Syntaxprüfung durch.

Um die Oberfläche auf Syntaxfehler zu überprüfen, ohne den GUI-Status zu


aktivieren, wählen Sie Oberfläche → Syntax prüfen. Mit dieser Funktion überprüft
das System die Benutzungsoberfläche und gibt gegebenfalls eine Fehlermeldung
aus, die Sie vor dem Aktivieren korrigieren müssen.
Siehe auch:
Inaktive Sourcen [Seite 513]

386 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Arbeiten mit der erweiterten Prüfung

Arbeiten mit der erweiterten Prüfung


Die erweiterte Prüffunktion des Menu Painters untersucht alle GUI-Status in Ihrem Programm auf
Richtigkeit, Syntaxfehler und Vollständigkeit. Weiterhin kann im Anschluß an die erweiterte
Prüfung aktiv eine Fehlerkorrektur durchgeführt werden. Die erweiterte Prüfung beruht auf den
im SAP Style Guide [Extern] definierten Normen und hängt von den Attributen ab, die Sie den
Teilobjekten der Oberfläche vergeben haben.

Prüfung starten
Um die erweiterte Prüfung zu starten, wählen Sie vom Einstiegsbild oder vom Arbeitsblatt des
Menu Painters Hilfsmittel → Erweiterte Prüfung.
Das System zeigt das Prüfergebnis in einer Baumstruktur an. Dabei wird zwischen zwei
Kategorien von Fehlern unterschieden:
• Warnungen
• Normverstöße
Warnungen beziehen sich auf Versäumnisse wie nicht definierte Funktionsbelegung oder
fehlende Direktanwahl. Bei Normverstößen handelt es sich um Verstöße gegen die SAP-
Richtlinien wie etwa falsche Funktionsbelegungen oder nicht adäquate Anordnung von
Funktionen in einem Menü.

Weitere Informationen
Mit dieser Info-Drucktaste können Sie nähere Informationen zu einem Fehler anzeigen lassen.
Markieren Sie dazu einen Knoten im Baumstruktur und wählen Sie die Info-Drucktaste. Sie
erhalten hier auch Informationen zu Vorgehensweise bei der Fehlerkorrektur. Wenn Sie lediglich
Warnungen oder Normverstöße markiert haben, zeigt das System die allgemeine Information zur
Prüfliste an.

Fehlerkorrektur
So können Sie Fehlerkorrekturen in der erweiterten Prüfung durchführen:
1. Öffnen Sie den jeweiligen Knoten in der Baumanzeige.
2. Wählen Sie ein Objekt aus der Prüfliste mit Doppelklick aus. Das System verzweigt zum
jeweilgen Arbeitsbereich des Menu Painters, in dem Fehler korrigiert werden können.
3. Führen Sie die Korrekturen im Änderungsmodus durch.
4. Kehren Sie mit F3 zurück zur Baumanzeige.

April 2001 387


BC - ABAP Workbench: Werkzeuge SAP AG
Status kopieren

Status kopieren
Sie können einen neuen GUI-Status innerhalb eines Programms anlegen, indem Sie einen
bereits vorhandenen Status kopieren.
Dabei ist zwischen den folgenden Fällen zu unterscheiden:
• Status wird innerhalb eines Programms in einen anderen Zielstatus kopiert. Hier kann
wiederum zwischen 2 Fällen zu unterschieden werden:
a). Der Zielstatus übernimmt dieselben Teilobjekte. Die Statusreferenzen bleiben hierbei
vollständig erhalten, sodaß Änderungen an Teilobjekten in beiden Status sichtbar sind.
b). Der Zielsatus übernimmt nur teilweise dieselben Teilobjekte. Die einzelnen
Teilobjekte können explizit ausgewählt werden und werden dann ebenfalls kopiert. Im
neuen Status werden dann alle Referenzen auf die gewählten Teilobjekte durch
Referenzen auf deren Kopien ersetzt, sodaß Änderungen an diesen Teilobjekten nur im
Zielstatus sichtbar sind. Die Referenzen der übrigen (nicht ausgewählten) Teilobjekte
bleiben erhalten. Die untere Abbildung veranschaulicht dieses Prinzip.

388 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Status kopieren

Status Kopieren Zielstatus

T Tastenzuordnung

D Drucktastenleiste

M Menüleiste Referenz auf Orginal

Referenz auf Kopien

Kopieren
M1 D1 T1 D1* T1*

Ausgewählte Teilobjekte

• Status wird in einen Zielstatus eines anderen Programms kopiert. Hierbei werden alle
vorhandenen Teilobjekte übernommen.

Wenn Sie die Status Ihres Programms standardisieren möchten, sollten Sie
dieselben Teilobjekte referenzieren wie im Original.

Vorgehensweise
So erstellen Sie vom Einstiegsbild des Menu Painters einen neuen Status innerhalb desselben
Programms durch Kopieren eines bereits vorhandenen Status:
1. Wählen Sie die Drucktaste Status.
Das System zeigt das Dialogfenster Status kopieren an. Standardmäßig stehen der
aktuelle Programm- und Statusname in den Feldern von und nach.

April 2001 389


BC - ABAP Workbench: Werkzeuge SAP AG
Status kopieren

2. Tragen Sie einen neuen Status ins Feld nach ein.


3. Wählen Sie Kopieren.
Im folgenden Dialogfenster können Sie die Auswahl treffen, ob die Kopie diesselben
oder teilweise dieselbenTeilobjekte verwendet. Im zweiten Fall können Teilobjekte
explizit ausgewählt werden. Als Standard gilt die Option Dieselben Teilobjekte. Sie
können jedoch auch teilweise dieselben … wählen (s. obige Abb.). In diesem Fall
müssen Sie dann die gewünschten Teilobjekte, die kopiert werden sollen, markieren.
4. Nehmen Sie die entsprechende Auswahl vor.
5. Wählen Sie Kopieren.
Das System erstellt den neuen Status im selben Programm.

Beim Kopieren des Status in den Zielstatus eines anderen Programms entfällt das Dialogfenster
und die Auswahl (der Schritt 4), da hier alle Teilobjekte mitkopiert werden.

390 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Objekte in einen GUI-Status übernehmen

Objekte in einen GUI-Status übernehmen


Es zwei verschiedene Möglichkeiten, einen Status anzulegen:
• jedes Teilobjekt zu einem Status separat neu anlegen und somit eine eindeutige Referenz
herstellen.
• auf bestehende (eigenständige) Teilobjekte zurückgreifen und sie mehrfach in verschiedenen
Status verwenden.
Bei diesem Vorgehen erstellen Sie die einzelnen Menüleisten, Menüfunktionen und
Tastenzuordnungen entweder zu einem beliebigen Grundstatus oder von der
entsprechenden Übersichtsliste aus. Ein neu angelegter Status kann dann diese Teilobjekte
referenzieren.

Menüleiste übernehmen
1. Legen Sie einen neuen Status an, dessen Referenz auf eine Menüleiste definiert werden
soll.
2. Wählen Sie im Arbeitsbaltt des Menu Painters die Funktion Bearbeiten → Übernehmen →

Menüleiste oder die "Zuordnen-Ikone" .


Sie erhalten eine Liste aller Menüleisten, die für das aktuelle Programm angelegt wurden.
3. Wählen Sie eine Menüleiste mit Doppelklick aus.
Der Status verwiest auf die ausgegebenen Funktionen der Liste. Beim Referenzieren werden
Funktionen allerdings noch nicht aktiviert.
4. Aktivieren Sie die Funktionen.

Tastenzuordnung übernehmen
1. Legen Sie einen neuen Status an, der die Tastenzuordnung referenzieren soll.
2. Wählen Sie im Arbeitsbaltt des Menu Painters die Funktion Bearbeiten → Übernehmen →
Tastenzuordnung oder die entsprechende Ikone .
Sie erhalten eine Liste aller Tastenzuordnungen, die für das aktuelle Programm angelegt
wurden.
3. Wählen Sie eine Tastenzuordnung mit Doppelklick aus.
Der Verweis auf die ausgewählte Tastenzuordnung wurde erstellt. Die Funktionen sind
allerdings noch alle deaktiviert.
4. Aktivieren Sie die Funktionen.

Drucktastenleiste übernehmen
1. Legen Sie einen neuen Status an, dessen Referenz auf eine Drucktastenleiste definiert
werden soll.
2. Wählen Sie die Funktion Bearbeiten → Übernehmen → DrTastenbelegung oder die

entsprechende Ikone im Arbeitsblatt.


3. Sie erhalten eine Liste aller Drucktastenleisten, die für das aktuelle Programm angelegt
wurden.

April 2001 391


BC - ABAP Workbench: Werkzeuge SAP AG
Objekte in einen GUI-Status übernehmen

4. Wählen Sie eine Drucktastenleiste mit Doppelklick aus.


Ein Referenz auf die Drucktastenleiste wird erstellt. Die zugehörigen Funktionen sind
allerdings noch deaktiviert.
5. Aktivieren Sie die Funktionen.

Zuordnung auflösen
Es gibt mehrere Möglichkeiten, eine Referenz aufzulösen. Am einfachsten ist es, den
bestehenden Verweis mit der neuen Information zu überschreiben.
Sie können auch die Funktion Bearbeiten → Initialisieren verwenden, um eine Funktionstasten-,
Menü- oder Drucktastenbelegung zu initialisieren.

392 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Arbeiten mit Übersichtslisten

Arbeiten mit Übersichtslisten


Wiederverwendbare Teilobjekte der Programmoberfläche werden in Übersichtslisten
zusammengefaßt. Diese sind nach Kategorien sortiert als Menüliste, Titelliste, usw. Einzelne
Objekte können dort ausgewählt und bearbeitet werden. Zu diesen Objekten zählen auch die
innerhalb der Oberfläche nicht verwendeten Objekte.

Die nicht verwendeten Objekte sind also keinem Status zugeordnet. Wenn Sie
beispielsweise ein Menü im Arbeitsblatt löschen, löscht das System dieses Menü
nicht aus der Menüliste, obwohl es nicht mehr auf der Oberfläche erscheint. Das
Menü verbleibt also in der Menüliste und Sie haben die Möglichkeit, das Menü zu
einem späteren Zeitpunkt in einer anderen Statusreferenz wiederzuverwenden.

Auf Listen zugreifen


Um vom Arbeitsblatt auf die Listen zuzugreifen, wählen Sie im Menü Springen die entsprechende
Objektkategorie aus (Menüliste, Funktionsliste,...). Mit Springen → Aktueller Status können Sie
von der Liste zurück zum Arbeitsblatt gelangen. Alternativ kann dieser Einstieg vom Einstiegbild
des Menu Painters aus erfolgen.

Sämtliche Objekte einer Kategorie anzeigen


Wenn Sie beispielsweise ein oder mehrere Menüs innerhalb einer Benutzungsoberfläche pflegen
möchten, können Sie über Springen → Menüliste auf die vollständige Menüliste zugreifen. Die
Menüliste enthält alle Menüs eines Programms. Von der Liste aus können Sie Menüs anlegen,
löschen oder kopieren. Sie können ein Menü auch mit Doppelklick auf den Menünamen zum
Bearbeiten auswählen.

Oberflächenobjekte löschen
Um ein Teilobjekt zu löschen, müssen Sie das Teilobjekt explizit von der Liste löschen. Über
Oberfläche → Löschen → Teilobjekt können Sie jedes Teilobjekt in einer Anzeigeliste
löschen. Wird das entsprechende Objekt noch irgendwo im Programm verwendet, gibt das
System eine Warnmeldung aus. Sie können dann den Löschvorgang bestätigen oder über
Verwendungsnachweis eine Liste mit allen Fundstellen des Objekts anzeigen.
Wenn Sie ein Objekt aus einer Liste löschen, löscht das System das Objekt und alle
Zuordnungen zur Oberfläche Ihres Programms.

Nicht verwendete Objekte ermitteln und löschen


Die Funktion Nicht verwendete Objekte erzeugt eine Liste mit allen Objekten, die in Ihrer
Oberfläche zwar definiert sind, aber nicht verwendet werden. Um diese Funktion auszuführen,
wählen Sie Hilfsmittel → Nicht verwendete Objekte. Das System zeigt eine Liste der nicht
verwendeten Objekte an. Befindet sich der Menu Painter im Änderungsmodus, können Sie nicht
verwendete Objekte direkt von der Liste aus löschen.

April 2001 393


BC - ABAP Workbench: Werkzeuge SAP AG
Bereichsmenüpflege ab Release 4.6A

Bereichsmenüpflege ab Release 4.6A


Überblick zur neuen Bereichsmenüpflege [Extern]
Bereichsmenü anlegen [Extern]
Bereichsmenü bearbeiten [Extern]
Menüeinträge einfügen [Extern]
Menüeinträge bearbeiten [Extern]
Menüs importieren [Extern]
Bereichsmenü erweitern [Extern]
Prüfung auf Endlosstrukturen [Extern]
Objektkatalogeintrag [Extern]
Bereichsmenü übersetzen [Extern]
Bereichsmenü anzeigen [Extern]
Zusatzinformationen zu Menüeinträgen [Extern]
Zusatzinformationen zu Berichten [Extern]
Favoriten nutzen [Extern]
Pufferung des Bereichsmenüs [Extern]
Bereichsmenü transportieren [Extern]
Tipps und Tricks [Extern]

394 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Funktionen

Funktionen
Die Ausführung einer Funktion erfolgt, wenn Sie in einem Menü eine Funktion, eine
Funktionstaste oder eine Drucktaste auswählen. Um die Verknüpfung zwischen dem
Oberflächenelement (Menüeintrag, Funktionstaste oder Drucktaste) und dem eigentlichen ABAP-
Programm zu realisieren, wird beim Anlegen der Oberflächenelemente im Menu Painter jeder
Funktion ein eindeutiger Funktionscode zugeordnet. Dieser wird beim Auslösen der
entsprechenden Funktion zur Laufzeit dem Systemfeld SY-UCOMM (Typ 1-Programme) bzw.
dem OK_CODE-Feld (Dialogprogrammierung) übergeben und kann dann vom ABAP-Programm
interpretiert werden.

Definition einer Funktion


Zur Definition einer Funktion auf einer Oberfläche gehören folgende Komponenten:
• Funktionscode: eindeutiger Schlüssel für die Funktion, der vom ABAP-Programm
interpretiert werden kann.
• Funktionstyp: dient der Ablaufsteuerung. Er teilt dem System mit, wann oder wie eine
Funktion ausgeführt wird. (Siehe auch: Funktionstypen verwenden [Seite 396])
• Funktionstext: beschreibender Text für die Funktion (z.B. Sichern).
• Ikonenname: Name der Ikone, die auf einer Drucktaste ausgegeben werden soll.
• Ikonentext: Text, der zusätzlich zur Ikone auf einer Drucktaste ausgegeben werden soll.
• Infotext: Text, der in der Statuszeile ausgegeben werden soll.
• Direktanwahl: Zugriff auf einen Menüpfad mit Hilfe einer Buchstabenkombination ohne
Verwendung der Maus. Siehe dazu Direktanwahl definieren [Seite 397].

Weitere Spezifizierung
• Bei der Definition eines Status können Funktionen aktiviert und deaktiviert werden
(Siehe auch: Funktionen aktivieren und deaktivieren [Seite 398]). Dies erlaubt die
Benutzung der gleichen vordefinierten Menüleisten, Drucktastenleisten und
Tastenzuordnungen auf allen Status einer Anwendung, da Funktionen, die in einem
Status nicht unterstützt werden, deaktiviert werden.
• Weiterhin können Funktionen dynamisch deaktiviert werden. Dadurch brauchen Sie
keinen weiteren Status anzulegen, wenn Sie nur einzelne Funktionen deaktivieren wollen
(Siehe auch: Funktion zur Laufzeit deaktivieren [Seite 400])
• Um zusätzlich noch die Dynamik eines Status zu erhöhen, können Sie auch die
Funktionstexte und die Menütexte dynamisch verändern (Siehe auch: Dynamische
Funktionstexte definieren [Seite 401] und Dynamischen Menütext definieren [Seite 403]).

April 2001 395


BC - ABAP Workbench: Werkzeuge SAP AG
Funktionstypen verwenden

Funktionstypen verwenden
Wenn Sie Funktionen anlegen, definieren Sie einen Funktionscode und einen Funktionstext.
Wenn der Benutzer eine Funktion auswählt, stellt das System den Funktionscode in das
Systemfeld SY-UCOMM. Der Code macht dem System die Funktionen bekannt, die der Benutzer
ausgewählt hat.
Sie können Ihre Funktionen auch einem Typ zuordnen. Funktionstypen teilen dem System z.B.
mit, wann oder wie eine Funktion ausgeführt werden soll. Es gibt folgende Funktionstypen:
Typ Bedeutung
Normale Funktionscodebehandlung durch das ABAP-Programm (z.B. in einem PAI-
Modul)
E Löst ein “at exit-command”-Modul im PAI-Bereich (Process After Input) des Dynpros
aus (MODULE <xxx> AT EXIT-COMMAND). Wählt der Benutzer eine Funktion des
Typs E, führt das System vor der Durchführung von Eingabeprüfungen das “at exit-
command”-Modul aus.
T Ruft eine Transaktion auf. Aktivierung einer Funktion vom Typ T hat die gleiche
Wirkung wie die Anweisung LEAVE TO TRANSACTION. Der Benutzer kann nicht zur
ursprünglichen Transaktion zurückkehren.
S Löst Systemfunktionen aus, die intern in SAP-Standardanwendungen verwendet
werden. Sie sollten den Typ S nicht für Ihre eigenen Funktionen verwenden.
P Das Ergebnis eines solchen Funktionsaufrufs ist das Auslösen einer lokal auf dem GUI
definierten Funktion. Die Funktion wird nicht an das ABAP-Programm weitergereicht
(kein SY-UCOMM bzw OK_CODE), sondern wird auf dem GUI interpretiert. Dies ist
zur Zeit nur bei TabStrips (Screen Painter) möglich, wenn diese entsprechend
definiert wurden.

Funktionstypen zuordnen
So ordnen Sie bei geöffnetem Status Funktionstypen zu:
1. Wählen Sie eine Funktion mit dem Cursor aus und führen Sie einen Doppelklick aus.
Auf dem Dialogfenster Funktionsattribute erhalten Sie einen Überblick über alle
Funktionsattribute.
2. Wählen Sie im Feld Funktionstyp einen Funktionstyp aus.
3. Verlassen Sie das Dialogfenster mit ENTER.

396 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Direktanwahl definieren

Direktanwahl definieren
Bei der Direktanwahl können Sie über einen einzelnen Buchstaben oder über eine Kombination
von Buchstaben einen Menüpfad angeben und damit auf Funktionen eines Menüs zugreifen,
ohne dabei die Maus zu verwenden.

Beispiel
Sie können die Funktion Löschen im aktiven Menü Bearbeiten mit dem Buchstaben L angeben.
Sie können auch den gesamten Menüpfad mit der entsprechenden Buchstabenkombination und
einem vorangestellten Punkt erreichen. In unserem Fall geben Sie Kombination.BL im
Eingabefeld ein.

Regeln
• Der Buchstabe für die Direktanwahl einer Funktion muß innerhalb einer Menüleiste für
die Menüs und innerhalb eines Menüs für die jeweiligen Menüfunktionen eindeutig sein.
• Der Buchstabe muß im vollständigen Namen der Funktion enthalten sein. Für die
Funktion Anlegen können Sie beispielsweise nicht den Buchstaben Z für die
Direktanwahl definieren.

Bei DoubleByte-Sprachen wird bei Direktanwahl die englische Version


übernommen. Das Frontend zeigt im Menü den DoubleByte-Text und in Klammern
den englischen Buchstaben für die Direktanwahl an.

Direktanwahl pflegen

Eine Direktanwahl muß nicht explizit gepflegt werden. Sobald Sie die Oberfläche
generieren, legt das System automatisch eine Direktanwahl mit Vorschlagswerten
fest. Falls erforderlich, können Sie die Direktanwahl ändern.

1. Um die Direktanwahl zu pflegen, öffnen Sie das Statusarbeitsblatt.


2. Wählen Sie dann Springen → Objektlisten → Direktanwahl.
Das System verzweigt zum Pflegebild der Direktanwahl, wo Sie für jede Funktion eine
Direktanwahl angeben können.
3. Über die Funktion Direktanw. vorschlagen können Sie Vorschläge zur Direktanwahl in
Ihrer gesamten Benutzeroberfläche einblenden.
4. Sichern Sie ihre Eingaben.

April 2001 397


BC - ABAP Workbench: Werkzeuge SAP AG
Funktionscode aktivieren und deaktivieren

Funktionscode aktivieren und deaktivieren


Funktionen können über ihren Funktionscode innerhalb eines GUI-Status aktiv oder inaktiv
geschaltet werden. Aktive Funktionen sind ausführbare Funktionen, inaktive Funktionen können
nicht ausgeführt werden. Sobald sich der Modus einer Anwendung ändert und eine Funktion
nicht länger ausführbar ist, sollten Sie diese Funktion deaktivieren. So sollte beispielsweise im
Anzeigemodus die Löschfunktion nicht aktiv sein.
Sind nicht aktive Funktionen der Drucktastenleiste zugeordnet, werden diese Funktionen dort
nicht angezeigt, sofern für die Drucktastenleiste keine Ortskonstanz definiert wurde. Siehe auch
Ortskonstanz definieren [Seite 383].
Inaktive Funktionen in der Symbolleiste stellt das System zur Laufzeit grau dar.
Inaktive Funktionen werden innerhalb eines Menüs grau angezeigt. Sie können Menüoptionen
innerhalb des Menu Painters aktivieren oder deaktivieren. Sie können Funktionen auch zur
Laufzeit deaktivieren. Näheres dazu finden Sie unter Funktion zur Laufzeit deaktivieren [Seite
400].
Sie können Funktionen aktivieren oder deaktivieren für
• einzelne Funktionen in einem Status.
• mehrere Funktionen in einem Status, z.B. nach Übernahme der Menüleiste,
Drucktastenleiste oder F-Tastenbelegung.
• einzelne Funktionen in mehreren Status einer Anwendung, wenn z.B. in einem mehrfach
verwendeten Menü, neue Funktionen hinzugefügt werden sollen.

Vorgehnsweise
So gehen Sie vor, um den Funktionscode im Statusarbeitsblatt zu aktivieren bzw. zu
deaktivieren:

Einzelne Funktionen
1. Positionieren Sie den Cursor auf der entsprechenden Funktion in der Auflistung.
2. Wählen Sie dann den Menüpfad Zusätze → Funktion Aktiv <-> Inaktiv.
Damit ändert sich die Schriftfarbe der Funktionscodes - und der Funktionsbezeichnung. Das
System aktiviert nun inaktive Funktionen bzw. deaktiviert aktive Funktionen.

Mehrere Funktionen
1. Um mehrere Funktionen im aktuellen Status zu aktivieren bzw. zu deaktivieren, wählen Sie
Zusätze → Aktive Funktionen im aktuellen Status. Das System zeigt eine Liste mit allen
aktiven Funktionen an, die im Status verwendet werden.
2. Sie können nun den Funktionscode für eine Auswahl von Funktionen deaktivieren, indem Sie
die Markierung für das entsprechende Ankreuzfeld aufheben.
3. Wählen Sie Übernehmen.

Für mehrere Status


1. Um einen Funktionscode in mehreren Status zu aktivieren bzw. zu deaktivieren, wählen Sie
Zusätze → Aktive Funktionen in mehreren Status.

398 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Funktionscode aktivieren und deaktivieren

2. Geben Sie einen Funktionscode ein.


3. Wählen Sie Weiter.
Das System erzeugt eine Liste mit allen Status des Anwendungsprogramms, in denen der
Funktionscode vorkommt.
4. Markieren Sie die Status, in denen die Änderung vorgenommen werden soll.
5. Wählen Sie Übernehmen.

April 2001 399


BC - ABAP Workbench: Werkzeuge SAP AG
Funktion zur Laufzeit deaktivieren

Funktion zur Laufzeit deaktivieren


Sie können Funktionen dynamisch zur Laufzeit deaktivieren. Dazu muß beim Setzen des GUI-
Status der Zusatz EXCLUDING verwendet werden. Weiterhin können einzelne Funktionen oder
gar eine Gruppe von Funktionen zur Laufzeit deaktiviert werden.

Einzelne Funktion deaktivieren


Angenommen, Sie haben einen GUI-Status ANLEGEN. Dieser Status hat die Menüoption
Listbearbeitung mit dem Funktionscode LIST. Falls Listbearbeitung standardmäßig aktiv ist,
können Sie es zur Laufzeit mit der folgenden Anweisung deaktivieren:
SET PF-STATUS 'ANLEGEN' EXCLUDING 'LIST'.
Falls Listbearbeitung in einem Menü enthalten ist, zeigt das System diese Funktionen grau an.
Ist die Funktion auch einer Drucktaste zugeordnet, wird diese Drucktaste nur dann angezeigt,
wenn für die Drucktastenleiste Ortskonstanz definiert wurde. Siehe auch Ortskonstanz definieren
[Seite 383].

Gruppe von Funktionen deaktivieren


Sie können auch mehrere Funktionen auf einmal deaktivieren, indem Sie eine interne Tabelle mit
entsprechenden Funktionscodes füllen, die Sie deaktivieren möchten. Dazu verwenden Sie für
das obige Beispiel mit der interenen Tabelle itab folgende Anweisung:
SET PF-STATUS 'ANLEGEN' EXCLUDING itab.

Weitere Informationen zum dynamischen Deaktivieren von Funktionen finden Sie in


der F1-Hilfe zur Anweisung SET PF-STATUS.

400 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Dynamische Funktionstexte definieren

Dynamische Funktionstexte definieren


Sie können dynamische Texte für Menüs und Funktionen definieren, wenn der Text zur Laufzeit
geändert werden soll. Für dynamische Texte müssen Sie in Ihrem ABAP-Programm ein Feld
definieren, das zur Laufzeit mit dem gewünschten Text gefüllt werden soll.
Verwenden Sie bei der Definition der entsprechenden ABAP-Felder die Struktur SMP_DYNTXT.
Beispiel:
DATA: TEXT_1 LIKE SMP_DYNTXT,
TEXT_2 LIKE SMP_DYNTXT.

Vorgehensweise
So definieren Sie einen dynamischen Text für einen Funktionsnamen vom Arbeitsblatt aus:
1. Positionieren Sie den Cursor auf eine leere Funktionszeile.
2. Wählen Sie Bearbeiten → Einfügen → Funktion mit dyn. Text.
Das System zeigt das Dialogfenster Funktion mit dynamischem Funktionstext einfügen
an.
3. Tragen Sie einen Funktionscode ein.
4. Wählen Sie Weiter.
Das System zeigt das Dialogfenster Funktionstext eingeben an.
5. Tragen Sie den Namen eines Programm- oder Dictionary-Feldes ein.
6. Wählen Sie Weiter.
Das System zeigt das Feld in <> (spitzen Klammern) an:

Wie Sie einen dynamischen Text für ein Menü anlegen, erfahren Sie unter
Dynamischen Menütext definieren [Seite 403] .

Funktionstexte ändern
Sie können einen statischen Namentext in einen dynamischen umwandeln, und umgekehrt. So
wandeln Sie einen statischen Text in einen dynamischen Text um:
1. Wählen Sie die entsprechende Funktion aus und führen Sie einen Doppelklick auf der
entsprechenden Zeile aus.
Das Dialogfenster Funktionsattribute erscheint.

April 2001 401


BC - ABAP Workbench: Werkzeuge SAP AG
Dynamische Funktionstexte definieren

2. Führen Sie die Funktion Textart ändern aus.


3. Tragen Sie den Namen eines Programm- oder Dictionary-Feldes in das Feld Feldname
ein.
4. Wählen Sie Weiter.
Das System zeigt den dynamischen Text in spitzen Klammern <> an.

Da der Feldname zur Aufnahme des Funktionsnamens bis zu 132 Bytes lang sein
darf, kann das System das Feld nicht immer in voller Länge anzeigen. Sie können
den Feldnamen ändern, indem Sie den Funktions- oder Menünamen durch
Doppelklick auswählen.

402 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Dynamischen Menütext definieren

Dynamischen Menütext definieren


Sofern Sie den Menütext dynamisch in Ihrem Programm ändern wollen, können Sie einen
dynamischen Menütext vergeben, den Sie zur Laufzeit des Programms bestimmen. Gehen Sie
dazu wie folgt vor.
1. Verzweigen Sie in den Änderungsmodus des Menu Painters und öffnen Sie die
Menüleiste.
2. Positionieren Sie den Cursor in der Menüleiste auf einem freien Feld.
3. Führen Sie die Funktion Bearbeiten → Einfügen → Menü mit dyn. Text aus.
4. Tragen Sie eine Kurzbeschreibung in das Feld Kurzdokumentation und den Namen
eines Programm- oder Dictionary-Feldes in das Feld Feldname ein.
5. Verlassen Sie das Dialogfenster mit ENTER.

April 2001 403


BC - ABAP Workbench: Werkzeuge SAP AG
GUI-Status und GUI-Titel setzen

GUI-Status und GUI-Titel setzen


Mit dem GUI-Status und GUI-Titel legen wir einen konkreten Zustand der Benutzungsoberfläche
eines ABAP-Programms fest. Erst mit einem gesetzten Status sind alle dem Status
zugeordneten Funktionen auswählbar. Mit den beiden ABAP-Anweisungen:
• SET PF-STATUS
• SET TITLEBAR
legen Sie im PBO-Modul (Process Before Output) einen Titel und einen Status zu einem Dynpro
fest. Weitere Informationen erhalten Sie mit der F1-Hilfe.

Beispiel
Angenommen, Ihr Programm enthält das Dynpro 100. Soll das Dynpro mit den Menüs,
Symbolleiste und Drucktastenleiste des Status CREATE angezeigt werden, müssen Sie im PBO-
Modul des Dynpros 100 folgende Anweisung eingeben:
SET PF-STATUS 'CREATE'.
Um das Dynpro 100 mit der Titelleiste ‘100’ aufzurufen, fügen Sie die folgende Anweisung im
gleichen PBO-Modul ein:
SET TITLEBAR '100'.

Ein gesetzter GUI-Status oder GUI-Titel bleibt solange gültig, bis Sie einen neuen
GUI-Status oder -Titel explizit gesetzt haben. Wenn Sie in obigem Beispiel Dynpro
200 aufrufen, ohne einen neuen Status angelegt zu haben, wird das Dynpro 200 also
mit dem GUI-Status CREATE und Titelleiste 100 angezeigt.

Dieselbe Oberfläche in mehreren Programmen


Wenn Sie einen GUI-Status oder einen GUI-Titel aus einem anderen ABAP-Programm
übernehmen möchten, verwenden Sie die entsprechende SET-Anweisung mit dem Zusatz OF
PROGRAM. Weitere Informationen hierzu, erhalten Sie mit der F1-Hilfe zur SET-Anweisung.

404 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Funktionscodeabfrage im Programm

Funktionscodeabfrage im Programm
Wenn Sie neue Funktionen für Menüs oder die Symbol- und Drucktastenleisten anlegen, müssen
Sie jeder Funktion einen eindeutigen Funktionscode zuweisen. Dieser Code steht im Systemfeld
SY-UCOMM und im Dynprofeld OK_CODE, wenn die Funktion von der Oberfläche (etwa mit
einer Menüauswahl) ausgelöst wurde.
Das Systemfeld SY-UCOMM enthält immer den aktuellen Funktionscode. Für dieses Feld
müssen Sie in Ihrem Modulpool keine Datenzuweisung vornehmen.

OK_CODE
Das Feld OK_CODE enthält den Funktionscode in Ihrem Programm. OK_CODE ist immer das
letzte Feld in der Feldliste eines Dynpros. Diesem Feld müssen Sie im Screen Painter einen
Namen zuordnen. Traditionell lautet der Name für dieses Feld auch "OK_CODE". Sie können
allerdings einen anderen Namen wählen. Nach der Zuordnung des Namens ist für das Feld
OK_CODE in Ihrem Modulpool eine Datenzuweisung vorzunehmen.

Beispiel
Enthält Ihr GUI-Status beispielsweise die Funktionscodes ‘BACK’, ‘EXIT’ und ‘SAVE’, müssen
Sie in Ihrem PAI-Modul folgendes eingeben:
MODULE USER_COMMAND_0100.
CASE OK_CODE.
WHEN 'BACK'.
...
WHEN 'EXIT'.
...
WHEN 'SAVE'.
...
ENDCASE.
ENDMODULE.

April 2001 405


BC - ABAP Workbench: Werkzeuge SAP AG
Function Builder

Function Builder
Mit Hilfe des Function Builders der ABAP Workbench können Sie in der Bibliothek bereits
vorliegende Bausteine verwalten, neue Funktionsbausteine entwickeln und Bausteine in der
integrierten Testumgebung testen.

Wenn Sie den Function Builder im Zusammenhang mit dem Modifikationsassistenten


einsetzen möchten, lesen Sie die Dokumentation Funktionsbausteine modifizieren
[Extern].

406 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Übersicht über Funktionsbausteine

Übersicht über Funktionsbausteine


Funktionsbausteine sind ABAP-Routinen die in einer zentralen Funktionsbibliothek verwaltet
werden. Sie sind anwendungsübergreifend und systemweit verfügbar. Die ABAP Workbench
verfügt über eine Vielzahl von Standard-Funktionsbausteinen.
Ähnlich wie Form-Routinen kapseln Funktionsbausteine den Programmcode und stellen eine
Schnittstelle für den Datenaustausch bereit.
Zwischen Funktionsbausteinen und Form-Routinen bestehen aber wesentliche Unterschiede:

• Funktionsbausteine müssen einem Funktionen-Pool, der Funktionsgruppe zugeordnet


werden.
• Funktionsbausteine besitzen eine eindeutig definierte Schnittstelle zur Datenübertragung.
Durch diese Schnittstelle wird die Weitergabe von Eingabe- und Ausgabeparametern
erleichtert und standardisiert.
Sie können beispielsweise den Eingabeparametern eines Funktionsbausteins Vorgabewerte
zuweisen. Die Schnittstelle unterstützt auch die Ausnahmenbehandlung. Mit Ausnahmen
können mögliche Fehler abgefangen und deren Behandlung nach außen an das aufrufende
Programm abgegeben werden.
• Funktionsbausteine verfügen über einen separaten Speicherbereich. Das aurufende
Programm und der aufgerufene Funktionsbaustein können Daten nicht über einen
gemeinsamen Speicherbereich, sondern nur über Schnittstellen austauschen. Damit werden
auch unerwünschte Seiteneffekte wie etwa das Überschreiben von Datenfeldern vermieden.
• Der Aufruf eines Funktionsbausteins erfolgt über seinen Namen. Die Namen von
Funktionsbausteinen müssen systemweit eindeutig sein.
Mit Hilfe des Function Builders können Sie neue Funktionsbausteine entwickeln, testen und
dokumentieren. Darüber hinaus können Sie über den Function Builder Informationen über
bestehende Funktionsbausteine anzeigen:

Verwaltung Enthält Informationen über die Entwicklungsklasse, die Person, die für
den Baustein verantwortlich ist, eine Kurzbeschreibung des Bausteins.
Import Enthält eine Liste aller Formalparameter, die für die Datenübergabe
an einen Funktionsbaustein verwendet werden. Weitere Informationen
hierzu finden Sie in Informationen über Schnittstellenparameter
anzeigen [Seite 415].
Export Enthält eine Liste aller Formalparameter, die für die Datenübergabe
aus einem Funktionsbaustein an Ihr Programm verwendet werden.
Weitere Informationen hierzu finden Sie in Informationen über
Schnittstellenparameter anzeigen [Seite 415].
Changing Enthält eine Liste aller Formalparameter, die für die Datenübergabe
an einen Funktionsbaustein und zurück verwendet werden. Weitere
Informationen hierzu finden Sie in Informationen über
Schnittstellenparameter anzeigen [Seite 415].

April 2001 407


BC - ABAP Workbench: Werkzeuge SAP AG
Übersicht über Funktionsbausteine

Tabellen Gibt an, welche Tabellen an Funktionsbausteine übergeben werden.


Tabellen werden immer als Referenz übergeben. Weitere
Informationen hierzu finden Sie in Informationen über
Schnittstellenparameter anzeigen [Seite 415].
Ausnahmen Gibt an, wie mit Ausnahmen verfahren wird. Weitere Informationen
hierzu finden Sie in Informationen über Schnittstellenparameter
anzeigen [Seite 415].
Dokumentation Sie erhalten Informationen über die Schnittstelle und Ausnahmen.
Quelltext Quelltext des Bausteins.
Globale Daten Gibt die globalen Daten an, die der Funktionsbaustein verwendet.
Rahmenprogramm Quelltext des Rahmenprogramms.

Eine wesentliche Rolle spielen Funktionsbausteine bei der Modularisierung von Anwendungen.
Eine Funktionalität kann in einer Modularisierungseinheit zusammengefaßt werden.
Mit der Modularisierungstechnik können zum einen Redundanzen vermieden werden, zum
anderen wird die Struktur von Programmen und deren Lesbarkeit verbessert.
Modularisierte Programme sind auch leichter zu pflegen und zu aktualisieren.
Das Prinzip der Modularisierung:

Nicht Modularisiert Modularisiert

PROGRAM ... PROGRAM ...


..... .....
Aufruf Modularisierungseinheit
Anweisungs-
block .....
Aufruf Modularisierungseinheit
..... .....
Aufruf Modularisierungseinheit
Anweisungs-
block .....
.....
Modularisierungseinheit
Anweisungs-
block
Anweisungs-
block
.....

Funktionsgruppen
Im Function Builder werden logisch zusammengehörende Funktionsbausteine in
Funktionsgruppen verwaltet. Sie dienen ausschließlich als Container für Funktions-bausteine.

408 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Übersicht über Funktionsbausteine

Funktionsgruppen können auch globale Datendeklarationen und Unterprogramme enthalten, die


allen Funktionsbausteinen einer Funktionsgruppe gemeinsam zur Verfügung stehen.
Die folgende Abbildung zeigt, wie Funktionsbausteine innerhalb einer Funktionsgruppe
organisiert sind.

Funktionsbausteine - Organisation
INCLUDE L<fgrp>TOP. FUNCTION-POOL < fgrp >.
TABLES: ....
TYPES: ....
DATA: ....

FUNCTION <name>.
INCLUDE L<fgrp>UXX. INCLUDE L< fgrp >U01 .....
INCLUDE L< fgrp >U02 ENDFUNCTION.
INCLUDE L< fgrp >U03
.......

INCLUDE L<fgrp>FXX. FORM ...


.....
ENDFORM.

INCLUDE .......... ......

Rahmenprogramm SAPL<fgrp>

Mit jeder Funktionsgruppe <fgrp> wird gleichsam ein Rahmenprogramm vom System erstellt, der
die Bezeichnung SAPL<fgrp> erhält.
Das Rahmenprogramm enthält lediglich INCLUDE-Anweisungen für die folgenden INCLUDE-
Programme:
• Im INCLUDE-Programm L<fgrp>TOP werden globale Daten für die Funktionsgruppe
deklariert.
• Im INCLUDE-Programm L<fgrp>UXX werden die einzelnen Funktionsbausteine
aufgenommen. Die Nummerierung XX richtet sich nach der zeitlichen Reihenfolge der
Aufnahme der Funktionsbausteine. So enthalten die INCLUDES L<fgrp>U01, L<fgrp>U02
das Coding der beiden ersten Funktionsbausteine der Funktionsgruppe.
• Die INCLUDE-Programme L<fgrp>F01, L<fgrp>F02,... können zur Codierung von
Unterprogrammen (Forms) verwendet werden, auf die alle Funktionsbausteine der Gruppe
durch interne Aufrufe zugreifen können.

Funktionsgruppen anzeigen
Um eine Funktionsgruppe anzuzeigen, wählen Sie auf dem Einstiegsbild des Function Builders
Springen → FGruppenverwaltung → Gruppe anzeigen. Das System fordert Sie in einem
Dialogfenster auf, den Namen der Funktionsgruppe einzugeben.

April 2001 409


BC - ABAP Workbench: Werkzeuge SAP AG
Übersicht über Funktionsbausteine

410 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Einstiegsbild des Function Builders

Einstiegsbild des Function Builders

1. Verzweigen Sie in die ABAP-Workbench.


2. Wählen Sie die Funktion Function Builder.
Das System zeigt das Einstiegsbild des Function Builders an:

3. Geben Sie den Namen eines Funktionsbausteins ein, den sie neu anlegen, testen oder
dessen Teilobjekte Sie anzeigen bzw. ändern wollen.
Für die Auswahl von Teilobjekten stehen folgende Verzweigungen zur Verfügung:

Schnittstelle Auflistung von Schnittstellenparametern (Import, Export,


Tabellen, Ausnahmen), Attributangaben und Dokumentation der
Parameter.
Eine Erweiterung der Parameterliste ist im Änderungs modus
möglich.

April 2001 411


BC - ABAP Workbench: Werkzeuge SAP AG
Einstiegsbild des Function Builders

Quelltext Übergang zum Quelltext des zwischen function


und endfunction definierten Funktionsbausteins.
Globale Daten Verzweigung zum TOP-Include der zugehörigen
Funktionsgruppe, in dem deren globale Daten deklariert sind.
Rahmenprogramm Verzweigung zum Rahmenprogramm mit Auflistung der Include-
Files

4. Wählen Sie eine Verzweigung aus der Liste der Teilobjekte aus.
5. Wählen Sie entweder die Funktion Anzeigen oder Ändern.

412 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Funktionsbausteine suchen

Funktionsbausteine suchen
Bevor Sie eine neue Anwendung anlegen, können Sie im Function Builder nach bereits
bestehenden Funktionen suchen, die Ihre Anforderungen erfüllen. Hierzu verwenden Sie das
Repository-Informationssystem oder die Anwendungshierarchie.

Das Repository-Informationssystem verwenden


Um nach einem Baustein zu suchen, wählen Sie auf dem Einstiegsbild des Function Builders die
Funktion Suchen. Das System zeigt das Standardselektionsbild für Funktionsbausteine an.
Das Selektionsbild des Repository-Informationssystems enthält eine Reihe von
Selektionsmöglichkeiten. Beim ersten Aufruf des Bildes werden nur einige dieser
Selektionsmöglichkeiten angezeigt. Um alle Selektionsmöglichkeiten anzuzeigen, wählen Sie
Bearbeiten → Alle Selektionen.

Geben Sie für eine Schnellsuche eine Funktionsgruppe oder eine Entwicklungsklasse ein. Sie
können Ihre Suche auch auf bestimmte Funktionsbausteine beschränken. Sie können z.B. nach
Bausteinen für Remote Function Calls suchen oder nach Bausteinen, die in Verbuchungstasks
verwendet werden.
Sie können auch eine Liste erstellen, in der nur die Funktionsbausteine enthalten sind, die für
den Kunden freigegeben sind. Weitere Informationen über die Suche mit Hilfe des Repository
finden Sie in Das Repository-Infosystem [Seite 498].

April 2001 413


BC - ABAP Workbench: Werkzeuge SAP AG
Funktionsbausteine suchen

Die Anwendungshierarchie verwenden


Sie können auch mit Hilfe der Anwendungshierarchie der ABAP Workbench nach
Funktionsbausteinen suchen. Die Anwendungshierarchie bietet einen Überblick über alle
Anwendungen Ihres R/3-Systems. Mit Hilfe dieser Hierarchie können Sie Funktionsbausteine
anzeigen, die mit bestimmten Anwendungen verbunden sind. Gehen Sie dazu wie folgt vor:
Die Anwendungshierarchie [Seite 505]
1. Führen Sie auf dem Einstiegsbild des Function Builders auf dem Feld Funktionsbaustein
oder auf dem Feld CALL FUNCTION des Anweisungsmusters die F4-Hilfe aus.
2. Wählen Sie auf dem Dialogfenster Eingabehilfe persönliche Werthilfe die Funktion SAP-
Anwendungen aus.
Sie verzweigen in die SAP-Anwendungshierarchie.
3. Verzweigen Sie in der Anwendunshierarachie bis zum untersten Knoten und wählen Sie
dort mit Doppelklick einen Funktionsbaustein aus.
Sie kehren zum Ausgangspunkt der Suche zurück und der selektierte Funktionsbaustein
wird automatisch eingesetzt.

414 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Informationen über Schnittstellenparameter anzeigen

Informationen über Schnittstellenparameter anzeigen


Die Schnittstelle eines Funktionsbausteins gibt an, wie Sie diesen Baustein von Ihrem Programm
aus verwenden können. Bevor Sie einen Baustein verwenden, sollten Sie über die
Programmierschnittstelle des Bausteins Bescheid wissen. Es gibt fünf verschiedene
Schnittstellenparameter:
Name Bedeutung
Import Werte, die vom aufrufenden Programm an den Funktionsbaustein
übergeben werden. Sie können den Inhalt von Importparamtern zur Laufzeit
nicht überschreiben.
Export Werte, die vom Funktionsbaustein an das aufrufende Programm
übergegeben werden.
Changing Werte, die gleichzeitig als Import- und Exportparameter fungieren. Der
Originalwert eines Changing-Parameters wird vom aufrufenden Programm
an den Funktionsbaustein übergeben. Der Funktionsbaustein kann diesen
Wert ändern und ihn dann an das aufrufende Programm zurückgeben.
Tabellen Interne Tabellen, die sowohl importiert als auch exportiert werden können.
Der Inhalt interner Tabellen wird vom aufrufenden Programm an den
Funktionsbaustein übergeben. Der Funktionsbaustein kann den Inhalt der
internen Tabelle ändern und dann an das aufrufende Programm
zurückgeben. Die Übergabe erfolgt hier immer als Adreßübergabe.
Ausnahmen Fehlersituationen, die bei einem Funktionsbaustein auftreten können.
Das aufrufende Programm fragt über Ausnahmen ab, ob Fehler im
Funktionsbaustein aufgetreten sind und kann danach geeignet verfahren.

Um herauszufinden, welche Parameter für den Aufruf eines Funktionsbausteins erforderlich sind,
geben Sie im Einstiegsbild des Function Builders den Namen des Funktionsbausteins ein und
wählen die Teilkomponente Schnittstelle aus.
Die folgende Anzeige bringt verschiedene Teilsichten hervor, die weiterführende Informationen
zur Schnittstelle (Verwaltung, Formalparameter, Ausnahmen und Dokumentation) enthalten. In
unserem Beispiel bekommen wir eine Liste aller Import-Parameter und deren weitere
Charakterisierung angezeigt:

April 2001 415


BC - ABAP Workbench: Werkzeuge SAP AG
Informationen über Schnittstellenparameter anzeigen

Von besonderer Bedeutung ist hier die Information darüber, welche der Parameter der Liste beim
Funktionsaufruf auf jeden Fall versorgt werden müssen. Dazu dient das Ankreuzfeld Optional.
Ist dieses Feld nicht markiert, so muß der entsprechende Parameter beim Funtionsaufruf
berücksichtigt werden.
Durch Auswählen der Teilsichten Changing und Tabellen erhalten Sie auch Informationen,
welche Changingparameter und Tabellen übergeben werden müssen und welche optional sind.
Da Exportparameter des Funktionsbausteins immer optional sind, entfällt hier das entsprechende
Ankreuzfeld.
Weiterhin kann der Datentyp der Formalparameter duch einen Verweis auf Datentypen aus dem
Typ-Pool, vorgegeben werden. Ein Typ-Pool wird innerhalb des ABAP Dictionary gepflegt und
erlaubt es, benutzerspezifische Datentypen global zu definieren. Ein Typ-Pool muß allerdings im
TOP-Include der Funktionsgruppe aufgenommen werden, um eine Verwendung dieser
vordefinierten Datentypen für Formalparameter zu gewährleisten. Diese vorgegebenen
Datentypen der Formalparameter können im Feld Bezugstyp aufgeführt werden.
Unter Bezugsfeld/-struktur sind ABAP Dictionary-Referenzstrukturen angegeben, damit das
System zur Laufzeit den aktuellen Parameter mit der entsprechenden Struktur bzw. mit dem Feld
aus dem Dictionary vergleichen kann.
Das Feld Vorschlag definiert einen Standardwert zum Parameter. Unter Referenz wird
angegeben, ob der Parameter als Referenz oder als Wert aufgerufen wird.

416 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Informationen über Schnittstellenparameter anzeigen

Weitere Informationen zur Charakterisierung der Parameter erhalten Sie unter Parameter und
Ausnahmen festlegen [Seite 427].

Die Teilsicht Dokumentation enthält kurze Informationen über die Bedeutung der Parameter und
Ausnahmen. Mit einem Doppelklick auf einen bestimmten Parameter oder eine Ausnahme
erhalten Sie hierzu weiterführende Informationen.
Eine ausführliche Beschreibung der Aufgabe des Funktionsbausteins erhalten Sie, indem Sie
das Feld Kurztext mit Doppelklick auswählen oder die Funktion Fbausteindoku. wählen. Es
erscheint ein Dokumentationstext für den gesamten Funktionsbaustein.

Attribute der Bausteine anzeigen


Über die Teilsicht Verwaltung des Funktionsbausteins können Sie die Attribute eines
Funktionsbausteins anzeigen. Folgende Verwaltungsinformationen sind für Funktionsbausteine
verfügbar:
• Funktionsgruppe
• Ablaufart
• Status
Wenn Sie alle Schnittstelleninformationen eines Funktionsbausteins ausdrucken möchten,
wählen Sie Funktionsbaustein → Drucken. Hier können Sie nun angeben, welche Informationen
des Funktionsbausteins Sie drucken möchten (Dokumentation, Coding usw.).

April 2001 417


BC - ABAP Workbench: Werkzeuge SAP AG
Funktionsbausteine aus Ihrem Coding aufrufen

Funktionsbausteine aus Ihrem Coding aufrufen


Mit folgender ABAP-Anweisung können Sie einen Funktionsbaustein aus einem ABAP-
Programm heraus aufrufen:
CALL FUNCTION <funktionsbaustein>
[EXPORTING f1 = a1.... fn = an]
[IMPORTING f1 = a1.... fn = an]
[CHANGING f1 = a1.... fn = an]
[TABLES f1 = a1.... fn = an]
[EXCEPTIONS e1 = r1.... en = rn
[ERROR_MESSAGE = rE]
[OTHERS = ro]].
Der Name des Funktionsbausteins <funktionsbaustein> wird als Literal angegeben. Die
Parameter werden übergegeben, indem die Aktualparameter den Formalparametern in der Liste
nach den Optionen EXPORTING, IMPORTING, CHANGING oder TABLES explizit zugewiesen
werden.

Die Zuweisungen haben die Form: <Formalparameter> = <Aktualparameter>


Finden mehrere solche Zuordnungen innerhalb einer Option statt, so werden sie
nacheinander durch Leerzeichen (oder mit einem Zeilenumbruch) getrennt,
aufgeführt.

• Mit der Option EXPORTING geben Sie die Aktualparameter ai an die Formal-
eingabeparameter fi weiter. Die Formalparameter müssen im Funktionsbaustein als
Import-Parameter deklariert werden. Diese Parameter können einen beliebigen
Datentyp aufweisen. Bei angegebenem Bezugsfeld findet eine eine Überprüfung statt.
• Mit der Option IMPORTING geben Sie dagegen die Formalausgabeparameter fi des
Funktionsbausteins an die Aktualparameter ai weiter. Die Formalparameter müssen im
Funktionsbaustein als Export-Parameter deklariert werden. Es sind beliebige
Datentypen der Parameter möglich.
• Mit der Option CHANGING geben Sie die Aktualparameter ai an die Formalparameter fi
weiter. Nach der Verarbeitung des Funktionsbausteins gibt das System die (geänderten)
Werte der Formalparameter fi an die Aktualparameter ai zurück. Die Formalparameter
müssen im Funktionsbaustein als CHANGING-Parameter deklariert werden. Auch diese
Parameter können einen beliebigen Datentyp aufweisen.
• Mit der Option TABLES übertragen Sie interne Tabellen zwischen den Aktual- und den
Formalparametern. Dabei erfolgt die Übertragung der internen Tabellen stets über
Referenz. Die Parmeter dieser Option müssen auf interne Tabellen verweisen.
• Mit der Option EXCEPTIONS wird die Behandlung von Ausnahmen ermöglicht.
Ausnahmen sind als spezielle Parameter dafür vorgesehen, um auf mögliche
Fehlerereignisse während der Abarbeitung des Funktionsbausteins zu reagieren. Die
Ausführung des Funktionsbausteins wird in solchen Fällen unterbrochen. Wird also
konkret eine Ausnahme ei ausgelöst, unterbricht das System die Abarbeitung des
Funktionsbausteins und gibt keine Werte vom Funktionsbaustein an das Programm

418 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Funktionsbausteine aus Ihrem Coding aufrufen

weiter. Das aufrufende Programm nimmt die Ausnahme ei entgegen durch Zuweisung
des Wertes ri an das Systemfeld SY-SUBRC, der als Rückgabecode fungiert. Dabei
muß ri als Zahlenliteral angegeben werden. Im aufrufenden Programm kann dann eine
weitere Auswertung des Systemfeldes vorgenommen werden.
Durch die Angabe von ERROR_MESSAGE in der EXCEPTION-Liste können Sie die
Ausnahmenbehandlung in Funktionsbausteinen beinflussen. Normalerweise sollten
Nachrichten in Funktionsbausteinen nur über die Ausnahmebehandlung (mit Hilfe der
Anweisungen MESSAGE....RAISING oder mit RAISE innerhalb des Funktionsbausteins)
aufgerufen werden. Mehr dazu erfahren Sie unter Überblick über das Coding von
Funktionsbausteinen [Seite 429]
Mit ERROR_MESSAGE bewirken Sie, daß das System Nachrichten, die im
Funktionsbaustein ausnahmsweise ohne diese explizite Behandlung aufgerufen werden,
wie folgt behandelt:
− Nachrichten der Klassen S, I, und W werden ignoriert (bei Hintergrund-verarbeitung
im Protokoll vermerkt).
− Nachrichten der Klassen E und A beenden die Ausführung des Funktions-bausteins
als ob die Ausnahme ERROR_MESSAGE ausgelöst wurde (SY-SUBRC wird auf rE
gesetzt).
Wenn Sie OTHERS in der EXCEPTION-Liste angeben, können Sie auch alle
Ausnahmen berücksichtigen, die nicht ausdrücklich in der Liste aufgeführt werden. Diese
fungiert dann als Standardausnahme.

Für unterschiedliche Ausnahmen kann die gleiche Zahl ri verwendet werden, sofern
eine weitere Spezifizierung der Ausnahme nicht verlangt wird.

Um einen Funktionsbaustein in Ihrem Coding aufzurufen, können Sie die Funktion Muster im
ABAP-Editor verwenden. Führen Sie dazu folgende Arbeitsschritte durch:
1. Stellen Sie den Cursor an die Stelle in Ihrem Coding, wo die Funktion aufgerufen werden
soll.
2. Wählen Sie die Funktion Muster.
3. Auf dem erscheinenden Dialogfenster markieren Sie das Auswahlfeld vor CALL
FUNCTION.

April 2001 419


BC - ABAP Workbench: Werkzeuge SAP AG
Funktionsbausteine aus Ihrem Coding aufrufen

4. Geben Sie in dem Eingabefeld den Namen des Funktionsbausteins ein.


Sofern Sie den Namen nicht kennen, können Sie die Werthilfetaste zur Suche benutzen.
5. Wählen Sie die Funktion Weiter.
In Ihrem Coding wird der Funktionsbaustein mit der Schnittstelle eingefügt.
6. Pflegen Sie die entsrechenden Parameter und behandeln Sie die Ausnahmen.

In unserem Bespiel wird der der Funktionsbaustein in folgender Form


wiedergegeben:

420 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Funktionsbausteine aus Ihrem Coding aufrufen

7. Sofern Sie Information zu dem Funktionsbaustein benötigen, können Sie diese über die
Informationsikone abrufen. Es erscheint das Dialogfenster Hilfe, auf dem Sie den
Auswahlknopf Funktionsbaustein markieren und den Namen des Funktionsbausteins
eintragen. Wählen Sie dann Weiter.
Sie verzweigen in die Schnittstellendefinition des Funktionsbausteins und können von
dort aus zu den anderen Elementen des Funktionsbausteins navigieren.

Die nicht als Kommentar gekennzeichneten Parameter müssen auf jeden Fall von
Ihrem Programm mit Werten versorgt werden. Sie können dazu Festwerte oder
Parameter benutzen.

April 2001 421


BC - ABAP Workbench: Werkzeuge SAP AG
Funktionsbausteine aus Ihrem Coding aufrufen

Die Importschnittstelle ist immer als Kommentar gekennzeichnet. In Ihrem Coding


sollten Sie den Stern (*) vor IMPORTING löschen und die für Sie interessanten
Daten des Funktionsbausteins an Variablen übergeben.

Die Anweisung CALL FUNCTION kann auch mit anderen Parametern verwendet werden, wenn
die Funktion in einer Verbuchungstask oder auf Remote-Maschinen ablaufen soll.
Wenn ein Funktionsbaustein in einer Verbuchungstask läuft, verarbeitet das System den
Baustein asynchron. Der Aufruf wird dann nicht sofort durchgeführt. Stattdessen wartet das
System bis die nächste Aktualisierung der Datenbank mit dem Befehl COMMIT WORK
angestoßen wird. Einen Funktionsbaustein auf einer Remote-Maschine ablaufen zu lassen,
bedeutet, daß eine Funktion eines anderen SAP-Systems oder Fremdsystems aufgerufen wird.
Weitere Informationen darüber, wie Sie Funktionsbausteine aus Ihren Programmen aufrufen,
finden Sie unter Funktionsbausteine im ABAP/4-Benutzerhandbuch [Extern].

422 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Anlegen neuer Funktionsbausteine

Anlegen neuer Funktionsbausteine


Funktionsbausteine führen allgemeine Aufgaben aus, die auch für andere Entwickler von
Interesse sind. Gewöhnlich handelt es sich hierbei um genau festgelegte Funktionen, die alle
Benutzer benötigen, unabhängig davon, in welcher Anwendung sie arbeiten. Zu diesen genau
festgelegten Funktionen gehört z.B. die Berechnung der Steuer, die Ermittlung von
Fabrikkalenderterminen sowie der Aufruf häufig verwendeter Dialoge.
Wenn Sie ABAP-Routinen entwickeln, die auch anderen Programmierern zur Verfügung stehen
sollen, sollten Sie diese Routinen als Funktionsbausteine definieren und im Function Builder
entwickeln. So entwickeln Sie einen Funktionsbaustein:

1. Überprüfen Sie ob ein ähnlicher Funktionsbaustein bereits existiert. Sofern dies nicht
zutrifft, fahren Sie weiter fort.
2. Legen Sie eine Funktiongsgruppe an, falls noch keine geeignete Gruppe existiert.
3. Legen Sie den Funktionsbaustein an.
4. Definieren Sie die Schnittstelle des Funktionsbausteins, indem Sie dessen Parameter
und Ausnahmen festlegen.
5. Programmieren Sie den Funktionsbaustein und erweitern Sie eventuell das
Rahmenprogramm und die globalen Daten.
6. Aktivieren Sie den Baustein.
7. Testen Sie den Baustein.
8. Dokumentieren Sie den Baustein und seine Parameter für andere Benutzer.
9. Geben Sie den Baustein zur allgemeinen Benutzung frei.

Was Sie zur Laufzeit berücksichtigen müssen


Wenn Sie Funktionsbausteine entwickeln, sollten Sie über folgende Laufzeitvorgänge Bescheid
wissen:
• Mit der Anweisung CALL FUNCTION können Sie Import, Export- und Changing-
Parameter als Wert oder als Referenz übergeben. Tabellenparameter werden immer als
Referenz übergeben.
• Wenn Sie die Parameter so deklarieren, daß sie Eigenschaften aus dem ABAP
Dictionary übernehmen, prüft das System die Parameter bei der Übergabe auf Art und
Länge. Wenn Parameter des aufrufenden Programms diese Prüfung nicht bestehen,
bricht die aufrufende Anwendung ab.
• Zur Laufzeit werden alle Funktionsbausteine einer Funktionsgruppe zusammen mit dem
aufrufenden Programm in den Arbeitsspeicher geladen. Daher sollten Sie sich genau
überlegen, welche Funktionen in eine Gruppe gehören und welche nicht. Andernfalls
benötigt der Benutzer beim Aufruf Ihrer Funktion unnötig viel Arbeitsspeicher.

April 2001 423


BC - ABAP Workbench: Werkzeuge SAP AG
Eine Funktionsgruppe anlegen

Eine Funktionsgruppe anlegen


So legen Sie eine Funktionsgruppe vom Einstiegsbild des Function Builders an:
1. Wählen Sie Springen → FGruppenverwaltung → Gruppe anlegen.
2. Geben Sie den Namen der Funktionsgruppe und einen Kurztext ein.
3. Wählen Sie Sichern.

Der Name der Funktionsgruppe kann bis zu einer maximalen Länge von 26
alphanumerischen Zeichen frei gewählt werden. Dabei sollte das erste Zeichen die
übliche Konvention berücksichtigen (A-X für SAP-interne Entwicklung, Y und Z für
Kundenentwicklungen).
Mit einer neuen Funktionsgruppe wird automatsch ein Rahmenprogramm erstellt, der von Anfang
an zwei Include-Dateien enthält. Diese können wie üblich im Repository Browser angezeigt
werden:

Der Name des zugehörigen Rahmenprogramms wird vom System aus vergeben. Ihm ist der
Präfix SAPL vorangestellt, gefolgt vom Namen der Funktionsgruppe. Das Rahmenprogramm
der Funktionsgruppe Y101 heißt SAPLY101.
Die Bezeichnung der Include-Dateien beginnt mit L, gefolgt vom Namen der Funktionsgruppe
und endet mit UXX oder mit TOP für das TOP-Include. Das TOP-Include enthält Deklarationen
globaler Daten, die von allen Funktionsbausteinen der Funktionsgruppe gemeinsam verwendet
werden. Die andere Include-Datei dient innerhalb des Rahmenprogramms zur Aufnahme der
Funktionsbausteine innerhalb der Funktionsgruppe.

424 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Einen Funktionsbaustein anlegen

Einen Funktionsbaustein anlegen


1. Geben Sie den Namen des Funktionsbausteins in das Feld Funktionsbaustein ein.
2. Wählen Sie Anlegen.

3. Geben Sie auf dem Dialogfenster Funktionsgruppe angeben eine Funktionsgruppe an, in
der der Funktionsbaustein zugeordenet werden soll.
Das System verzweigt zum Bild Fbaustein anlegen in das Teilbild Verwaltung, in dem
weitere Angaben zum Funktionsbaustein gefordert werden.

4. Geben Sie folgende Attribute ein:


Attribut Bedeutung
Anwendung Gibt die Anwendungsgruppe der Funktion an. Lassen Sie dieses
Feld leer (“Für alle Anwendungen”), wenn Ihre Funktion
anwendungsübergreifend sein soll.
Kurztext Beschreibt die Funktionsgruppe.
Ablaufart Gibt den Funktionstyp an. Wählen Sie Normal, sofern Sie keine
Funktion für ein Remote-System oder eine Verbuchungstask
entwickeln.
Allgemeine Daten Hier werden allgemeine Verwaltungsdaten aufgelistet.
5. Wählen Sie Sichern.
Die Workbench legt für Ihren Funktionsbaustein automatisch ein Include-Programm mit
einem achtstelligen Namen an. Das Include des ersten Funktionsbausteins der
Funktionsgruppe FGRP beispielsweise wird LFGRPU01 genannt. Die Include-

April 2001 425


BC - ABAP Workbench: Werkzeuge SAP AG
Einen Funktionsbaustein anlegen

Programme der weiteren Bausteine heißen dann LFGRPU02, LFGRPU03, LFGRPU04


etc.
Weitere Informationen über die Include-Programme der Funktionsbausteine finden Sie in
Überblick über das Coding von Funktionsbausteinen [Seite 429].

426 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Parameter und Ausnahmen festlegen

Parameter und Ausnahmen festlegen


Die Parameter und Ausnahmen eines Funktionsbausteins stellen seine Schnittstelle dar. Der
Function Builder verfügt über je ein Teilbild für Tabellen, Ausnahmen, Import-, Export- und
Changingparameter.
So legen Sie Parameter und Ausnahmen Ihres Funktionsbausteins fest:

1. Geben Sie im Einstiegsbild des Function Builders den Namen des Funktionsbausteins ein.
2. Wählen Sie den Auswahlknopf Schnittstelle und anschließend die Taste Ändern.
3. Zu den jeweiligen Parametern (Import, Changing, Export oder Tabelle) geben Sie,soweit
erforderlich, weiterführende Informationen ein:

Feld Bedeutung
Parameter Die Bezeichnung des Formalparameters dient zur Identifikation
Bezugsfeld/ Angabe einer Spalte der Datenbanktabelle, einer Komponente der
Dictionary-Struktur oder der gesamten Dictionary-Struktur. Diese
-struktur
Angabe entspricht dem Dictionary-Feldnamen in der Spalte
Referenzfeld/Referenzstruktur.
Verwenden Sie dieses Feld, wenn Sie den Parameter wie ein Dictionary-
Feld anlegen möchten. Sie sollten eine Referenzstruktur immer dann
verwenden, wenn die Daten, die dieser Parameter enthält, in exakt
derselben Struktur vorliegen müssen wie im Referenzfeld (z.B. wenn
neue Datensätze in eine Datenbank geschrieben werden).
Bezugstyp Unter Bezugstyp können alle systemweit bekannten generischen und
vollständigen Datentypen angegeben werden.
Weitere Informationen erhalten Sie im ABAP-Handbuch unter
Datentypen [Extern].
Vorschlag Der Standardwert des Parameters. Gilt nur für Import- und Changing-
Parameter. Das System übergibt diesen Wert an den Funktionsbaustein,
wenn der Aufrufer einen eigenen Wert für diesen Parameter festlegt.
Referenz Die Parameterreferenz. Markieren Sie dieses Feld, wenn Sie möchten,
daß der Parameter als Referenz und nicht als Wert aufgerufen wird.
Wird ein Parameter als Referenz aufgerufen, verweist das System auf
den ursprünglichen Parameter, ohne ihn zu kopieren. Statt mit einer
Kopie arbeitet der Funktionsbaustein dann mit dem ursprünglichen
Parameter und ändert diesen, falls erforderlich, ab. Tabellen werden
immer per Referenz übergeben.

4. Geben Sie nun die Ausnahmen ein.


Das Teilbild für Ausnahmen erlaubt nur die Eingabe eines Textes, mit der die Ausnahme
im Funktionsbaustein ausgelöst werden kann.
5. Eventuell können Sie hier schon die definierte Schnittstelle dokumentieren.

April 2001 427


BC - ABAP Workbench: Werkzeuge SAP AG
Parameter und Ausnahmen festlegen

In der Teilsicht Dokumentation werden Kurztexte als Erläuterung der erstellten


Parameter und Ausnahmen eingegeben.
Eine ausführliche Dokumentation des gesamten Funktionsbausteins kann ebenfalls von
der Stelle aus erfolgen.
Näheres hierzu finden Sie unter Funktionsbausteine dokumentieren und freigeben [Seite
440]
6. Speichern Sie alle eingegebenen Angaben ab.

428 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Überblick über das Coding von Funktionsbausteinen

Überblick über das Coding von Funktionsbausteinen


Das System legt die Organisation der Objekte einer Funktionsgruppe und seiner
Funktionsbausteine vorab fest. Wenn Sie eine Funktionsgruppe anlegen, erzeugt die Workbench
automatisch ein Rahmenprogramm, globale Daten und einen Quelltext. Das System benennt das
Rahmenprogramm in der Form SAPL<fgrp>. Die Variable <fgrp> steht für den
Namen der Funktionsgruppe.
Die Workbench legt für jeden Funktionsbaustein einer Funktionsgruppe automatisch ein Include-
Programm an, und zwar in der Reihenfolge, in der sie hinzugefügt werden. Sie können dieses
Include-Programm anzeigen, indem Sie auf dem Einstiegsbild des Function Builders Quelltext
markieren. Das System benennt das Include-Programm in der Form L<fgrp>U<nn>. Im
Include-Programm der Funktionsgruppe FGRP beispielsweise liegt der erste Funktionsbaustein
im Include LFGRPU01. Die folgenden Bausteine finden sich in den Include-Programmen
LFGRPU02, LFGRPU03, LFGRPU04 usw.

Hauptfunktionsprogramm
Das Hauptfunktionsprogramm einer Funktionsgruppe wird vom Function Builder in einem Include
L<funktgrp>UXX generiert, der nur vom Function Builder selbst bearbeitet werden darf. Für die
Funktionsgruppe FGRP beispielsweise würde das Hauptfunktionsprogramm LFGRPUXX heißen.

Funktionsbausteine programmieren
Ist die Schnittstelle des Funktionsbausteins festgelegt, so kann mit der Programmierung des
Funktionsbausteins begonnen werden.
Auf dem Einstiegsbild des Function Builders markieren Sie Auswahlknopf Quelltext. Damit
verzweigen Sie in den ABAP-Editor, in dem Sie Ihre Anweisungen zwischen FUNCTION und
ENDFUNCTION einfügen.
Die definierten Parameter und Ausnahmen erscheinen als Kommentare am Anfang des
Quelltextes:

April 2001 429


BC - ABAP Workbench: Werkzeuge SAP AG
Überblick über das Coding von Funktionsbausteinen

Einige Besonderheiten der Programmierung von Funktionsbausteinen:

Datenbehandlung in Funktionsbausteinen
• Export- und Importparameter werden nicht im Quelltext des Funktionsbausteins
deklariert. Das System übernimmt diese Aufgabe und verwendet dazu ein INCLUDE-
Programm, das eine Liste der definierten Parameter als Kommentarzeilen in den
Quelltext einfügt.
• Lokale Datentypen und Objekte können Sie in Funktionsbausteinen genauso wie in
Unterprogrammen deklarieren.
• Sie können Datendeklarationen mit den Anweisungen TYPES und DATA in L<fgrp>TOP
schreiben. Diese Daten sind dann global für alle Funktionsbausteine einer Gruppe. Das
System erstellt die Daten, sobald der erste Funktionsbaustein aufgerufen wird, und
speichert immer die Werte des zuletzt aufgerufenen Funktionsbausteins.

Unterprogramme von Funktionsbausteinen aus aufrufen


Sie können verschiedene Unterprogramme von Funktionsbausteinen aus aufrufen.
• Sie können das Programm-Coding interner Unterprogramme eines Funktions-bausteins
direkt hinter die Anweisung ENDFUNCTION schreiben. Diese Unterprogramme können
zwar auch von allen Funktionsbausteinen der Gruppe aus aufgerufen werden.
Empfehlenswert ist es jedoch sie nur von dem Funktionsbaustein aus aufzurufen, in den
Sie die Unterprogramme eingefügt haben. Dadurch wird eine bessere Übersichtlichkeit
gewährleistet.
• Möchten Sie interne Unterprogramme erstellen, die von allen Funktionsbausteinen der
Funktionsgruppe <fgrp> aus aufgerufen werden können, verwenden Sie spezielle
INCLUDE-Programme L<fgrp>F<XX>.
• Sie können beliebige externe Unterprogramme aufrufen.

Ausnahmen auslösen
Innerhalb eines Funktionsbausteins sind alle Ausnahmen durch ihre definierten Bezeichner
verfügbar. Die Ausnahmen können vom System oder vom aufrufenden Programm behandelt
wird. Darüber entscheiden Sie erst beim Funktionsaufruf, etwa durch Zuweisung eines
numerischen Wertes an die entsprechenden Ausnahmen. Näheres finden Sie dazu unter
Funktionsbausteine aus Ihrem Coding aufrufen [Seite 418]

Ausnahmen müssen innerhalb eines Funktionsbausteins explizit ausgelöst werden.


ABAP bietet dazu zwei Anweisungen, die ausschließlich in Funktionsbausteinen verwendet
werden können:

Syntax
RAISE <Ausnahme>.
MESSAGE..... RAISING <Ausnahme>.
Die Wirkung dieser Anweisungen hängt davon ab, ob die Ausnahme vom aufrufenden Programm
oder vom System verarbeitet wird.

430 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Überblick über das Coding von Funktionsbausteinen

• falls die RAISE-Anweisung die Ausnahme auslöst und das aufrufende Programm die
Verarbeitung der Ausnahme aufnimmt, so wird die Ausführung des Funktionsbausteins
beedet und der numerische Wert, der dieser Ausnahme beim Aufruf zugewiesen wurde,
ins Systemfeld SY-SUBRC gestellt. Eine weitere Auswertung erflogt dann im
aufrufenden Programm.
Wird aber die Ausnahme nicht vom aufrufenden Programm behandelt, erzeugt das
System einen Laufzeitfehler.
• Mit der Anweisung MESSAGE..... RAISING verläuft die Verarbeitung analog, falls eine
Behandlung im aufrufenden Programm vorgesehen ist. Im entgegengesetzten
Fall reagiert das System nicht mit einem Laufzeitfehler, sondern setzt die
Verarbeitung fort und sendet eine duch Nachrichtentyp definierte Nachricht. Dazu
müssen Sie die MESSAGE-ID in der ersten Anweisung des INCLUDE-
Programms L<fgrp>TOP angeben. Die Anweisung MESSAGE..... RAISING trägt
zudem noch Werte in die folgenden Systemfelder ein.
SY-MSGID (Meldungskennung)
SY-MSGTY (Meldungstyp)
SY-MSGNO (Meldungsnummer)
SY-MSGV1 bis SY-MSGV4 (Inhalt der Felder <f1> bis <f4>, die in die Meldung
eingeschlossen sind).
Für weitere Information lesen Sie auch die Schlüsselwortdokumentation zu MESSAGE).
Um das Vorgehen zu veranschaulichen, geben wir das folgende Beipiel an:

April 2001 431


BC - ABAP Workbench: Werkzeuge SAP AG
Überblick über das Coding von Funktionsbausteinen

In diesem Beispiel verwenden wir den folgenden Funktionsbaustein:

Wenn N1 nicht gleich Null ist, wird Z1 durch N1 dividiert. Andernfalls wird die
Ausnahme DIV_ZERO ausgelöst.

432 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Überblick über das Coding von Funktionsbausteinen

Beispiel: Das Programm MDTEST ruft die Funktion MY_DIVIDE auf:

Nach dem Start des Programms MDTEST sieht die Ausgabe so aus:
Result = 1,500000
Wenn Sie in der EXPORTING-Liste N1 = 4 durch N1 = 0 ersetzen, verarbeitet das
Programm MDTEST die Ausnahme DIV_ZERO, indem es SY-SUBRC den Wert 1
zuweist. Dadurch entsteht folgende Ausgabe:
Division by zero

April 2001 433


BC - ABAP Workbench: Werkzeuge SAP AG
Bausteine prüfen und aktivieren

Bausteine prüfen und aktivieren


Bevor Sie einen Funktionsbaustein aktivieren können, müssen Sie prüfen, ob die Syntax des
Bausteins korrekt ist. Zeigen Sie eines der Bilder des Bausteins an und prüfen Sie es über
Funktionsbaustein → Prüfen. Näheres dazu, wie Sie diese Funktion verwenden, finden Sie in
Den Quelltext prüfen [Seite 138].
Neu angelegte Funktionsbausteine haben automatisch den Status Inaktiv.
Ist ein Funktionsbaustein inaktiv, wird bei der normalen Syntaxprüfung nur dieser eine Baustein
geprüft. Wenn Sie den Baustein innerhalb der gesamten Funktionsgruppe prüfen, ihn aber noch
nicht aktivieren möchten, wählen Sie Funktionsbaustein → Prüfen → Rahmenprogramm. Das
Prüfprogramm überprüft dann alle Funktionen und Include-Programme, unabhängig davon, ob
sie aktiv sind oder nicht.
Um eine abgeschlossene Funktion zu aktivieren, wählen Sie die Ikone Aktivieren in der
Drucktastenleiste. Ein aktivierter Funktionsbaustein wird bei jeder Syntaxprüfung der
zugehörigen Funktionsgruppe in die Prüfung einbezogen. Wenn das System die Syntax eines
aktivierten Funktionsbausteins prüft, umfaßt diese Prüfung genaugenommen alle aktiven
Komponenten der Funktionsgruppe. Wenn Sie einen Funktionsbaustein aktivieren, führt das
System automatisch eine Syntaxprüfung durch.
Siehe auch:
Inaktive Sourcen [Seite 513] in der ABAP Workbench.

Funktionsbausteine auf aktive Fassung zurücksetzen


Sie haben die Möglichkeit, eine inaktive Fassung des Funktionsbausteins auf ihre aktive Fassung
zurückzusetzen. Die inaktive Fassung wird dann gelöscht. Wählen Sie hierzu den Menüpfad
Funktionsbaustein → Zurück auf inaktive Version.

434 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Funktionsbausteine testen

Funktionsbausteine testen
Bevor Sie neue Funktionsbausteine zur allgemeinen Verwendung freigeben, sollten Sie sie mit
Hilfe der Testumgebung des Function Builders testen. Sie können mit dieser Testumgebung
auch Funktionen anderer Entwickler prüfen, bevor Sie diese Bausteine von Ihrem Programm aus
aufrufen. In der Testumgebung der Bibliothek können Sie ermitteln, ob eine Funktion korrekt
abläuft, und anzeigen, ob der Baustein die erwarteten Ergebnisse liefert. So führen Sie einen
Testlauf durch:
1. Wählen Sie auf dem Einstiegsbild des Function Builders Einzeltest.
Das System verzweigt zum Bild Funktionsbaustein testen. Auf diesem Bild werden alle
Import- und Changingparameter des Funktionsbausteins angezeigt:

2. Geben Sie an, welche Daten Sie von Ihrem Programm an den Funktionsbaustein
übergeben möchten.
Geben Sie für die entsprechenden Import-, Changing- und Tabellen-Parameter Werte
ein. Für Parameter mit Bezugsfeld geben Sie den Wert in das angezeigte Feld ein. Um
Tabellen-/Struktur-Parameter einzugeben, wählen Sie den Parameternamen mit
Doppelklick aus.
3. Wählen Sie Ausführen.
Das System führt den Funktionsbaustein mit Ihren Eingabewerten aus und zeigt die
Werte der sich daraus ergebenden Export-Parameter an:

April 2001 435


BC - ABAP Workbench: Werkzeuge SAP AG
Funktionsbausteine testen

Beim Test eines Funktionsbausteins zeigt das System alle Ausnahmen an. Das System gibt
zudem die Zeit, die zur Ausführung des Bausteins benötigt wird, in Mikrosekunden an. Es
handelt sich hierbei um die Messung der Gesamtverarbeitungszeit. In ihr sind neben der reinen
Bearbeitungszeit auch Unterbrechungen enthalten. Betrachten Sie die angegebene
Gesamtverarbeitungszeit deshalb nur als Anhaltspunkt.

Weitere Testoptionen
Die Testumgebung bietet noch weitere Möglichkeiten außer der einfachen Durchführung eines
Funktionsbausteins. Sie können darüber hinaus einen Testlauf im Debugger durchführen oder
mit Hilfe einer Laufzeitanalyse eine Meßdatendatei der Funktion anlegen. So testen Sie einen
Funktionsbaustein im Testmodus:
1. Wählen Sie auf dem Einstiegsbild des Function Builders Einzeltest.
2. Geben Sie an, welche Daten Sie von Ihrem Programm an den Funktionsbaustein
übergeben möchten.
3. Wählen Sie Debugging.
Das System führt den Funktionsbaustein im Testmodus aus. Sie können Schritt für
Schritt durch das Coding der Funktion gehen und alle im Debugger [Seite 443] zur
Verfügung stehenden Möglichkeiten nutzen.
Um die Performance eines Funktionsbausteins zu testen, wählen Sie auf dem Bild
Funktionsbaustein testen die Funktion Laufzeitanalyse (Transaktion SE30). Das System führt
den Funktionsbaustein aus und zeichnet die Ausführungszeiten für z.B. Tabellenzugriffe oder

436 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Funktionsbausteine testen

modulare Einheiten auf. Wählen Sie Ausw. d. Laufzeita., um die Ergebnisse der Analyse
anzuzeigen.

April 2001 437


BC - ABAP Workbench: Werkzeuge SAP AG
Tests und Testsequenzen sichern

Tests und Testsequenzen sichern


Der Function Builder bietet eine Reihe weiterer Möglichkeiten, die beim Entwickeln von
Funktionen sehr hilfreich sind. Hierzu gehören
• das Sichern von Testläufen.
• die Anzeige früherer Tests und deren Ergebnisse.
• der Vergleich früherer Testergebnisse mit denen eines neuen Testlaufs.
• das Erstellen einer Testsequenz für wiederholtes Testen.

Einen Testlauf sichern


Um einen Testlauf zu sichern, führen Sie den Test aus und wählen dann Sichern. Geben Sie für
den Test eine Kurzbeschreibung ein, damit Sie ihn später leichter wiederfinden.

Frühere Tests anzeigen und erneut durchführen


Um frühere, von Ihnen gespeicherte Tests anzuzeigen, gehen Sie auf das Einstiegsbild der
Testumgebung und wählen Testdatenverzeichnis. Hier können Sie alte Testparameter oder die
tatsächlichen Ergebnisse anzeigen.
Indem Sie frühere Tests erneut durchführen, können Sie feststellen, ob sich die in Ihrem
Funktionsbaustein vorgenommenen Änderungen auf die Daten auswirken, die das aufrufende
Programm empfängt. So führen Sie einen Test mit denselben Parametern erneut aus:
1. Wählen Sie auf dem Einstiegsbild des Function Builders Einzeltest.
Das System verzweigt zur Testumgebung.
2. Wählen Sie Testdatenverzeichnis.
3. Positionieren Sie den Cursor auf den Test, den Sie erneut durchführen möchten.
4. Wählen Sie Test.
Das System führt denselben Test sofort nochmal durch und zeigt veränderte Ergebnisse
an.

Eine Testsequenz verwenden


So starten Sie eine Testsequenz:
1. Gehen Sie auf das Testbild des Funktionsbausteins.
2. Wählen Sie Springen → Testsequenz.
3. Führen Sie wie gewohnt mehrere Tests durch, indem Sie die erforderlichen Parameter
eingeben und Ausführen wählen.
Sie können sowohl denselben Funktionsbaustein mehrmals durchführen als auch
unterschiedliche, zusammenhängende Funktionsbausteine testen. Sie können z.B.
zuerst den Funktionsbaustein testen, der einen neuen Tabellensatz anlegt, und danach
den Funktionsbaustein, der diesen Datensatz wieder löscht. Wenn Sie unterschiedliche
Funktionsbausteine testen möchten, wählen Sie nach jedem Test FBausteine → Anderer
FBST. Auf diese Weise verzweigen Sie schnell zu einer neuen Funktion.
4. Beenden Sie die Sequenz, indem Sie Bearbeiten → Neue Sequenz wählen.

438 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Tests und Testsequenzen sichern

Sie können die Testsequenz sichern.


Um eine bestehende Testsequenz anzuzeigen, wählen Sie Testsequenzverzeichnis. Zudem
können Sie eine Testsequenz ausführen, indem Sie Bearbeiten → Sequenz erfassen wählen.
Das System zeigt ein Dialogfenster an, indem Sie die Namen aller Bausteine eingeben können,
die Sie testen möchten. Wählen Sie Ausführen und Sie können alle Bausteine nacheinander im
Testmodus ablaufen lassen.

April 2001 439


BC - ABAP Workbench: Werkzeuge SAP AG
Funktionsbausteine dokumentieren und freigeben

Funktionsbausteine dokumentieren und freigeben


Funktionsbausteine werden im Function Builder dokumentiert. Dabei wird zwischen der
Parameterdokumentation und einer ausführlichen Funktionsbausteindokumentation
unterschieden.

Schnittstellendokumentation
Die Parameterdokumentation sollte Informationen zu den einzelnen Parametern und Ausnahmen
enthalten.
1. Verzweigen Sie in den Function Builder und geben Sie den Namen des zu
dokumentierenden Funktionsbausteins an.
2. Wählen Sie Auswahlknopf Schnittstelle.
3. Führen Sie die Funktion Ändern aus.
4. Lassen Sie sich die Teilsicht Dokumentation anzeigen.
Sie erhalten eine Liste aller verwendeten Parameter und Ausnahmen.
5. Geben Sie einen Kurztext für jeden Eintrag an.
6. Sichern Sie Ihre Angaben.

Wenn Sie weitere Dokumentation zu einem Parameter oder einer Ausnahme


hinterlegen wollen, dann führen Sie einen Doppelklick auf der entsprechenden Zeile
in der Teilsicht Dokumentation aus.
Sie gelangen in die Pflege des Langtexts. Geben Sie den Langtext ein und sichern
Sie ihn. Kehren Sie dann wieder zur Pflege des Funktionsbausteins zurück.

Funktionsbausteindokumentation
Die Funktionsbausteindokumentation enthält weitere Informationen zur Funktionalität, die der
Funktionsbaustein zur Verfügung stellt.
Dieser Dokumentation kommt eine wesentliche Bedeutung zu. Da Funktionsbausteine für einen
anwendungsübergreifenden Einsatz zur Verfügung gestellt werden, sollte die die in der
Dokumentation enthaltene Information zur Funktionalität ausreichend sein, um so der Analyse
des Quelltextes völlig zu entgehen.

So erstellen Sie diese Dokumentation:


1. Verzweigen Sie in den Function Builder und geben Sie den zu dokumentierenden
Funktionsbaustein an.
2. Wählen Sie Auswahlknopf Schnittstelle.
3. Führen Sie die Funktion Ändern aus.
4. Wählen Sie die Funktion Fbausteindoku.
Damit verzweigen Sie zu einem Editor, in dem eine ausführliche Dokumentation des
Funktionsbausteins erfaßt werden kann.
Es wird ein spezieller Editor, der SAP- Script- Editor aufgerufen, in dem zum einen

440 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Funktionsbausteine dokumentieren und freigeben

Funktionalität erläutert wird, zum anderen aber auch Beispielaufrufe, Hinweise zur
Verwendung und zu weiteren Informationsquellen eingegeben werden:

Die Bedienung des SAP-Script-Editors unterscheidet sich beträchtlich von der des
Programmeditors. Zum einen fällt die Belegung der Tasten und Menüs unterschiedlich

April 2001 441


BC - ABAP Workbench: Werkzeuge SAP AG
Funktionsbausteine dokumentieren und freigeben

aus, zum anderen kann das SAP-Script-Dokument mit einer speziellen Formatierung
versehen werden. Weitere Informationen zur Bedienung des SAP-Script-Editors
erhalten Sie unter Textverarbeitung mit dem SAPScript-Editor [Extern]
5. Speichern Sie das Dokument ab.

Freigabeverfahren
Die Freigabe eines Funktionsbausteins ist eine rein verwaltungstechnische Angelegenheit, die
sich in keiner Weise auf den Baustein oder seine Verwendbarkeit auswirkt. Wenn Sie davon
überzeugt sind, daß ein Funktionsbaustein zur allgemeinen Benutzung geeignet ist, können Sie
ihn im System freigeben. Die Freigabe einer Funktion bedeutet, daß der Entwickler den Baustein
getestet hat.

Bedenken Sie ferner, daß nach der Freigabe die Dokumentation des
Funktionsbausteins im Arbeitsvorrat der Übersetzung erscheint. Die Freigabe sollte
daher sorgfältig überlegt werden. Es empiehlt sich, den zuständigen Übersetzer
rechtzeitig zu informieren.
In der Regel ist eine einzige Person für eine Funktionsgruppe verantwortlich und nur dieser
Benutzer kann den Funktionsbaustein freigeben. Wer für eine Funktionsgruppe verantwortlich ist,
erfahren Sie, indem Sie die Attribute einer Funktionsgruppe anzeigen. Teilen Sie daraufhin
dieser Person mit, daß Ihr Funktionsbaustein freigegeben werden kann. Wenn Sie der
Verantwortliche für die Funktionsgruppe sind, wählen Sie Funktionbaustein → Freigabe →
Freigeben, um einen Funktionsbaustein freizugeben.
Die Freigabe von Funktionsbausteinen war ursprünglich nur für die SAP-Entwickler gedacht.
Indem ein SAP-Entwickler eine Funktion freigibt, teilt er den anderen SAP-Entwicklern mit, daß
sie diese Funktion ohne Bedenken verwenden können. SAP-Entwickler können Ihre Funktionen
auch für Kunden freigeben. Wenn Sie eine freigegebene SAP-Funktion aufrufen, können Sie
davon ausgehen, daß SAP die Funktionsschnittstelle in zukünftigen Software-Releases nur
rückwärts-kompatibel ändern wird.

442 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Debugger

Debugger
In diesem Abschnitt der ABAP Workbench-Dokumentation erfahren Sie, wie Sie den Debugger
als Testwerkzeug bei bei Fehlersuche im Quelltext eines ABAP-Programms einsetzen.

April 2001 443


BC - ABAP Workbench: Werkzeuge SAP AG
Debugger

Themenübersicht:
Funktionsüberblick [Extern]

Start des Debuggers [Extern]

Anzeigemodi des Debuggers [Extern]

Änderungen zu Release 4.6 [Extern]

Breakpoints [Extern]

Statische Breakpoints [Extern]

Dynamische Breakpoints [Extern]

Breakpoints bei Anweisungen [Extern]

Breakpoints bei Unterprogrammen [Extern]

Breakpoints bei Funktionsaufrufen [Extern]

Breakpoints bei System-Exceptions [Extern]

Sichern von Breakpoints [Extern]

Verwaltung dynamischer Breakpoints [Extern]

Watchpoints [Extern]

Setzen von Watchpoints [Extern]

Angabe logischer Verknüpfungen [Extern]

Ändern von Watchpoints [Extern]

Analyse von Quelltexten [Extern]

Anzeige des Quelltextes [Extern]

Durchlaufen des Quelltextes [Extern]

Bearbeitung von Feldern [Extern]

Bearbeitung interner Tabellen [Extern]

Anzeige von Attributen [Extern]

Anzeige von OO-Objekten [Extern]

Weitere Funktionen [Extern]

Anzeige von Listen [Extern]

Aufrufverknüpfungen [Extern]

Debugging im Produktivmandanten [Extern]

Entsperren der Datenbank [Extern]

444 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Debugger

Einstellungen und Warnungen [Extern]

April 2001 445


BC - ABAP Workbench: Werkzeuge SAP AG
Laufzeitanalyse

Laufzeitanalyse
Die folgende Dokumentation macht Sie mit der Anwendung der Laufzeitanalyse innerhalb der
ABAP Workbench vertraut. Die Laufzeitanalyse gibt Ihnen einen Überblick über die zeitliche
Dauer Ihres Codings, von einzelnen Anweisungen bis hin zu kompletten Transaktionen.

Über SAP Menü → Test → Laufzeitanalyse oder Transaktion SE30 kann die die
Laufzeitanalyse gestartet werden. Im Einstiegsbild finden Sie vier funktionale Schwerpunkte
dieses Werzeuges, die über Drucktaste aktiviert werden können, nämlich:
• Messen im Dialogstatus
• Messen eines externen Modus
• Auswahl der Meßeinschränkungen
• Auswertung der Meßergebnisse.

Mit den folgenden Informationen können Sie die Analyse durchführen, die Ergebnisse anzeigen
und interpretieren und auf dieser Grundlage Ihre Programme optimieren.

446 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Laufzeitanalyse

Themenübersicht:
Funktionsüberblick [Extern]

Architektur und Navigation [Extern]

Start und Einstiegsbild [Extern]

Meßbare Komponenten [Extern]

Zeiterfassung [Extern]

Meßdatenerhebung [Extern]

Anlegen von Meßdateien [Extern]

Auswertung von Meßdateien [Extern]

Meßergebnisse [Extern]

Meßübersicht [Extern]

Hitliste der Anweisungen [Extern]

Hitliste der Tabellen [Extern]

Hitliste der Gruppen [Extern]

Aufrufhierarchie [Extern]

Kenngrößen [Extern]

Messung externer Prozesse [Extern]

Einschalten des Prozesses [Extern]

Beenden des Prozesses [Extern]

Meßeinschränkungen [Extern]

Programme oder Programmteile [Extern]

Anweisungen [Extern]

Dateigröße und Zeitlimit [Extern]

Aggregation [Extern]

Weitere Funktionen [Extern]

Anzeigefilter [Extern]

Verwaltung von Meßdateien [Extern]

Lokales Sichern von Meßdateien [Extern]

Tips und Tricks [Extern]

April 2001 447


BC - ABAP Workbench: Werkzeuge SAP AG
Laufzeitanalyse

448 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Performance-Trace

Performance-Trace
Im Testwerkzeug Performance-Trace sind verschiedene Trace-Funktionen des R/3-Systems
zusammengefaßt, mit deren Unterstützung Sie das Systemverhalten bei Datenbankaufrufen,
Aufrufen der Sperrverwaltung und Remote-Aufrufen von Reports und Transaktionen verfolgen
und eingehend analysieren können.

Themenübersicht
Performance-Trace im Überblick [Seite 451]

Architektur und Navigation [Seite 452]

Einstiegsbild [Seite 454]

Meßdaten erheben [Seite 455]

Trace-Aufzeichnung starten [Seite 456]

Trace-Aufzeichnung beenden [Seite 458]

Meßdaten auswerten [Seite 459]

Anzeigefilter [Seite 460]

Weitere Abgrenzungen [Seite 463]

Listen mit Tracesätzen anzeigen [Seite 465]

Tracesätze analysieren [Seite 468]

SQL-Traceanalyse [Seite 472]


Embedded SQL [Seite 473]
Gemessene DB-Operationen [Seite 474]
Logische Reihenfolge der DB-Operationen [Seite 475]
Pufferung [Seite 476]
Analyse einer Beispiel-SQL-Datei [Seite 477]
Beispielanalyse einer Oracle-Anweisung [Seite 479]
Beispielanalyse einer Informix-Anweisung [Seite 481]
Enqueue-Traceanalyse [Seite 483]
Enqueue-Tracesätze [Seite 484]
Detailanzeige der Enqueue-Tracesätze [Seite 485]
RFC-Traceanalyse [Seite 486]
RFC-Tracesätze [Seite 487]
Detailanzeige der RFC-Tracesätze [Seite 488]

April 2001 449


BC - ABAP Workbench: Werkzeuge SAP AG
Performance-Trace

Weitere Funktionen [Seite 489]

Tracefile konfigurieren [Seite 490]

Listen lokal sichern [Seite 492]

Die Funktion Explain SQL [Seite 493]

Dictionary-Informationen abrufen [Seite 495]

450 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Performance-Trace im Überblick

Performance-Trace im Überblick
Verwendung
Der Performance-Trace ermöglicht es Ihnen, die Datenbankaufrufe, die Aufrufe der
Sperrverwaltung und die Remote-Aufrufe von Reports, Transaktionen und aus dem R/3-System
selbst in einem Tracefile aufzuzeichnen und die protokollierten Meßergebnisse in Form von
Listen anzeigen zu lassen. Der Performance-Trace bietet weiterhin eine umfangreiche
Unterstützung bei detailierter Analyse einzelner Tracesätze.

Integration
Der Performance-Trace ist als Testwerkzeug in die ABAP Workbench integriert und damit dort
aufrufbar.

Voraussetzungen
Damit Sie mit dem Trace arbeiten können, benötigen Sie die Berechtigung zum Aufruf der
Transaktion ST05 und die Systemberechtigungen „Ändern von Traceschaltern“ ( Berechtigung
STOM für das Berechtigungsobjekt S_ADMI_FCD) und „Auswerten von Traces“ (Berechtigung
STOR für dasselbe Berechtigungsobjekt).

Funktionsumfang
Ab der Version 40B sind folgende Traces verfügbar:
1. der SQL-Trace, mit dem Sie Datenbankaufrufe von Reports und Transaktionen verfolgen
können.
Siehe auch SQL-Traceanalyse [Seite 472].
2. der Enqueue-Trace, mit dem Sie sich einen Überblick über das Sperrverhalten des Systems
verschaffen können.
Siehe auch Enqueue-Traceanalyse [Seite 483].
3. der RFC-Trace, der Ihnen Informationen zur instanzübergreifenden RFC-Aufrufen von
Funktionsbausteinen liefert.
Siehe auch RFC-Traceanalyse [Seite 486].

Aktivitäten
So gelangen Sie zum Einstiegsbild des Performance-Traces:
• mit dem Transaktionscode ST05
• aus der ABAP Workbench mit dem Menüpfad Test → Performance Trace.

April 2001 451


BC - ABAP Workbench: Werkzeuge SAP AG
Architektur und Navigation

Architektur und Navigation


Die folgende Abbildung zeigt die Architektur mit den wesentlichen Komponenten und
Navigationsmöglichkeiten innerhalb des Testwerkzeuges auf.

ST05
Einstiegsbild
Performance-Trace

Anzeigefilter

Grundliste Erweiterte Liste

DDIC-Info Detail-Info Ident. Selects Summary Explain SQL

DDIC ABAP Editor

Navigation
Im Einstiegsbild wird die Trace-Aufzeichnung gestartet bzw. gestoppt. Die Ergebnisse der
Messung werden nach der Ausführung des zu untersuchenden Programms in einem Tracefile
gesichert.
Mit einem Anzeigefilter können Sie den Wertebereich für die Anzeige der Meßdaten durch
Definieren von Selektionsbedingungen eingeschränken.
Die Meßdaten können dann entweder in Form einer Grundliste ("basic list") oder einer
Erweiterten Liste ("extended list") ausgegeben werden.
Die Anzeige der Daten können Sie nun weiter spezifizieren:
Eine Beschreibung von Dictionary-Objekten erhalten Sie über die Anzeige DDIC-Info. Eine
Verzweigung zur Definition im DDIC kann von hieraus ebenfalls vorgenommen werden. Mit
Detail-Info erhalten Sie eine Detailanzeige für die zu analysierende Anweisung. Identische
Select-Anweisungen können Sie auf einfache Weise über die Anzeige Ident. Selects ermitteln
oder mit Summary die Traceliste verdichten. Desweiteren kann mit Explain SQL ein
Ausführungsplan für eine gewählte SQL-Anweisung angezeigt werden.
Von der Anzeige der Meßdaten zu einer Anweisung können Sie direkt zum zugehörigen
Quelltext im ABAP Editor verzweigen.

452 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Architektur und Navigation

April 2001 453


BC - ABAP Workbench: Werkzeuge SAP AG
Einstiegsbild

Einstiegsbild
Aufruf
Das Einstiegsbild des Testwerkzeugs wird mit dem Transaktionscode ST05 oder über den
Menüpfad Test → Performance Trace aus der ABAP Workbench erreicht.

Funktionen
Folgende Funktionen stehen Ihnen im Einstiegsbild zur Verfügung:
• Starten der Trace-Aufzeichnung.
• Stoppen der Trace-Aufzeichnung.
• Auswahl der Trace-Funktionen SQL Trace, Enqueue Trace und RFC Trace.
• Verzweigen zur Grundliste bzw. zur Erweiterten Liste.
• Verzweigen zu Explain SQL zwecks Analyse einer SQL-Anweisung ohne ein explizites
Tracefile.

Einschränkung
Die Trace-Funktion Memory Trace ist derzeit noch nicht aktiv.

454 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Meßdaten erheben

Meßdaten erheben
Vorbereitungen
Standardmäßig ist der Performance-Trace bei den R/3-Systemen aus Performancegründen
ausgeschaltet. Wenn Sie das Verhalten eines Reports oder einer Transaktion mit dem
Performance-Trace analysieren möchten, sollten Sie sich zuerst entscheiden, ob Sie das
Zusammenspiel, den gegenseitigen Einfluß von Reports und Transaktionen, das Verhalten von
einzelnen Reports und Transaktionen oder nur Teile davon analysieren möchten.

Da die Tracesätze in einer Ringspeicherdatei abgelegt werden, kann es


vorkommen, daß Tracesätze überschrieben werden.Falls der vorgesehene
Speicherplatz nicht ausreicht, wird die Aufzeichnug wieder am Anfang der Datei
fortgesetzt. Es emphielt sich also die wesentlichen Abläufe zusätzlich noch zu
protokollieren. Um das Überschreiben zu vermeiden, haben Sie die Möglichkeit, das
Traceintervall zu verkleinern oder den Ringspeicher zu erweitern.
Siehe auch: Tracefile konfigurieren [Seite 490]

Grundsätzliches zum Vorgehen


Damit die Tracesätze aufgezeichnet werden, müssen Sie den Performance-Trace für eine
Instanz des R/3-Systems einschalten.
Dabei können Sie festlegen, welche der Trace-Funktionen (SQL-Trace, Enqueue-Trace, RFC-
Trace) eingeschaltet werden sollen und für welchen Nutzer oder Nutzerkreis diese erfolgen
sollen.
Danach führen Sie die zu untersuchenden Reports oder Transaktionen bzw. der Teile davon aus
und schalten dann den Trace wieder aus.
Den erzeugten Tracefile, der alle protokollierten Tracesätze enthält, können Sie sofort oder zu
einem späteren Zeitpunkt auswerten. Sollten Sie sich für eine spätere oder wiederholte
Auswertung entscheiden, so beachten Sie, daß das Tracefile überschrieben werden kann (s.
obiger Hinweis).

Siehe auch
Performance-Trace einschalten [Seite 456]
Performance-Trace ausschalten [Seite 458]

April 2001 455


BC - ABAP Workbench: Werkzeuge SAP AG
Die Trace-Aufzeichnung starten

Die Trace-Aufzeichnung starten


Voraussetzungen
Der Performance-Trace kann nur für eine Instanz eingeschaltet werden. Desweiteren haben Sie
Vorüberlegungen zum Umfang und Zielsetzung ihrer Performace-Analyse getroffen.

Vorgehensweise
So starten Sie eine Trace-Aufzeichnung:
1. Wählen Sie den Menüpfad Test → Performance Trace aus der ABAP Workbench aus.
Sie gelangen auf das Einstiegsbild des Testwerkzeugs. Im unteren Bildteil wird der Status
des Performance-Traces angezeigt. Sie erhalten dort Informationen, ob Traces des
Performance-Traces eingeschaltet sind und für welche Nutzer dies gilt. Weiterhin erfahren
Sie dort, welcher Nutzer diese Traces eingeschaltet hat.
2. Legen Sie über die angebotenen Auswahlknöpfe fest, welche Trace-Funktionen (SQL-Trace,
Enqueue-Trace, RFC-Trace) eingeschaltet werden sollen.
3. Wählen Sie dann Trace on, falls Sie mit Ihrem angemeldeten Nutzernamen den Trace
einschalten wollen.
Wählen Sie Trace on for user, wenn Sie einen anderen Nutzer oder eine Nutzergruppe
auswählen wollen.
Einen Nutzer bestimmen Sie durch die Angabe des Nutzernamens und eine Nutzergruppe
beschreiben Sie durch ein Suchmuster, für das die üblichen Metazeichen zu verwenden sind.
Wollen Sie weiterhin den Nutzer bzw. die Nutzergruppe ändern, so schalten Sie den
Performance-Trace aus und geben dann beim erneuten Einschalten den tatsächlich
gewünschten Nutzer bzw. die Nutzergruppe an.
4. Führen Sie nun das auszuwertende Programm wie üblich aus.

In der Regel werden Sie das erzeugten Performance-Tracefile sofort auswerten. In


diesem Falle empfiehlt es sich jedoch, den Performance-Trace jeweils in einem
separaten Fenster ein- und auszuschalten sowie auszuwerten.

Die ausgewählten Trace-Arten können Sie während eines Performance-Trace-


Intervalles (Zeit zwischen dem Ein- und Ausschalten des Traces) beliebig ändern.
Der Nutzer (Nutzergruppe) muß dabei unverändert bleiben.

Ergebnis
Die Ergebnisse der Trace-Aufzeichnung werden in einen Tracefile geschrieben. Falls Tracesätze
während des Traceintervalls überschrieben wurden, erhalten Sie erst beim Auswerten des
Performance-Traces entsprechende Nachricht.

Der Performance-Trace zeichnet alle Datenbank- bzw. Remote-Aufrufe oder die


Aufrufe der Sperrverwaltung des Benutzers (der Benutzer) auf. Diese Messungen
können die Performance des Anwendungsservers beeinträchtigen, auf dem der

456 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Die Trace-Aufzeichnung starten

Trace läuft. Sie sollten deshalb den Trace ausschalten [Seite 458], sobald Sie die
Aufzeichnung abgeschlossen haben.

April 2001 457


BC - ABAP Workbench: Werkzeuge SAP AG
Die Trace-Aufzeichnung beenden

Die Trace-Aufzeichnung beenden


Voraussetzungen
Sie haben die Trace-Aufzeichnung gestartet und die Ausführung des zu untersuchenden
Programms wurde beendet.

Schon aus Performancegründen sollten Sie die Traces ausschalten, sobald Sie die
Aufzeichnung abgeschlossen haben.

Vorgehensweise
So beenden Sie die Trace-Aufzeichnung:
1. Wählen Sie den Menüpfad Test → Performance Trace aus der ABAP Workbench aus.
Sie gelangen auf das Einstiegsbild des Testwerkzeugs. Hier bekommen Sie in einer
Statuszeile angezeigt, welche Traces für welche Nutzer und durch wen eingeschaltet
wurden.
2. Legen Sie über die angebotenen Auswahlknöpfe fest, welche Tracefunktionen auszuschalten
sind.
3. Wählen Sie die Funktion Trace off.
Haben Sie die Trace-Aufzeichnung selbst eingeschaltet, so können Sie sie sofort
ausschalten. Wurde der Performance-Trace durch einen anderen Nutzer eingeschaltet, so
erfolgt vor dem Ausschalten der Trace-Aufzeichnung eine Sicherheitsabfrage.

Ergebnis
Das Ergebnis der Trace-Aufzeichnung wurde in einem Tracefile abgelegt. Die im Tracefile
gespeicherten Meßdaten können nunmehr ausgewertet werden. Siehe auch: Meßdaten
auswerten [Seite 459].

458 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Meßdaten auswerten

Meßdaten auswerten
Voraussetzungen
Nachdem Sie den Performance-Trace ausgeschaltet haben, können Sie mit dem Auswerten
beginnen. Das Auswerten kann solange erfolgen, auch wiederholt, bis die Tracesätze in dem
Tracefile überschrieben wurden. Falls Sie den Namen des Tracefiles (siehe Tracing konfigurieren
[Seite 490]) ändern oder sich das Performance-Tracefile mit Mitteln des Betriebssystems sichern
(siehe Listen lokal sichern [Seite 492]), so kann das Tracefile nicht überschrieben werden und
steht weiterhin für die Auswertung bereit.

Weiteres Vorgehen im Überblick


Bevor Sie mit der Auswertung der Tracesätze beginnen, müssen Sie zunächst den Performance-
Trace ausschalten. Weitere Informationen finden Sie unter:
Die Trace-Aufzeichnung beenden [Seite 458].
Vor der Anzeige der Tracesätze legen Sie über einen Anzeigefiter fest, welche Tracesätze
aufzubereiten sind und welche Informationen aus den Tracesätzen auszugeben sind. Weitere
Informationen finden Sie unter:
Anzeigefilter [Seite 460].
Bei der Anzeige der Tracesätze können Sie zwischen einer Basisliste und einer erweiterten Liste
auswählen. In beiden Listen erhalten Sie einen Überblick über die protokollierten Aktionen und
Meßwerte. Weitere Informationen finden Sie unter:
Liste der Trace-Sätze anzeigen [Seite 465].
In beiden Listen steht Ihnen der gleiche Funktionsumfang zum Analysieren der ausgeführten
Anweisungen und weiterer Meßdaten zur Verfügung. Weitere Informationen finden Sie unter:
Tracesätze analysieren [Seite 468]
Die weitere Analyse werden Sie unter Einbeziehung unterschiedlicher Tracesarten spezifizieren.
Siehe auch:
SQL-Trace [Seite 472] oder
Enqueue-Trace [Seite 483] oder
RFC-Trace [Seite 486]

April 2001 459


BC - ABAP Workbench: Werkzeuge SAP AG
Anzeigefilter

Anzeigefilter
Voraussetzungen
Sie haben den Performance-Trace ausgeschaltet und sind zum Anzeigefilter verzweigt. Sie
gelangen zum Anzeigefilter, wenn Sie im Einstiegsbild des Performance-Traces den Druckknopf
List Trace oder den entsprechenden Menüpunkt wählen.

Verwendung
Mit dem Anzeigefilter ("Filter trace list") können Sie den Wertebereich für die Anzeige der
protokollierten Tracesätze aus demTracefile einschränken, um anschließend entweder die
Basisliste ("Basic list") oder die Erweiterte Liste ("Extended list") auszugeben.

460 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Anzeigefilter

Funktionsumfang

Wenn Sie überhaupt keine Abgrenzungen erfassen, so werden alle protokollierten


Tracesätze selektiert.

Namen des Tracefiles angeben


Das System initialisiert diesen Parameter aus der Systemumgebung. Als Name des Tracefiles
wird Ihnen der des aktuellen Tracefiles angeboten. Sie haben aber auch die Möglichkeit, einen
anderen Filenamen zu wählen. Siehe auch Tracefile konfigurieren [Seite 490].

Traceart für die Anzeige angeben


Das R/3-System initialisiert auch diesen Parameter aus der Systemumgebung. Als Traceart wird
der SQL Trace vorgeschlagen. Rufen Sie den Anzeigefilter unmittelbar nach der Aufzeichnung
des Trace-Protokolls auf, so werden die Tracearten so initialisiert, wie sie zuletzt eingeschaltet
waren.

Trace-Intervall festlegen
Das System initialisiert den Trace-Intervall mit 00:00:00 bis zur aktuellen Systemzeit für den
laufenden Tag. Rufen Sie jedoch diese Anzeige unmittelbar nach der Aufzeichnung des Trace-
Protokolls auf, so wird das Trace-Intervall aus dem Ein- und Ausschaltzeitpunkt der Trace-
Aufzeichnung bestimmt.

Beachten Sie, daß es bei der automatischen Bestimmung des Trace-Intervalles zu


Ungenauigkeiten kommen kann, die dann zu einer unvollständigen Anzeige der Liste
der Tracesätze führen kann, falls Sie auf einem verteilten Rechnersystem arbeiten
und die Uhren auf dem Datenbankserver und dem Appikationsserver nicht
synchronisiert sind.

Weitere Abgrenzungen erfassen


Weitere Informationen finden Sie unter:
Weitere Abgrenzungen [Seite 463].

Options
Mit der Drucktaste Options können Sie die vorgeschlagene Option ändern und auf eine
Operatorauswahl zurückgreifen. Setzen Sie dazu den Cursor auf den entsprechenden
Parameter.

Del. Selection
Wählen Sie die Drucktaste Del. Selection, um Einschränkungen einzelner Parameter ( Siehe
auch Weitere Selektionsoptionen [Seite 463]) aufzuheben.

Refresh
Mit der Drucktaste Refresh werden Ihre Eingaben im Anzeigefilter aufgefrischt. Sie können
hierzu alternativ auch die ENTER-Taste verwenden.

April 2001 461


BC - ABAP Workbench: Werkzeuge SAP AG
Anzeigefilter

Initialisieren der Filterparameter


Rufen Sie während einer R/3-Sitzung den Performance-Trace wiederholt auf, so sind die
Filterparameter entsprechend Ihrer letzten Einstellung vorgegeben. Über die rechte Maustaste
und die Funktion Initial filter trace list erhalten Sie wieder die Standardinitialisierung.

Listenart festlegen
Mit der Auswahl Basic list und nach Betätigen der Drucktaste Show verzweigen Sie zur
Grundliste. Mit der Auswahl Extended list gelangen Sie entsprechend zur Erweiterten Liste.
Siehe auch Liste der Trace-Sätze anzeigen [Seite 465]

462 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Weitere Abgrenzungen

Weitere Abgrenzungen
Sie können noch weitere Abgrenzungen für der Anzeige der Tracesätze zu den folgenden
Parametern vornehmen:
• Nutzerkreis ("Username")
• Objekte ("Objectname")
– SQL-Trace: Tabellenname, auf den sich die SQL-Anweisung bezieht
– Enqueue-Trace: Sperrobjekte, auf den sich die Anweisung bezieht
– RFC-Trace: Instanz, auf der eine Funktion ausgeführt wird
• Ausführungsdauer ("Duration")
• Operationen ("Operation")
– SQL-Trace: Datenbankoperation
– Enqueue-Trace: Operation für das Sperrobjekt
– RFC-Trace: Charakteristik der Ausführung (Client/Server)
Als Standardeinschränkungen stehen zur Verfügung:
- für Username: der aktuelle Nutzer
- für Objectname: die Anzeige der Systemtabellen (D010*, D020*, DDLOG) wird unterdrückt.
Die Parameter Duaration und Operation werden nicht initialisiert.
Für die Duaration haben Sie die Möglichkeit, einen numerischen Wert für die Zeit einzugeben.
Die Zeiteinheit ist Mikrosekunde. Für die übrigen Parameter können Sie jeweils ein Muster oder
eine Bezeichnung angeben. Bei einem Muster können sie neben alphanumerischen Zeichen
auch Maskenzeichen ' * ' und ' + ' verwenden.
Zwecks weiterer Einschränkung können Sie auf eine Operatorauswahl zurückgreifen. Setzen Sie
den Cursor auf den entsprechenden Parameter und wählen Sie den Drucktaste Options. Aus
dem eingeblendeten PopUp wählen Sie die Operation aus und legen fest, ob die Tracesätze
selektiert werden sollen, die die Bedingung erfüllen (die Ampel steht dann auf grün) oder ob
diese von der Selektion auszuschließen sind ( Ampel auf rot).
Falls Sie mehrere Werte, Bezeichnungen oder Muster für die Selektion eines Parameters
angeben oder ein Intervall festlegen wollen, so verwenden Sie die "Mehrfachselektion", zu der
Sie über die Ikone „=>“ am rechten Rand gelangen. Hier können Sie zusätzliche Abgrenzungen
für zu selektierenden oder auszuschließenden Tracesätze festlegen.
Beispiel: Für die Duration könnte etwa die Einschränkung auf ein bestimmtes Intervall von
Interessse sein.

April 2001 463


BC - ABAP Workbench: Werkzeuge SAP AG
Weitere Abgrenzungen

464 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Listen mit Tracesätzen anzeigen

Listen mit Tracesätzen anzeigen


Voraussetzungen
Sie haben den Performance-Trace ausgeschaltet, den Wertebereich für die Anzeige im
Anzeigefilter [Seite 460] festgelegt und dort die Grundliste bzw. die Erweiterte Liste mit der
Drucktaste Show zur Anzeige gebracht.

Listen
Die aufgezeichneten Tarcesätze können Sie entweder in Form einer Grundliste (Basic list) oder
der Erweiterten Liste (Extended list) anzeigen lassen. Die Grundliste ist in der Erweiterten Liste
vollständig enthalten. In der Erweiterten Liste sind lediglich 3 weitere Spalten für die Anzeige
hinzugefügt. Zum Analysieren der Tracesätze stehen weitere Funktionen bereit, die Sie aus der
Grundliste und der erweiterten Liste aufrufen können. Beide Listen verfügen über gleichen
Funktionsumfang und Sie können zwischen den Listen mit Auswahl einer Drucktaste problemlos
wechseln.

Grundliste

In der ersten Zeile der Liste wird eine Zwischenüberschrift, die für sämtliche Tracesätze eines zu
analysierenden Programms unverändert bleibt, ausgegeben. Sie enthält folgende Parameter:
- Name der Transaktion, Prozeß-Identifikationsnummer, Prozeßtyp, Mandant und Nutzername.
Es folgt dann eine Zeile mit folgenden Spaltenüberschriften:
• Duration Ausführungszeit der Anweisung. Die Angabe erfolgt in der Form Millisekunden.
Mikrosekunden
• Object

April 2001 465


BC - ABAP Workbench: Werkzeuge SAP AG
Listen mit Tracesätzen anzeigen

– SQL-Tracesatz: Name der Datenbanktabelle


– Enqueue-Tracesatz: Name des Sperrobjektes
– RFC-Tracesatz: Verkürzter Name der Instanz, auf der der Funktionsbaustein ausgeführt
wird
• Oper
– SQL-Tracesatz: Name der Operation, die auf der Datenbank auszuführen ist. Sie hierzu:
Gemessene DB-Operationen [Seite 474]
– Enqueue-Tracesatz: Name der Sperroperation
– RFC-Tracesatz: Client | Server (Client bedeutet, daß eine Funktion „remote“ aufgerufen
wurde, und mit Server wird bezeichnet, daß die Funktion bereitgestellt und ausgeführt
wurde).
• Rec Satzanzahl
– SQL-Trace: Anzahl der wiedergefundenen oder behandelten Sätze, die zwischen dem
R/3-System und der Datenbank ausgetauscht werden.
– Enqueue-Trace: Anzahl der Granulate
– RFC-Trace: nicht belegt
• RC Rückkehrcode der protokollierten Anweisung
• Statement Kurzform der protokollierten Anweisung
– abhängig von der Traceart.

Die Ausführungszeit (Duration) wird in der Liste mit einer Signalfarbe unterlegt,
wenn ein definierter Schwellenwert überschritten wird. Dieser Schwellenwert beträgt
100000 Mikrosekunden. Er ist in der Typgruppe "SQLT" als Konstante
"SQLT_DURATION_NEG" vereinbart. Wenn Sie einen anderen Schwellenwert
festlegen möchten, so können Sie die Konstante entsprechend ändern.

Beachten Sie, daß die Zeitangbe für die Duration nur so genau sein kann, wie es
die Hardware zuläßt. Der von der Hardware vorgesehene Zeitschritt kann nicht
unterschritten werden. Ist die Ausführungszeit für die Anweisung kleiner als dieser
Zeitschritt, so wird Null für die Ausführungszeit angezeigt.

Erweiterte Liste
Sie gelagen von der Grundliste in die Erweiterte Liste durch Wahl der Drucktaste Extended list
oder über den entsprechende Menüpunkt. Hier stehen zusätzliche 3 Spalten für die Anzeige der
Tracesätze zur Verfügung:
• hh:mm:ss.ms Angabe des Ausführungszeitpunkts in der Form Stunden : Minuten :
Sekunden. Millisekunden
• Program Name des Programms, das die protokollierte Anweisung ausgeführt
• Curs

466 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Listen mit Tracesätzen anzeigen

– SQL-Tracesatz: Nummer des Cursors (Verweis auf den Cursor-Cash), der zum
Wiederfinden von Datenbanksätzen verwendet wird.
– Enqueue- und RFC-Tracesatz: nicht belegt.

Weitere Funktionen
Analysieren der Tracesätze
• Sortieren der Liste
• Anzeige der protokollierten Anweisung in aufbereiteter Form
• Angaben zur Definition des zugehörigen Dictionary-Objektes im Falle des SQL- und
Enqueue-Traces
• Anzeige der protokollierten Anweisung im Quellcode
• Angabe des Zugriffsplanes für eine protokollierte SQL-Anweisung
• Aufbereitung der identischen Select-Anweisungen der Traceliste
• Verdichten der Traceliste
• Wecheln zwischen beiden Listen
Weitere Informationen finden Sie unter Tracesätze analysieren [Seite 468]

Unterscheiden der Tracearten


Die Sätze der einzelnen Tracearten werden zur Unterscheidung mit unterschiedlichen Farben
unterlegt.

Standardfunktionen
Zum Positionieren und Suchen in der Liste, zum Ausdrucken der Liste und zum Sichern der Liste
in einen File des Betriebssystems stehen Ihnen die R/3-Standardfunktionen zur Verfügung, die
Sie über die entsprechende Menüpunkte, Drucktasten oder Funktionstasten aufrufen.
Siehe auch Listen lokal sichern [Seite 492].

April 2001 467


BC - ABAP Workbench: Werkzeuge SAP AG
Tracesätze analysieren

Tracesätze analysieren
Voraussetzungen
Sie haben die zu analysierenden Tracesätze in Form der Grundliste oder der Erweiterten Liste
zur Anzeige gebracht.

Funktionen
Sortieren der Liste
Das Sortieren kann nach jedem Parameter der Zwischenüberschrift erfolgen, also nach dem
Namen der Transaktion, der Prozeß-Identifikationsnummmer, dem Prozeßtyp, den Mandanten
und nach dem Namen des Nutzers. Positionieren Sie dazu den Cursor auf den Parameter, nach
dem sortiert werden soll und wählen Sie die Drucktaste Sort oder den entsprechenden
Menüpunkt.

Wechseln zwischen Listen


Sie gelagen von der Grundliste auf die Erweiterte Liste durch Wahl der Drucktaste Extended list
oder über den entsprechende Menüpunkt. Umgekehrt kehren Sie mit der "Zurück-" bzw. mit der
F3-Taste zur Grundliste zurück.

Detailanzeige und Ersetzen der Platzhalter


Beim Aufbereiten der protokollierten Anweisung können Sie anweisen, daß die Platzhalter
(Variablen) in der Anweisung durch die aktuellen Variablen ersetzt werden oder die Platzhalter in
der Anweisung verbleiben und die aktuellen Variablen aufgelistet werden. Falls keine aktuellen
Variablen vorliegen, sind beide Darstellungsformen identisch. Verwenden Sie dazu einen
Doppelklick auf die Kurzform der Anweisung bzw. den Menüpunkt Detail oder die "Lupen-Ikone".

468 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Tracesätze analysieren

Falls Sie die Platzhalter durch die aktuellen Variablen ersetzen möchten, dann wählen Sie die
Drucktaste Var. replace oder den entsprechenden Menüpunkt.

Informationen zu DDIC-Objekten anzeigen


Möchten Sie sich die Dictionary-Beschreibung für das Objekt (Tabelle oder Sperrobjekt)
ansehen, auf das sich die Anweisung bezieht, so stellen Sie den Cursor auf das Objekt und
wählen die Drucktaste DDIC info. Alternativ können Sie den gleichnamigen Menüpunkt
verwenden. Sind zu der protokollierten Anweisung mehrere DDIC-Objekte vorhanden, wie
beispielsweise bei einem Join, so wird in der Spalte Object dasjenige aufgeführt, das als erstes
in der Anweisung erscheint.

April 2001 469


BC - ABAP Workbench: Werkzeuge SAP AG
Tracesätze analysieren

Im Falle eines RFC-Protokollsatzes wird in dieser Spalte ein verkürzter Name der Instanz
eingetragen, auf der der Funktionsbaustein ausgeführt wird. In diesem Fall entfällt eine
Dictionary-Beschreibung.
Sie können von hieraus noch weitere DDIC-Information abrufen, indem Sie zur Definition des
Objektes im DDIC verzweigen. Siehe auch Dictionary-Informationen abrufen [Seite 495].

Ausführungsplan für SQL-Anweisung anzeigen


Über den Drucktaste Explain SQL oder den gleichnamigen Menüpunkt können Sie sich den
Ausführungsplan für die SQL-Anweisung anzeigen lassen, die Sie zuvor mit dem Cursor markiert
haben. Für welche SQL-Anweisungen der Ausführungsplan angezeigt werden kann, hängt von
dem genutzten Datenbanksystem ab. Wenn Sie das Datenbanksystem Oracle einsetzen, wird
der Ausführungsplan für die SELECT-Anweisung in der folgenden Form angezeigt:

470 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Tracesätze analysieren

Zum Quellcode verzweigen


Um zum Quellcode der protokollierten Anweisung zu verzweigen, markieren Sie mit dem Cursor
die Kurzform der Anweisung und wählen Sie die Drucktaste ABAP display bzw. den
gleichnamigen Menüpunkt.

Beachten Sie, daß nicht in jedem Falle der Quelltext anzeigbar ist. Wenn z.B. der
Aufruf aus dem R/3-Kernel erfolgt ist, können Sie nicht auf die entsprechende
Codestelle verzweigen.

Identische Selects
Bei der Analyse eines Traceprotokolls kann es von besonderer Bedeutung sein, identische
Select-Anweisungen zu ermitteln. Zu diesem Zweck steht Ihnen der Menüpunkt Identical selects
zur Verfügung. Sie bekommen eine Liste von denjenigen SQL-Anweisungen angezeigt, die
mehrfach ausgeführt werden. Sie können anschließend dazu übergehen, wiederholte oder
überflüßige Datenbank-Aufrufe aus dem untersuchten Programm zu eliminieren.

Verdichten der Traceliste


Schließlich können Sie sich die Select-Anweisungen verdichten lassen, um einen Überblick über
die Gesamtausführungszeit und die insgesamt gefundenen Sätze zu erhalten. Verwenden Sie
dazu den Menüpunkt Summary.

April 2001 471


BC - ABAP Workbench: Werkzeuge SAP AG
SQL-Traceanalyse

SQL-Traceanalyse
Mit dem SQL-Trace als Teil des Performance-Traces können Sie verfolgen, wie die in Reports
und Transaktionen verwendeten OPEN-SQL-Befehle in Standard-SQL-Befehle (siehe auch
Embedded SQL [Seite 473]) übersetzt und mit welchen Parametern die Embedded-SQL-Befehle
an das verwendete Datenbanksystem übergeben werden.

Überblick
Zwischen dem Ein- und Ausschalten der Trace-Funktion werden hierzu alle Datenbankaktivitäten
aufgezeichnet, die für einen bestimmten Nutzer oder eine Nutzergruppe stattfinden. Das R/3-
System übersetzt zunächst OPEN-SQL-Befehle in Embedded-SQL-Befehle, übergibt diese an
die verwendete Datenbank und stellt die Ergebnisse bereit. Der an die Datenbank übergebene
Embedded-SQL-Befehl wird zusammen mit den zugehörigen Parametern protokolliert. Ebenso
werden die Ergebnisse des SQL-Befehls wie Rückkehrcode, Anzahl der von der Datenbank
wiedergefundenen, eingefügten oder gelöschten Sätze in den SQL-Tracefile geschrieben. Die
Protokollierung der Ausführungszeit der Anweisung und der Aufrufstelle im
Anwendungsprogramm bzw. der Anwendungstransaktion, ermöglicht Ihnen weitergehende
Auswertungen, die durch die SQL-Trace-Funktion unterstützt werden.

Aus der SQL-Traceaufzeichnung können Sie entnehmen,


• welche SQL-Anweisungen Ihre Anwendung ausführt.
• welche Werte das System für bestimmte Datenbankzugriffe und -änderungen benutzt.
• wie das System ABAP OPEN-SQL-Befehle (wie z.B. SELECT) in Standard-SQL-
Anweisungen umsetzt.
• wo Ihre Anwendung COMMIT-Anweisungen setzt.
• wo Ihre Anwendung wiederholte Datenbankzugriffe ausführt.
• welche Datenbankzugriffe oder -änderungen im Verbuchungsteil Ihrer Anwendung
stattfinden.

472 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Embedded SQL

Embedded SQL
Eine der Schwierigkeiten bei der Verbindung einer Programmiersprache mit einer SQL-
Schnittstelle ist die Übergabe der selektierten Datensätze. Wenn das System eine SQL-
Anweisung verarbeitet, steht erst nach der Selektion fest, wie groß der zurückgelieferte
Datenbestand sein wird. Ein solcher Datenbestand besteht aus Sätzen, die alle dieselbe Struktur
haben. Das System muß diese Sätze in Form einer dem aufrufenden Programm bekannten
Datenstruktur an dieses Programm zurückgeben, z.B. als Array.
Der Nachteil eines Arrays ist dessen statische Definition. Sie müssen die Größe eines Arrays vor
der Laufzeit angeben. Da Sie die Größe des vom System zurückgelieferten Datenbestandes
jedoch nicht kennen, müßten Sie einen sehr großen Array definieren, damit es nicht zu einem
Überlauf kommt.
Um dieses Problem zu umgehen, übersetzt das R/3-Basissystem ABAP-Open SQL-
Anweisungen in Embedded SQL-Operationen. Hierfür definiert das System einen Cursor. Dieser
stellt eine logische Verbindung zu den selektierten Datensätzen in der Datenbank dar und sorgt
für die Datenübergabe zwischen ABAP-Programmen und der Datenbank. Siehe auch
Datenbankoperationen [Seite 474].
Bei jeder FETCH-Operation übergibt dann die Datenbank einen oder mehrere Datensätze an die
R/3 DB-Schnittstelle.

April 2001 473


BC - ABAP Workbench: Werkzeuge SAP AG
Gemessene DB-Operationen

Gemessene DB-Operationen
Jede SQL-Anweisung wird vom R/3-System in DB-Operationen zerlegt. Mit Hilfe des SQL-Traces
haben Sie Möglichkeit, die Ausführungszeit dieser Operationen zu vermessen:

DECLARE Definiert einen neuen Cursor innerhalb eines SAP-Work-Prozesses und weist
diesem die SQL-Anweisung zu. Die Kurzform dieser Anweisung wird in der
Liste der Tracesätze unter Statement angezeigt. Der Cursor wird mit einer
eindeutigen Nummer, der Cursor-ID versehen. Die Cursor-ID wird für die
Kommunikation zwischen SAP-System und Datenbanksystem verwendet.

PREPARE Übersetzt die SQL-Anweisung und legt den Ausführungsplan fest.

OPEN Öffnet einen Cursor für eine vorbereitete (übersetzte) SELECT-Anweisung.


Mit OPEN werden die Parameter für den Datenbankzugriff übergeben. OPEN
wird nur für SELECT-Anweisungen verwendet.

FETCH Übergibt einen oder mehrere Sätze aus dem Datenbestand, der in der
Datenbank durch die SELECT-Anweisung selektiert wurde, an die DB-
Schnittstelle des R/3-Systems. Der Datenbestand wird durch den Cursor
identifiziert.

REOPEN Öffnet erneut einen Cursor, den das System für eine SELECT- Anweisung
vorbereitet hat und übergibt die neuen Parameter an die Datenbank.

EXEC Übergabe der Parameter für die Anweisung von der Datenbank und
Ausführen der Anweisungen, die Daten in der Datenbank ändern (z.B. über
UPDATE, DELETE, oder INSERT).

REEXEC Öffnet einen Cursor erneut, den das System für eine vorangegangene EXEC-
Anweisung bereits vorbereitet hat.

Zur Reihenfolge der Verarbeitung dieser Operationen siehe Logische Reihenfolge der DB-
Operationen [Seite 475]

474 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Logische Reihenfolge der DB-Operationen

Logische Reihenfolge der DB-Operationen


Die Datenbankoperationen sind miteinander verbunden und treten immer in derselben logischen
Reihenfolge auf:
Die Funktion DECLARE definiert den Cursor und weist ihm eine Nummer zu. DECLARE geht der
Operation PREPARE voran.
Mit PREPARE wird eine bestimmte SQL-Anweisung vorbereitet, z.B.:
select * from sflight where carrid eq 'LH'.
und das Zugriffsverfahren definiert, bevor das System die Anweisung an die Datenbank
übergeben kann. Während dieser Vorbereitung ist das System nur mit der Struktur der SQL-
Anweisung befaßt, nicht mit den Werten, die sie enthält.
Die Funktion OPEN nimmt die vorbereitete SELECT-Anweisung und vervollständigt sie mit den
richtigen Werten. Im obigen Beispiel würde OPEN für das Feld carrid den Wert LH ausgeben.
Mit FETCH werden die Sätze aus der Datenbank in die Datenbankschnittstelle des R/3-Systems
übergeben. Alle DB-Operationen, die für das Ausführen einer SQL-Anweisung benötigt werden,
stehen durch dieselbe Cursor-ID in Verbindung.
Falls es sich um eine SQL-Anweisung handelt, die zu Änderungen in der Datenbank führt, wie
durch INSERT, UPDATE oder DELETE, so erfolgt nach der Vorbereitung der Anweisung mit
PREPARE das Ausführen der Anweisung mit EXEC.
Kann auf eine bereits vorbereitete SQL-Anweisung Bezug genommen werden, so entfällt jeweils
die DB-Operation PREPARE und die Ausführung wird mit REOPEN bzw. mit REEXEC
vollzogen.

April 2001 475


BC - ABAP Workbench: Werkzeuge SAP AG
Pufferung

Pufferung
Das R/3-System sorgt dafür, daß der Datenaustausch zwischen dem R/3-System und dem
Datenbanksystem möglichst performant erfolgt. Dies wird erreicht durch:
• Die Pufferung von Tabellen. Das Programm greift auf Daten aus dem Puffer des
Anwendungsservers des Systems zu.
• Die Pufferung von Datenbankanforderungen. Erst wenn eine OPEN-SQL-Anweisung es
erfordert, werden einzelne Sätze in der Datenbank gelesen bzw. der Datenbank übergeben.
Bei der Analyse der Tracesätze ist der Pufferungsmechanismus entsprechend zu
berücksichtigen.

Pufferung von Tabellen


Da Tabellen teilweise oder vollständig gepuffert sein können (siehe auch Datenbanktabellen
puffern [Extern].), führt ein OPEN-SQL-Befehl nur dann zu einem Datenbankzugriff, wenn dieser
SQL-Befehl nicht über den Tabellenpuffer realisiert werden kann. Es entspricht also nicht jedem
OPEN-SQL-Befehl ein Befehl oder eine Befehlsfolge im SQL-Trace. Jeder SQL-Befehl
andererseits, den Sie im Tracefile vorfinden, wurde auch tatsächlich an die Datenbank gesendet
und dort ausgeführt.

Pufferung von Datenbankanforderungen


Um die Anzahl der relativ laufzeitintensiven PREPARE-Aufrufe so klein wie möglich zu halten,
hält jeder Work-Prozeß eines Anwendungsservers eine bestimmte Anzahl von bereits
übersetzten SQL-Anweisungen in einem eigens dafür vorgesehenen Puffer (Standard ist 250
Anweisungen).
Soll nun eine bestimmte OPEN SQL-Anweisung ausgeführt werden, wird zunächst geprüft, ob
sich diese Anweisung bereits im “Statement-Cache” befindet. Ist dies der Fall, wird die
Anweisung unmittelbar ausgeführt, d.h. es wird ein REOPEN (SELECT) bzw. ein REEXEC
(INSERT, UPDATE, DELETE) abgesetzt.
Befindet sich die Anweisung nicht im Puffer, muß dies zunächst durch eine entsprechende
PREPARE-Operation für das anschließende OPEN/EXEC vorbereitet werden. Der Puffer wird
nach einem LRU-Algorithmus (“least recently used”) verwaltet, d.h. bei Bedarf werden diejenigen
Anweisungen aus dem Puffer verdrängt, die am seltesten ausgeführt werden. Häufig benutzte
Anweisungen müssen somit in der Regel nur einmal vorbereitet werden.
Ein Anwendungsserver puffert die Anweisungen DECLARE, PREPARE, OPEN und EXEC im
Cursor-Cache eines Work-Prozesses. Sobald das System einmal einen Cursor für eine
DECLARE-Anweisung geöffnet hat, kann es also diesen Cursor im selben Work-Prozeß immer
wieder verwenden.

476 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Analyse einer Beispiel-SQL-Datei

Analyse einer Beispiel-SQL-Datei


Wenn Sie ein SQL-Tracefile für eine Anwendung anlegen, sehen Sie genau, wie das System
Datenbankoperationen handhabt. In dieser Beispielanwendung liest ein Report Sätze in der
ABAP Dictionary-Tabelle SFLIGHT mit ABAP-Open-SQL-Anweisungen und verändert sie später.
Da die Tabelle SFLIGHT nicht gepuffert ist, muß das System zunächst auf die Datenbank
zugreifen, um die Sätze zu besorgen. In den folgenden Abschnitten wird die Datei aus der
Beispielanwendung analysiert.

Lesezugriff
Das erste Bild der SQL-Trace-Datei zeigt jede gemessene Datenbankanweisung aus der
Anwendung an. In der Trace-Datei wird Zeitpunkt und Dauer der Anweisung aufgezeichnet. Die
an der Anweisung beteiligte ABAP Dictionary-Tabelle wird ebenfalls aufgelistet.
Eine Trace-Datei für einen Lesezugriff auf die Tabelle SFLIGHT könnte so aussehen:

Das System hat verschiedene Datenbankoperationen gemessen, die am Lesezugriff auf die
Tabelle SFLIGHT beteiligt waren.
Operation Funktion
PREPARE Bereitet die OPEN-Anweisung vor und bestimmt die Zugriffsmethode. Da ein
aktiver Cursor mit der Nummer 18 im Cursor-Cache des Work-Prozesses zur
Verfügung steht, führt das System keine DECLARE-Operation durch. Das
System muß jedoch die SELECT-Anweisung vorbereiten, mit der die Tabelle
SFLIGHT gelesen wird.
Das System versieht das Feld ‘MANDT’ und ‘CARRID’ in der SELECT-
Anweisung zu diesem Zeitpunkt nicht mit einem Wert, sondern weist ihm eine
datenbankspezifische Markierung zu.
OPEN Öffnet den Cursor und spezifiziert das Selektionsergebnis, indem die
Selektionsfelder mit Werten versehen werden. In diesem Beispiel erhält das
Feld ‘MANDT’ den Wert ‘000’ und das Feld ‘CARRID’ den Wert ‘LH’. Die
OPEN-Operation erzeugt dann einen Bestand eingelesener Datensätze.

April 2001 477


BC - ABAP Workbench: Werkzeuge SAP AG
Analyse einer Beispiel-SQL-Datei

FETCH Bewegt den Cursor über den von der Operation OPEN angelegten
Datenbestand. Die Array-Größe, die neben den FETCH-Daten angezeigt wird,
bedeutet, daß das System Pakete von maximal 392 Sätzen gleichzeitig in den
gepufferten Bereich übertragen kann. Dieser Platz wird auf dem
Anwendungsserver für die Tabelle SFLIGHT angelegt.
Im obigen Beispiel holen die FETCH-Operationen die maximale Anzahl von
Sätzen aus dem Datenbestand. Dann werden diese Sätze an die
Programmschnittstelle übergeben.

Schreibzugriff
Eine Muster-SQL-Datei, die eine Datenbankanweisung analysiert, die Daten in der Tabelle
D010SINF verändert, könnte so aussehen:

Das Beispiel zeigt, wie das System neue Sätze in die Tabelle einfügt (INSERT). Wie im ersten
Beispiel, in dem das System nur einen Lesezugriff ausführte, muß das System die
Datenbankoperationen, die Sätze auf der Datenbank verändern, vorbereiten (PREPARE). Die
PREPARE-Operation geht den anderen Operationen voran.

478 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Beispielanalyse einer Oracle-Anweisung

Beispielanalyse einer Oracle-Anweisung


Sie können die SQL-Trace-Funktion dazu nutzen, Erklärungen zu bestimmten Oracle-
Anweisungen anzuzeigen. Aus der Anzeige einer Trace-Datei heraus können Sie die Funktion
Explain SQL nutzen, um mehr Informationen zu einer bestimmten Datenbankanweisung
anzuzeigen. Die Explain-Funktion steht nur für PREPARE- und REOPEN-Operationen zur
Verfügung. So analysieren Sie eine Anweisung:
1. Stellen Sie den Cursor auf die Zeile, die die zu analysierende Datenbankanweisung enthält.
2. Wählen Sie Explain.
Das Explain-Bild zeigt die Datenbankstrategie für die gewählte Operation.
Wenn Sie mit einer ORACLE-Datenbank arbeiten, können Sie z.B. die Analyse für die folgende
Anweisung anzeigen:
select * from fllog where flcode = ‘00000123’.
Das System zeigt folgendes an:

OPERATION OPTIONS OBJECT NAME ID PAID POS


SELECT STATEMENT 0
TABLE ACCESS BY ROWID FLLOG 1 0 1
INDEX UNIQUE FLLOG___0 2 1 1
SCAN

QUERY PLAN

SELECT STATEMENT
TABLE ACCESS BY ROWID FLLOG
INDEX UNIQUE SCAN FLLOG___0(UNIQUE)
Die Felder in der Anzeige haben folgende Bedeutung:
OPERATION Name der Operation.
OPTIONS Eigenschaften der Operation.
OBJEKT NAME Objekt, das an der Operation beteiligt ist.
ID ID-Nummer der Operation.
PAID ID-Nummer, an die die aktuelle Operation ihre Ergebnisse übergibt. Das
ist wichtig, wenn geschachtelte Zugriffe auf verschiedenen
Hierarchieebenen beteiligt sind.
POS Identifiziert die nächste Nummer für Operationen, die auf derselben
Hierarchieebene stattfinden.
In obigen Beispiel ist der Schlüssel voll qualifiziert. Die Datenbank kann mit dem
Primärschlüsselindex FLLOG__0 auf die Tabellensätze zugreifen. Jede transparente Tabelle im
ABAP-Dictionary hat einen Primärschlüssel. Das System legt automatisch einen Index für diesen

April 2001 479


BC - ABAP Workbench: Werkzeuge SAP AG
Beispielanalyse einer Oracle-Anweisung

Schlüssel an. Der Primärschlüssel ist eindeutig, d.h., es gibt nur einen Indexeintrag für jede Zeile
der Tabelle. Das System benutzt deshalb die Operation UNIQUE SCAN.
Die Operation UNIQUE SCAN erhält die ID 2 und die Parent ID 1. Das bedeutet, daß diese
Operation ihre Ergebnisse an die Operation mit der ID 1 übergibt. Die ID 1 gehört zur Operation
TABLE ACCESS. TABLE ACCESS kann wegen der Eindeutigkeit des Index BY ROWID direkt
auf einen Satz zugreifen. Sobald das System eine Zugriffsstrategie gewählt hat, sendet es die
SELECT-Anweisung mit ID 0 an die Datenbank.
Wenn die SELECT-Anweisung keinen voll qualifizierten Schlüssel angibt, muß die Datenbank
möglicherweise die Sätze mit einem FULL TABLE SCAN lesen. In diesem Fall gibt es keinen
Index, und die Datenbank liest die gesamte Tabelle in Paketen.
Wenn der Index nicht eindeutig ist, verwendet die Datenbank einen RANGE SCAN. RANGE
SCAN ist ein generischer Zugriff bei dem ein Indexbereich durchsucht wird, der relevante Daten
enthalten könnte.
Die Operation NESTED LOOP ist für geschachtelte Lesezugriffe bestimmt, wobei mehrere
Indizes für einen Datenbankzugriff zusammengefaßt werden.

480 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Beispielanalyse einer Informix-Anweisung

Beispielanalyse einer Informix-Anweisung


Sie können die SQL-Trace-Funktion dazu nutzen, Erklärungen zu bestimmten Informix-
Anweisungen anzuzeigen. Aus der Anzeige eines Tracefiles heraus können Sie die Funktion
Explain SQL nutzen, um mehr Informationen zu einer bestimmten Datenbankanweisung
anzuzeigen. Die Explain-Funktion steht nur für PREPARE- und REOPEN-Operationen zur
Verfügung. So analysieren Sie eine Anweisung:
1. Stellen Sie den Cursor auf die Zeile, die die zu analysierende Datenbankanweisung enthält.
2. Wählen Sie Explain.
Das Explain-Bild zeigt die Datenbankstrategie für die gewählte Operation.
Wenn Sie mit einer INFORMIX-Datenbank arbeiten, können Sie z.B. die Analyse für die folgende
Anweisung anzeigen:
select owner from systables where tabname = ‘atab’
Das System zeigt folgendes an:
Execution plan of a select statement (Online Optimizer)
QUERY:
SELECT OWNER
FROM SYSTABLES
WHERE TABNAME = ‘ ATAB’
Estimated Cost: 1
Estimated # of Rows Returned: 1
1) informix.systables: INDEX PATH
(1) Index Keys: tabname owner (Key-Only)
Lower Index Filter: informix.systables.tabname = ‘ ATAB’
Die Felder in der Anzeige haben folgende Bedeutung:
QUERY Identifiziert die SQL-Anweisung, die analysiert wurde.
Estimated Cost Schätzt die Datenbankzeit, die zur Ausführung der Anweisung
benötigt wurde. Der kostenbasierende Optimizer schätzt diesen
Wert anhand der I/O- und CPU-Zeiten, die zur Ausführung der
Anweisung benötigt wurden. Je größer Estimated Cost,
desto teurer die Anweisung.
Estimated # of Schätzt die Anzahl der Tabellenzeilen, die die SQL-Anweisung
Rows Returned: zurückliefern wird.
Unmittelbar unter der Anzahl zurückgelieferter Zeilen folgt der gewählte Ausführungsplan. Im
obigen Beispiel sieht dieser Plan so aus:
1) informix.systables: INDEX PATH
Die 1) gibt an, daß das System die Tabelle systables als ersten Schritt des Plans ausführt.
Bei Analysen, die mehrere Tabellen umfassen (Views und Joins), gibt die Nummernfolge die

April 2001 481


BC - ABAP Workbench: Werkzeuge SAP AG
Beispielanalyse einer Informix-Anweisung

Reihenfolge an, in der das System die Tabellen verarbeitet. Im vorliegenden Beispiel ist nur ein
einziger Schritt erfolderlich.
Der Ausführungsplan gibt die Art des Tabellenzugriffs an. Im obigen Beispiel erfolgte der Zugriff
über INDEX PATH. Auf die erforderlichen Daten wird nun über den Index der Tabelle
systables zugegriffen. Normalerweise verwendet der Ausführungsplan den Primärschlüssel
als Index. Jede transparente Tabelle im ABAP-Dictionary hat einen Primärschlüssel, für den das
System automatisch einen Index erstellt.

Wenn das System einen großen Teil einer Tabelle lesen muß, verwendet es nicht
den Primärschlüssel als Index.
In diesem Beispiel mußte das System die Zeile, die dem Indexschlüssel entspricht, nicht lesen.
Die benötigte Information war bereits in Schlüssel selbst vorhanden. In der Analyse wird dies
durch Key-Only deutlich:
(1) Index Keys: tabname owner (Key-Only)
Falls eine SELECT-Anweisung ohne vollqualifizierten Schlüssel angegeben wird, kann es sein,
daß die Datenbank die relevanten Zeilen mit einem FULL TABLE SCAN lesen muß. In diesem
Fall enthält die SQL-Explain-Ausgabe keinen Index, sondern eine Anzeige ähnlich der folgenden:
1) informix.systables: SEQUENTIAL SCAN
Dies gibt an, daß die gesamte Tabelle gelesen werden muß (FULL TABLE SCAN).
Bei komplexeren Operationen, die die Kombination der Ergebnisse mehrerer SELECT-
Anweisungen auf unterschiedliche Tabellen erfordern, werden weitere Strategien angezeigt (z.B.
MERGE JOIN, DYNAMIC HASH JOIN). Diese Anzeigen beziehen sich auf die vom Optimizer
gewählten Join-Strategien.

Aktualität sicherstellen
Der Optimizer kann nur dann exakte Werte für jedes Analysefeld liefern, wenn die statistischen
Informationen zu jeder Tabelle aktuell sind. Um exakte Analysewerte zu erhalten, müssen Sie
daher sicherstellen, daß die aktuellsten statistischen Informationen zum Inhalt jeder
angesprochenen Tabelle verfügbar sind.
Um diese Informationen zu aktualisieren, verwenden Sie die Funktion Update Statistics. Da der
vom Optimizer gewählte Ausführungsplan stark von diesen Informationen abhängt (z.B. die
Verwendung des FULL TABLE SCAN anstelle eines Index), sollten Sie die Aktualität durch
regelmäßiges Ausführen der Funktion Update Statistics sicherstellen.

482 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Enqueue-Traceanalyse

Enqueue-Traceanalyse
Verwendung
Mit dem Enqueue-Trace können Sie verfolgen, welche Sperranweisungen Ihre Anwendung oder
das R/3-System auf welchen Sperrobjekten ausführt und welche Parameter das System für diese
Sperren verwendet. Die im Tracefile protokollierten Tracesätze können Sie anzeigen lassen und
weitergehend analysieren.

Funktionsumfang
Zwischen dem Ein- und Ausschalten des Enqueue-Traces werden alle Sperraktionen
aufgezeichnet, die für einen bestimmten Nutzer oder eine Nutzergruppe stattfinden.
Aus der Traceaufzeichnung können Sie folgende Angaben entnehmen:
• welche Sperranweisungen ausgeführt werden.
• den Tabellennamen des Sperrobjektes.
• den Namen des Programms, der die Sperre ausgelöst hat.
• die Art der Sperre.
• den Eigentümer der Sperre.
• die Gesamtzeit, die für das Sperren benötigt wird.
• die Zeitdauer, die der Enqueue-Server benötigt, um die Sperre aufzulösen.
Weitere Informationen finden Sie unter
Enqueue-Tracesätze [Seite 484] und
Detailanzeige der Enqueue-Tracesätze [Seite 485]

April 2001 483


BC - ABAP Workbench: Werkzeuge SAP AG
Enqueue-Tracesätze

Enqueue-Tracesätze
Für einen Enqueue-Tracesatz haben die folgenden Spalten eine besondere Bedeutung:

In der Grundliste
• Duration Ausführungszeit der Sperroperation. Die Angabe erfolgt in der Form
Millisekunden. Mikrosekunden
• Object Identifiziert den Namen des Sperrobjectes.
• Oper Als Operation wird die ausgeführte Sperroperation angegeben. Weitere
Informationen finden Sie unter Sperrobjekte [Extern].
• RC Rückkehrcode.
Steht in dieser Spalte eine Null, so wurde die Enqueue-Operation erfolgreich ausgeführt. Bei
„1“ konnte die Sperre nicht ausgeführt werden, da das Sperrobjekt oder Teile davon bereits
gesperrt waren.
• Rec Die Anzahl der Granulate des Sperrobjektes.
• Statement Hier werden die Granulate für die Sperranforderung angegeben. Falls mehrere
Granulate vorhanden sind, werden diese durch das Zeichen „ | „ getrennt. Für jedes Granulat
werden der Sperrmodus, die Sperrtabelle und das Sperrargument angegeben.
Siehe auch: Sperrobjekte [Extern].

In der Erweiterten Liste


• hh:mm:ss.ms Angabe des Ausführungszeitpunkts der Sperroperation in der Form
Stunden : Minuten : Sekunden. Millisekunden.
• Program Name des ABAP-Programms, das die Sperre ausgelöst hat.
• Curs nicht belegt.
Für eine weitergehende Analyse verwenden Sie die Detailanzeige der Enqueue-Tracesätze
[Seite 485].

484 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Detailanzeige der Enqueue-Tracesätze

Detailanzeige der Enqueue-Tracesätze


Die Detailanzeige zu einem Enqueue-Tracesatz erhalten Sie mit Auswahl der "Lupen-Ikone" oder
des entsprechenden Menüpunktes aus der Grundliste bzw. der Erweiterten Liste.
Die Detailanzeige enthält folgende Angaben:
• erste Zeile:
– Operation des Enqueue-Statements.
– Name des Sperrobjektes.
• Owner Eigentuemer der Sperre.
• Owner_UPT Eigentümer der Sperre in der logischen Verarbeitungseinheit.
• Scope-Parameter Gibt an, wer Eigentümer der Sperre ist.
• Collision Owner Falls hier ein Name erscheint, so hält dieser Eigentümer die angeforderte
Sperre.
• Collision Object Dieses Sperrobjekt hält bereits die gewünschte Sperre oder Teile davon.
• Collision Username Dem Sperreigentümer zugeordneter Anmeldenutzer.
• Remote Time Gesamtzeit in Millisekunden, die für das Sperren insgesamt benötigt wird
(Zeit im Client). Sie setzt sich aus den Anteilen Request Time und der für die Kommunikation
benötigten Zeit zusammen. Bei einem lokalen Request geht nur die lokale Ausführungszeit
ein.
• Request Time Zeit in Mikrosekunden, die der Enqueue-Server benötigt, um die Sperre
auszuführen (Zeit im Server). Falls es sich um einen asynchronen Aufruf handelt oder kein
Server angefordert wird, so ist diese Zeit Null.
• ABAP-Programname Name des ABAP-Programms, das die Sperre ausgelöst hat.
• Number Anzahl der Granulate.
• Lock-Mode Art der Sperre.
• Tablename Tabellenname des Sperrobjektes.
• Granularity Argument Sperrargument.

April 2001 485


BC - ABAP Workbench: Werkzeuge SAP AG
RFC-Traceanalyse

RFC-Traceanalyse
Verwendung
Mit dem RFC-Trace können Sie verfolgen, welche Remote-Aufrufe Ihre Anwendung oder das
R/3-System und auf welcher Instanz diese Aufrufe ausführt werden. Die im Tracefile
protokollierten Tracesätze können Sie anzeigen lassen und weitergehend analysieren.

Funktionsumfang
Zwischen dem Ein- und Ausschalten des RFC-Traces werden alle RFC-Aufrufe aufgezeichnet,
die für einen bestimmten Nutzer oder eine Nutzergruppe stattfinden.
Aus der Traceaufzeichnung können Sie entnehmen,
• welche Funktionsbausteine "remote" vom zu anlysierenden Programm aufgerufen wurden.
• ob der RFC erfolgreich ausgeführt werden konnte.
• die Gesamtzeit, die für die Ausführung des Remote-Aufrufs benötigt wurde.
• wie die RFC-Kommunikation gekennzeichnet ist (RFC-Client oder als RFC-Server).
• auf welcher Instanz der Remote-Aufruf ausgeführt wurde.
• durch welche technischen Parameter diese Instanz charakterisiert wird.
• Die Anzahl beim RFC gesendeter und empfangener Bytes.
Weitere Informationen finden Sie unter:
RFC-Tracesätze [Seite 487] und
Detailanzeige der RFC-Tracesätze [Seite 488]

486 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
RFC-Tracesätze

RFC-Tracesätze
Fuer einen RFC-Tracesatz haben die folgenden Spalten eine besondere Bedeutung:

In der Grundliste
• Duration Ausführungszeit des RFC-Aufrufs. Die Angabe erfolgt in der Form Millisekunden.
Mikrosekunden
• Object Verkürzter Name der Instanz (des Systems), auf der der Remote-Aufruf des
Funktionsbausteins ausgeführt wurde.
• Oper Kennzeichnung der instanzübergreifenden RFC-Kommunikation. Hierbei wird
zwischen dem RFC-Client und dem RFC-Server unterschieden. Demzufolge wird mit
"Client" diejenige Instanz gekennzeichnet, die eine Funktion "remote" aufruft. Die als
"Server" angegebene Instanz stellt die angeforderte Funktion bereit und führt diese auch
aus.
• Rec nicht belegt.
• RC Rückkehrcode des protokollierten Remote-Aufrufs. Ein Rueckkehrcode „0“ in der
Spalte „RC“ zeigt die erfolgreiche Ausführung des Remote-Aufrufs an. Bei Werten <> 0 trat
ein Fehler auf.
• Statement In dieser Spalte werden der Name der lokalen Instanz, der Name der "remote"
verwendeten Instanz, der Name des aufgerufenen Funktionsbausteins sowie die Anzahl der
gesendeten und empfangenen Bytes ausgegeben.

In der Erweiterten Liste


• hh:mm:ss.ms Angabe des Ausführungszeitpunkts des Remote-Aufrufs in der Form
Stunden: Minuten : Sekunden. Millisekunden.
• Program Name des ABAP-Programms, das den Remote-Aufruf eines Funktionsbausteins
ausgelöst hat.
• Curs nicht belegt.
Für eine weiterhehende Analyse verwenden Sie die Detailanzeige der RFC-Tracesätze [Seite
488].

April 2001 487


BC - ABAP Workbench: Werkzeuge SAP AG
Detailanzeige der RFC-Tracesätze

Detailanzeige der RFC-Tracesätze


Die Detailanzeige zu einem RFC-Tracesatz erhalten Sie mit Auswahl der "Lupen-Ikone" oder des
entsprechenden Menüpunktes aus der Grundliste bzw. der Erweiterten Liste.
Die Detailanzeige enthält folgende Angaben:
• Name des aufgerufenen Funktionsbausteines.
• Local IP-Address IP-Adresse des lokalen Rechners auf dem der RFC-Trace erzeugt
wurde.
• Local computername Name des lokalen Rechners.
• Remote IP-Address IP-Adresse des Rechners, auf dem der Funktionsbaustein „remote“
ausgeführt wurde.
• Remote computername Name des „remote“ verwendeten Rechners.
• Client/Server Charakterisierung der RFC-Kommunikation beim Remote-Aufuf des
Funktionsbausteins als RFC-Client oder als RFC-Server.
• ABAP-Program Name des ABAP-Programms, das den Remote-Aufruf ausgelöst hat. Wird
kein Name explizit angegeben („Space“) so ist der Aufruf aus dem Kernal des R/3-Systems
erfolgt.
• RFC-Time Gesamtzeit für den Ausführung des RFC-Aufrufs.
• RFC-Time Gesamtzeit, die für die Ausführung des Remote-Aufrufs
• Bytes send Anzahl der zum Zielsystem gesendeten Bytes.
• Bytes receive Anzahl der vom Zielsystem empfangenen Bytes.

488 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Weitere Funktionen

Weitere Funktionen

Tracing konfigurieren [Seite 490]


Listen lokal sichern [Seite 492]
Die Funktion "Explain SQL" [Seite 493]
Dictionary-Informationen abrufen [Seite 495]

April 2001 489


BC - ABAP Workbench: Werkzeuge SAP AG
Tracefile konfigurieren

Tracefile konfigurieren
Profilparameter
Um den Performance-Trace durchführen zu können, benötigt das System die folgenden
Profilparameter:
• rstr/file: Dieser Parameter legt ein Muster für den Pfadnamen des Tracefiles fest.
• rstr/max_diskspace: Mit diesem Parameter wird die maximale Größe in Bytes festgelegt,
die einem Tracefile zugeordnet werden kann.

Als Standardgröße wird 16 384 000 (16 000 KByte) empfohlen. Mit der Transaktion
ST01 besteht jedoch die Möglichkeit, den Namen des Tracefiles zu ändern. Damit ist
es möglich, mit mehreren Tracefiles zu arbeiten und so das Überschreiben der
Trace-Aufzeichnung zu verhindern.
• rstr/fileset/allowed: Dieser Parameter definiert, ob ein Ändern des Namens des Tracefiles
überhaupt zugelassen wird oder nicht. Standardmäßig hat der Parameter den Wert „1“,
wodurch ein Ändern des Tracefile-Namens möglich ist. Ist er mit dem Wert „0“ belegt, kann
der Name des Tracefiles nicht geändert werden.
Diese Parameter werden bei der Installation des Systems gesetzt. Sie können diese Parameter
über die Profileparameter-Pflege (Transaktion RZ11) auch ändern.

Namen des Tracefiles ändern


Der Performance-Trace schreibt Sätze in einen Tracefile, dessen Name bereits vom
Systemadministrator vereinbart wurde. Sofern der Profilparameter rstr/fileset/allowed
standardmäßig belegt ist, können Sie den im Parameter rstr/file festgelegten Namen in der
Transaktion ST01 als Maske mit einem frei wählbaren Zeichen verwenden und somit einen
neuen Namen für ein Tracefile vereinbaren.

Vorgehensweise
So ändern Sie den Namen des Tracefiles.
1. Zum Einstiegsbild der Transaktion ST01 gelangen Sie entweder mit Eingabe des
Transaktioncodes oder aus der ABAP-Workbanch über den Menüpfad Administration ->
Systemverwaltung -> Monitor -> Trace -> SAP-System-Trace.
2. Wählen Sie dann den Menüpfad Bearbeiten → Neue Datei.
Es erscheint ein Popup, in dem Sie das drittletzte Zeichen frei wählen können, falls der
Profileparameter "rstr/fileset/allowed" in der Transaktion RZ11 ensprechend eingestellt
wurde.

490 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Tracefile konfigurieren

3. Geben Sie ein Zeichen ein.


Es sind entweder einer der Ziffern von 0 bis 9 oder einer der Buchstaben von A bis Z
wählbar.

April 2001 491


BC - ABAP Workbench: Werkzeuge SAP AG
Listen lokal sichern

Listen lokal sichern


Die Ergebnisse der Trace-Aufzeichnung werden in einen Tracefile geschrieben und können mit
der Grundliste oder der Erweiterten Liste zur Ansicht gebracht werden. Sie können auch
sämtliche Tracesätze einer Liste auf eine lokale Datei ihres Frontends übertragen und haben
somit die Möglichkeit, ihre Meßdaten längerfristig zu sichern.

Vorgehensweise
So gehen Sie vor, um eine Liste lokal zu sichern:
1. Rufen Sie das Einstiegsbild [Seite 454] des Performance-Traces auf.
2. Wählen Sie die Drucktaste List Trace.
Sie gelangen zum Anzeigefilter [Seite 460].
3. Legen Sie im Anzeigefilter den Wertebereich für die Anzeige der Tracesätze fest.
4. Wählen Sie Show.
Je nach Auswahl in 3. erscheint die Grundliste oder die Erweiterte Liste.
5. Wählen Sie den Menüpfad Trace → Save to PC file…
Es erscheint das Popup Liste sichern in Datei.
6. Wählen Sie das Format zum Sichern der Liste in der lokalen Datei und bestätigen Sie mit
Weiter.
7. Geben Sie im darauffolgenden Popup den lokalen Pfadnamen an.
8. Wählen Sie Übertragen.

Ergebnis
Die Tracesätze der Liste wurden lokal auf dem Frontend in einer Datei gesichert. Diese Datei
kann nun im gewählten Format angezeigt werden.

Alternativ kann bei Auswahl unkonvertiert bei Pkt. 6 ein Download in die
Zwischenablage erfolgen.

492 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Die Funktion Explain SQL

Die Funktion Explain SQL


Die Funktion Explain SQL bietet Ihnen die Möglichkeit, die Datenbankstrategie für den Zugriff auf
beliebige Tabellen oder Views zu analysieren, die im ABAP-Dictionary oder ausschließlich auf
der Datenbank definiert sind. Sie können mit dieser Analyse die Indizes identifizieren, die für den
Datenbankzugriff benutzt werden. Es gibt zwei Möglichkeiten, eine SQL-Anweisung zu
analysieren:
• Aus dem Einstiegsbild der Performance-Traces können Sie eine Anweisung überprüfen,
ohne ein Tracefile zu erzeugen.
• Aus der Listenanzeige eines Tracefiles heraus können Sie eine Dictionary-Tabelle
auswählen und sich Details zur Zugriffsmethode anzeigen lassen.
Siehe auch Tracesätze analysieren [Seite 468].

Beachten Sie, daß das Ergebnis der Funktion Explain SQL datenbankspezifisch
ist! Dies betrifft sowohl die SQL-Anweisung als auch die Operation. Bei einigen DB-
Systemen kann Explain SQL lediglich für die SELECT-Anweisung ausgeführt
werden. Um das Ergebnis genau verstehen zu können, müssen Sie über gute
Kenntnisse des betreffenden DB-Systems verfügen. Informationen finden Sie in der
Dokumentation des jeweiligen Herstellers.

Analyse einer SQL-Anweisung ohne Tracefile


So erhalten Sie die Analyse eines SQL-Trace ohne ein Tracefile zu erstellen:
1. Wählen Sie Explain one SQL statement (für Oracle) oder Explain one SQL request (für
Informix) auf dem Einstiegsbild des Performance-Traces.
Das System zeigt ein Bild mit einem Eingabefeld an. Hier müssen Sie die Tabelle/(den View)
identifizieren, auf die Sie zugreifen wollen.
2. Geben Sie eine SQL-Anweisung an.
Achten Sie darauf, daß Sie nur Großbuchstaben verwenden.

3. Wählen Sie Save.


Das System untersucht die Anweisung und zeigt Informationen zur Zugriffsstrategie der
Datenbank an.

April 2001 493


BC - ABAP Workbench: Werkzeuge SAP AG
Die Funktion Explain SQL

494 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Dictionary-Informationen abrufen

Dictionary-Informationen abrufen
Sie können aus der Liste der Tracesätze auf weitere Informationen über Dictionary-Objekte
zugreifen und zur Definition im ABAP Dictionary verzweigen.

Voraussetzungen
Die interessierenden Tracesätze des Tracefiles wurden nicht überschrieben.

Vorgehensweise
1. Rufen Sie das Einstiegsbild [Seite 454] des Performance-Traces auf.
2. Wählen Sie List Trace.
Sie gelangen zum Anzeigefilter [Seite 460].
3. Legen Sie den Wertebereich für die Anzeige der Tracesätze fest.
4. Wählen Sie Show.
Sie gelangen zur Anzeige der Tracesätze des Tracefiles in Form der Grundliste oder der
Erweiterten Liste.
5. Positionieren Sie den Cursor auf die Zeile, die die zu analysierende Dictionary-Tabelle
enthält.
6. Wählen Sie DDIC-Info.
Der erste Teil des Dictionary-Informationsbildes zeigt administrative Daten für die
ausgewählte Tabelle wie Tabellenklasse, Größenordnung des benötigten Speicherplatzes
usw.
Der zweite Teil des Bildes enthält Informationen über die Indizes, die für diese Tabelle
angelegt wurden. Dictionary-Tabellen haben immer mindestens einen Index, der durch den
Primärschlüssel der Tabelle gebildet wird. Wenn andere Indizes innerhalb des ABAP-
Dictionary angelegt wurden, so werden diese ebenfalls aufgelistet.
7. Wählen Sie Table/View fields.
So verzweigen Sie von der Traceliste zur Tabellendefinition im ABAP-Dictionary.

April 2001 495


BC - ABAP Workbench: Werkzeuge SAP AG
Information zu Entwicklungsobjekten

Information zu Entwicklungsobjekten
In der ABAP Workbench steht Ihnen ein umfassendes Informationssystem zur Verfügung.
Einzelheiten hierzu finden Sie unter den folgenden Themen:

Das Repository-Infosystem [Seite 498]

Umfeldermittlung [Seite 501]


Umfeld ermitteln [Seite 502]
Die Funktion Verwendungsnachweis [Seite 503]

Die Anwendungshierarchie [Seite 505]

Der Data Browser [Seite 507]

Kundenspezifische Data-Browser-Anzeige [Seite 509]

Weitere Funktionen des Data Browser [Seite 511]

496 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Übersicht über das Navigations- und Informationssystem

Übersicht über das Navigations- und


Informationssystem
Die Development Workbench enthält die folgenden Werkzeuge für die Navigation in
Entwicklungsobjekten: den Repository Browser, das ABAP Repository-Infosystem und die
Anwendungshierarchie. Die Benutzungsoberfläche dieser drei Navigationswerkzeuge ist ähnlich
wie ein “Datei-Manager” strukturiert. Weiterhin enthält die Workbench den Data Browser, mit
dem Sie in Datenbanktabellen blättern können.
Mit dem Repository Browser können Sie Ihre persönlichen Entwicklungsobjekte organisieren und
verwalten und durch Entwicklungsobjektlisten navigieren. Der Repository Browser ist das bei der
täglichen Entwicklungsarbeit am häufigsten verwendete Werkzeug.
Im ABAP Repository sind alle Entwicklungsobjekte des Systems zusammengefaßt. Das
Repository-Infosystem gibt Auskunft über Objekte und ihre Beziehungen zu anderen Objekten.
Sie können beispielsweise:
• Listen von Programmen, Tabellen, Feldern, Datenelementen und Domänen generieren.
• ermitteln, wo bestimmte Tabellen und Felder in Bildschirmbildern und ABAP-
Programmen verwendet werden.
• Fremdschlüsselbeziehungen anzeigen, etc.
Die Anwendungshierarchie ist ein Organisationswerkzeug, mit dem Sie die Struktur aller
Anwendungen im R/3-System anzeigen können. Jedes Unternehmen legt seine eigene
Anwendungshierarchie an. Mit dem Werkzeug 'Anwendungshierarchie' können Sie die
Entwicklungsobjekte anzeigen, die in den einzelnen Anwendungen Ihres Unternehmens
verwendet werden. Außerdem hilft Ihnen dieses Werkzeug bei der Planung neuer Anwendungen.
Mit dem Data Browser können Sie Informationen zu Tabelleneinträgen aufrufen, ohne daß dazu
ein ABAP-Programm erforderlich ist. Sie können durch den Tabelleninhalt blättern und von
bestimmten Einträgen zu den zugehörigen Prüftabelleneinträgen verzweigen. Bei Tabellen, für
die das Pflegeattribut gesetzt wurde, können Sie mit dem Data Browser auch Einträge erstellen
oder aktualisieren.

Wann verwenden Sie welches Werkzeug?


Mit den Informations- und Navigationswerkzeugen der Development Workbench können Sie
nicht nur auf alle Objekte in Ihrem System zugreifen, sondern auch alle anderen Workbench-
Werkzeuge aufrufen. Wenn Sie beispielsweise zu einem Tabellenobjekt navigieren, ruft das
System das Dictionary auf und zeigt die Tabelle im Dictionary an. Verzweigen Sie zu einem
Programmobjekt, wird der ABAP Editor gestartet und das Programm im Editor angezeigt.

April 2001 497


BC - ABAP Workbench: Werkzeuge SAP AG
Das Repository-Infosystem

Das Repository-Infosystem
Sie verwenden das Repository-Infosystem, um Objekte im R/3-System zu suchen. Dabei können
Sie bestimmte Suchkriterien festlegen. Von der Workbench aus wählen Sie Übersicht →
Infosystem, um auf das ABAP-Repository-Infosystem zuzugreifen.
Das Einstiegsbild des Infosystems zeigt eine hierarchische Liste aller Objekttypen in Ihrem R/3-
System.

In einem R/3-System möglichen Objektkategorien umfassen unter anderem


Modellierungsobjekte, ABAP-Dictionary-Objekte, Programmierobjekte usw.
Im Thema Objekte aus Listen auswählen [Seite 22] wird genauer beschrieben, wie Sie mit den
Listen im Repository-Infosystem arbeiten.
Sie verwenden das Infosystem, um einen bestimmten Objekttyp zu suchen, beispielsweise eine
Domäne, die bestimmte Voraussetzungen für Ihre neue Anwendung erfüllt. So suchen Sie ein
bestimmtes Objekt:
1. Starten Sie das Repository-Infosystem.
2. Markieren Sie eine Objektkategorie.
3. Wählen Sie Suchen.

498 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Das Repository-Infosystem

4. Der Inhalt des Selektionsbildschirms hängt von der gewählten Objektkategorie ab.
Standardmäßig werden die Standardselektionsfelder des Objekts angezeigt.
5. Geben Sie Werte für die Suche ein, und wählen Sie Ausführen.
Das System zeigt eine Trefferliste an. Standardmäßig wird die Grundsicht angezeigt; Sie
können jedoch auch eine Gesamtsicht der Objektattribute aufrufen, indem Sie
Gesamtsicht wählen.
Im Gruppenrahmen Einstellungen im unteren Teil des Suchbildes können Sie im Feld Max.
Trefferzahl angeben, wie viele Treffer höchstens angezeigt werden sollen. Standardmäßig
werden bei der Suche sowohl SAP- als auch Kundenobjekte berücksichtigt.

Suchergebnisse lesen
Wenn der Suchvorgang abgeschlossen wurde, zeigt das System eine Ergebnisliste an. Hier
stehen Ihnen verschiedene Funktionen zur Verfügung, die sich jedoch im einzelnen nach dem
gesuchten Objekt richten.

Suchkriterien in Varianten sichern


Wenn Sie häufig nach bestimmten Objekten suchen, können Sie Varianten anlegen, in denen die
Suchkriterien zusammengefaßt werden. In der Dokumentation Einführung in das R/3-System
[Extern] wird genauer beschrieben, wie Sie Varianten anlegen. Möchten Sie die Varianten
anzeigen, die für ein bestimmtes Objekt angelegt wurden, wählen Sie im Repository-Infosystem
Variante holen. Wenn Sie Ihre aktuellen Suchkriterien als Variante sichern möchten, geben Sie
die Kriterien ein, und wählen Sie Springen → Varianten → Als Vari. sichern.

Kundenspezifische Selektionswerte
Sie können kundenspezifische Selektionswerte für die Einstiegsvariante und die maximale
Trefferzahl angeben. Wählen Sie dazu im Einstiegsbild des Repository-Infosystems die
Drucktaste Benutzerparameter. Die Maximale Trefferzahl gibt die Anzahl der gefundenen
Entspechungen an, die angezeigt werden soll. Für die Einstiegsvariante sind folgende
Einstellungen möglich:
Standard- Bezeichnet die Variante SAP_STANDARD. Dies ist die
Selektionskriterien Standardvariante von SAP.
Alle Selektionskriterien Gibt an, daß alle verfügbaren Selektionskriterien zur Verfügung
stehen.
Benutzerspezifische Bezeichnet eine vom Benutzer erstellte Variante. Im
Variante darunterstehenden Feld müssen Sie den Namen der
gewünschten Variante eingeben.

Verwendungsnachweis
Die Funktion Verwendungsnachweis ist die Suchfunktion des Repository-Infosystems. Diese
Funktione können Sie von fast allen Bildern in der ABAP Workbench aufrufen. Auf dem
Einstiegsbild des Infosystems markieren Sie einen Objekttyp (z.B. Modellierung), und wählen
dann Verwendungsnachweis. Weitere Informationen zu dieser Funktion finden Sie unter Die
Funktion Verwendungsnachweis [Seite 503].

April 2001 499


BC - ABAP Workbench: Werkzeuge SAP AG
Das Repository-Infosystem

Umfeldermittlung
Mit der Funktion Umfeldermittlung können Sie die Außenreferenzen (d.h. die nicht zu dem Objekt
gehörenden referenzierten Objekte) ermitteln. Weiter Informationen zu dieser Funktion finden Sie
unter Umfeldermittlung [Seite 501]

500 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Umfeldermittlung

Umfeldermittlung
Verwendung
Diese Funktion wird benötigt, wenn Sie Außenreferenzen zu einem Objekt bestimmen wollen.
Außenreferenzen stellen dabei Objekte dar, auf die Sie in Ihrem Objekt referenzieren, die aber
nicht innerhalb Ihres Objekts definiert sind.

Die Außenreferenzen zu der Entwicklungsklasse XYZ, sind alle Entwicklungsobjekte


anderer Entwicklungsklassen, die von mindestens einem Objekt der
Entwicklungsklasse XYZ referenziert werden.

Daher bietet sich die Umfeldermittlung an, wenn Sie überprüfen wollen, wie gut ein Objekt
gekappselt ist. Ein vollständig gekappseltes Objekt hat keine Außenreferenzen.
Vor allem vor dem Transport von Objekten in andere Systeme sollten Sie eine Umfeldermittlung
durchführen. Stellen Sie sicher das das erforderliche Umfeld in dem Zielsystem nach Ihrem
Transport vorhanden ist (keine Referenzen auf lokale Objekte).

Voraussetzungen
Bevor Sie diese Funktion einsetzen können, müssen Sie den Objekttyp bestimmen, für den Sie
eine Umfeldermittlung durchführen wollen. Dazu verzweigen Sie in das Repository-Infosystem,
wählen einen Objekttyp mit dem Cursor aus und verzweigen zur Umfeldermittlung mit der
Funktion Umfeld.

Funktionsumfang
Das System listet alle Außenreferenzen zu dem angegebenen Objekt in einer Liste auf. Dabei
werden die Außenreferenzen nach Objekttypen sortiert dargestellt.

April 2001 501


BC - ABAP Workbench: Werkzeuge SAP AG
Umfeld ermitteln

Umfeld ermitteln
1. Verzweigen Sie in das Repository-Infosystem.
2. Wählen Sie den Objekttyp mit dem Cursor aus, für den Sie eine Umfeldermittlung
durchführen wollen.
3. Führen Sie die Funktion Umfeld aus.
4. Auf dem Dialogfenster Umfeldermittlung <objekt> geben Sie den Objektnamen ein, für
den Sie eine Umfeldermittlung durchführen wollen.
5. Sofern eine Liste mit Objekttypen für die Umfeldermittlung zur Verfügung steht, können
Sie durch Markieren der Ankreuzfelder die Umfeldermittlung einschränken.
6. Wenn Sie nur über bestimmte Entwicklungsklassen selektieren wollen, können Sie mit
der Funktion Suchbereich die entsprechende Auswahl vornehmen.
Nach der Eingabe verlassen Sie das Dialogfenster wieder mit der Funktion Übernehmen.
7. Starten Sie die Umfeldermittlung. Dabei haben Sie folgende Alternativen:
• Direkt Starten: Die Umfeldermittlung wird sofort gestartet und es wird danach eine
Liste mit den Ergebnissen angezeigt.
• Starten im Hintergrund: Sie starten die Umfeldermittlung als Hintergrundprozeß.
Nachdem der Prozeß abgearbeitet ist, werden Sie über eine Dialogmeldung
informiert, daß die Liste erstellt wurde. Sie können die Liste einsehen, indem Sie auf
dem Einstiegsbild des Repository-Infosystem die Funktion Listenvorrat ausführen.

Für die Entwicklungsklasse FBK (Kreditoren) soll eine Umfeldermittlung durchgeführt


werden. Dabei sollen die Entwicklungsklassen die mit ‘S’ beginnen nicht
berücksichtigt werden.
1. Verzweigen Sie in das Repository-Infosystem.
2. Markieren Sie den Objekttyp Entwicklungsklassen unter Umfeld
Entwicklungskoordination.
3. Führen Sie die Funktion Umfeld aus.
4. Geben Sie die Entwicklungsklasse FBK in das entsprechende Feld ein.
5. Führen Sie die Funktion Suchbereich ein und geben Sie in das Feld Entwicklungsklasse
S* ein.
6. Wählen Sie die Funktion Selektionsoptionen und selektieren Sie die entsprechende
Selektionsoption auf dem folgenden Dialogfenster und verlassen Sie es dann wieder.
7. Wählen Sie die Funktion Ausführen.
Sie erhalten eine Liste mit allen Außenreferenzen zu der Entwicklungsklasse FBK, die
nicht in Entwicklungsklassen liegen, deren Namen mit ‘S’ beginnen.

502 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Die Funktion Verwendungsnachweis

Die Funktion Verwendungsnachweis


Das Repository-Infosystem der Workbench ermittelt, wo ein Objekt definiert ist und wo es
verwendet wird. In allen Werkzeugen der Workbench können Sie mit Hilfsmittel →
Verwendungsnachweis eine Liste mit Verwendungsnachweisen für ein Objekt erstellen.
Wenn Sie die Funktion Verwendungsnachweis aktivieren, fordert Sie das System auf,
Suchkriterien einzugeben. Wenn Sie z.B. nach einem Programm suchen, zeigt das System
folgendes Bild an:

Mit der Funktion Verwendungsnachweis erstellen Sie eine Ergebnisliste, die Auskunft darüber
gibt, wo das Objekt überall verwendet wird.

Von dieser Ergebnisliste aus können Sie eine Fundstelle auswählen, und dann über Anzeigen
oder Ändern zur Fundstelle verzweigen. Wenn Sie Fundstellen wählen, gibt das System die
Zeilennummer der Fundstelle aus.

Von der Fundstelle zur Definition navigieren


In allen Werkzeugen der Workbench können Sie von der Fundstelle eines Objekts zu dessen
Definition navigieren. Dazu wählen Sie das Objekt an seiner Fundstelle mit Doppelklick aus. Das
System verzweigt dann zur Definition des Objekts.

April 2001 503


BC - ABAP Workbench: Werkzeuge SAP AG
Die Funktion Verwendungsnachweis

Wenn Sie eine Objektdefinition anklicken, bringt Sie das System zur Fundstelle. Wird das Objekt
an mehr als einer Stelle im System verwendet, fordert Sie das System auf, eine Liste mit
Verwendungsnachweisen zu erstellen.

504 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Die Anwendungshierarchie

Die Anwendungshierarchie
In der SAP-Anwendungshierarchie wird die Struktur aller Anwendungen im R/3-System
angezeigt. Sie können entweder eine Hierarchie der mit dem System gelieferten SAP-
Anwendungen oder eine Hierarchie Ihrer unternehmensspezifischen Anwendungen anzeigen.
Jeder Kunde, der die entsprechende Berechtigung hat, kann sich eine eigene
unternehmenspezifische Anwendungshierarchie erstellen.
Sie öffnen die Anwendungshierarchie, indem Sie im Einstiegsbild der ABAP Workbench
Übersicht → Anwendungshierarchie → SAP oder Kunde wählen.
Die Anwendungshierarchie enthält Titelknoten und Entwicklungsknoten. Zu Entwicklungsknoten
gehört eine Entwicklungsklasse, die anzeigt, daß tatsächlich vorhandene Objekte mit diesem
Knoten verbunden sind. Titelknoten sollen die Übersichtlichkeit der Hierarchie verbessern; ihnen
ist keine Entwicklungsklasse zugeordnet.

Wenn Sie einem Titelknoten eine Entwicklungsklasse zuordnen, entsteht dadurch ein neuer
Entwicklungsknoten:
Wenn Ihnen nur die Anwendung, nicht jedoch ihre Klasse bekannt ist, können Sie mit der
Hierarchie die Entwicklungsklasse ermitteln. Dies ist beispielsweise bei der
Anwendungsentwicklung im Team sinnvoll. Muß ein Entwickler eine alte Anwendung
aktualisieren, mit der er bisher noch nicht gearbeitet hat, kann er die Anwendungshierarchie
verwenden, um die Entwicklungsklasse der Anwendung zu ermitteln.
Wählen Sie eine Entwicklungsklasse durch Anklicken aus, um eine Liste der enthaltenen Objekte
anzuzeigen.

April 2001 505


BC - ABAP Workbench: Werkzeuge SAP AG
Die Anwendungshierarchie

Hierarchien anlegen
Mit der Anwendungshierarchie können Sie eine bereits vorhandene Anwendungsstruktur
anzeigen oder eine neue Anwendungsstruktur entwerfen. So fügen Sie beispielsweise einen
neuen Knoten hinzu:
1. Markieren Sie einen Knoten.
Der markierte Knoten bildet die oberste Ebene Ihrer neuen Hierarchie.
2. Wählen Sie Anwendungsknoten → Anlegen.
Das Dialogfenster Knoten anlegen wird angezeigt.
3. Geben Sie einen Knotennamen oder einen Namen für eine Entwicklungsklasse ein.
Der neue Knoten wird hinzugefügt. Wenn Sie einen Entwicklungsklassennamen
angegeben haben, wird die Kurzbeschreibung der Entwicklungsklasse als Knotentitel
verwendet, und der Name wird rechts vom Knoten angezeigt.
Wenn Sie einem Knoten eine Entwicklungsklasse zuordnen möchten, wählen Sie
Anwendungsknoten → Zuordn.Entw.klasse. Mit dieser Funktion können Sie einem Knoten eine
bereits vorhandene Entwicklungsklasse zuordnen oder eine neue Entwicklungsklasse für den
Knoten erstellen.

In Anwendungen nach Objekten suchen


Sie können von der Anwendungshierarchie aus in das Repository-Infosystem verzweigen. Diese
Funktion verwenden Sie, wenn Sie die Suche auf die Objekte in einer oder in mehreren
Anwendungen einschränken möchten. Beispiel: Sie suchen eine bestimmte Domäne, die in einer
Buchhaltungsanwendung eingesetzt wird.
So verzweigen Sie von der Anwendungshierarchie in das Repository-Infosystem:
1. Markieren Sie einen oder mehrere Knoten, indem Sie den Cursor auf einen Knoten stellen
und die Funktion Markieren ausführen.

Beim Markieren eines Knotens werden auch alle untergeordneten Knoten markiert.
Ein erneutes Markieren eines markierten Knotens führt dazu, daß der Knoten nicht
mehr markiert ist.
2. Wählen Sie Infosystem.
Sie verzweigen in das Repository-Infosystem.
3. Verwenden Sie das Repository [Seite 498] für die gewohnte Suche.

506 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Der Data Browser

Der Data Browser


Mit dem Data Browser können Sie auf Tabelleneinträge zugreifen, ohne daß dabei ein ABAP-
Programm erforderlich ist. Sie können:
• Tabelleneinträge anzeigen.
• alle Tabellenfeldwerte und dazugehörige Textfeldwerte anzeigen.
• von den Tabelleneinträgen zu den Einträgen in den zugehörigen Prüftabellen
verzweigen.
Bei Tabellen, für die das Pflegeattribut gesetzt wurde, können Sie mit dem Data Browser auch
Tabelleneinträge anlegen oder aktualisieren.

Tabellen anzeigen
Sie öffnen den Data Browser, indem Sie im Einstiegsbild der Development Workbench Übersicht
→ Data Browser wählen. Sie können den Data Browser jedoch auch im Menü Umfeld des
Repository Browser oder im Menü Hilfsmittel des ABAP Editors aufrufen. Geben Sie dann im
Data Browser einen Tabellennamen ein, und wählen Sie ENTER.
Es erscheint ein Selektionsbild, das die die Schlüsselfelder sowie weitere Felder der Tabelle und
Angaben zur Tabellengröße enthält. Schränken Sie die Menge der zu selektierenden Einträge
durch Eingabe von Selektionskriterien ein. Möchten Sie das Ergebnis Ihrer Auswahl anzeigen,
wählen Sie Ausführen. Daraufhin zeigt das System die Ergebnisse an.
Die Anzahl der ausgewählten Einträge wird in der Titelleiste angezeigt:

April 2001 507


BC - ABAP Workbench: Werkzeuge SAP AG
Der Data Browser

Oberhalb der Tabellenanzeige erscheint eine Statusleiste mit folgenden Informationen:


• Angezeigte Felder: Je nach Listbreite wird hier die Anzahl der angezeigten Felder und
die tatsächliche Anzahl von Feldern angegeben.
Möchten Sie mehr Felder anzeigen, müssen Sie einen höheren Wert in das Feld Breite
der Ausgabeliste eingeben.
• Feste Führungsspalten: gibt die Anzahl der Führungsspalten an. Diese Spalten bleiben
beim Blättern in der Tabelle stehen.
Sie können die Anzahl der Felder mit fester Position ändern, indem Sie einen anderen
Wert in das Feld Feststehende Führungsspalten eingeben.
• Listbreite: Anzahl der Zeichen, die in der Liste angezeigt werden. Standardmäßig beträgt
die Breite der Liste 250 Zeichen. Sie können aber auch eine individuelle Breite
einstellen. Geben Sie dazu im Feld Listbreite einen Wert zwischen 50 und 250 an.
Sowohl in der Listen- als auch in der Detailanzeige werden die unterschiedlichen Feldstatus
durch verschiedene Farben verdeutlicht. Wählen Sie Hilfsmittel → Farblegende, um eine
Aufschlüsselung der Farbbedeutungen aufzurufen.

508 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Kundenspezifische Data-Browser-Anzeige

Kundenspezifische Data-Browser-Anzeige
Im Data Browser können Sie sowohl das Selektionsbild als auch das Ergebnisbild mit
verschiedenen Optionen an Ihre spezifischen Bedürfnisse anpassen.

Das Selektionsbild
Wenn Sie das Selektionsbild sowie das Ergebnisbild des Data Browser an Ihre Bedürfnisse
anpassen möchten, wählen Sie Einstellungen → Benutzerparameter. Das Dialogfenster Data
Browser: Einstellungen wird angezeigt.
Einstellung Funktion
Breite der Ausgabeliste Mit diesem Feld können Sie die Breite des Data
Browser-Ergebnisbildes ändern.
Maximale Trefferzahl In diesem Feld können Sie die Anzahl der
ausgegebenen Einträge ändern. Wenn Sie
beispielsweise den Wert 100 eingeben, zeigt der Data
Browser nur die ersten 100 Einträge an, die die
Suchkritierien erfüllen.
Konvertierungsexit Wenn Sie dieses Ankreuzfeld markieren, wird die
berücksichtigen Konvertierungsroutine der Tabelle bei der Data Browser-
Ausgabe berücksichtigt.
Max. mögl. Trefferzahl anzeigen Wenn Sie dieses Ankreuzfeld markieren, werden alle
Einträge angezeigt, die die Suchkriterien erfüllen.
Gruppenrahmen Schlüsselwort Mit diesen Auswahlknöpfen legen Sie fest, wie die
Felder im Selektionsbild und in der Ausgabe beschriftet
werden. Wenn Sie Feldname markieren, wird als
Beschriftung der Dictionary-Feldname verwendet.
Markieren Sie dagegen Feldbezeichner, wird die
Dictionary-Beschreibung als Feldbezeichner verwendet.
Ihre Einstellungen gehen nicht verloren, wenn Sie Ihre SAP-Arbeitssitzung beenden.

Sortierfolge der Daten ändern


Sie können festlegen, wie der Data Browser die Ausgabe sortieren soll. Dazu wählen Sie im
Ergebnisbild Sort. aufsteigend oder Sort. absteigend. Weiterhin können Sie die primären
Sortierfelder ändern.
Standardmäßig verwendet das System die Schlüsselfelder, um die Daten zu sortieren. Möchten
Sie andere Felder für die Sortierung angeben, wählen Sie Einstellungen → Listaufbereitung →
Sortierung... . Das Dialogfenster Tabelle ... Sortierfeld eingeben wird angezeigt. Geben Sie 1
neben dem Feld ein, das Sie als primäres Sortierfeld verwenden möchten. Für das nächste
Sortierfeld geben Sie 2 ein usw. Sie können bis zu neun Sortierfelder angeben.

Anzahl der angezeigten Felder einschränken


Möchten Sie die Anzahl der im Selektionsbild angezeigten Felder einschränken, wählen Sie im
Selektionsbild Einstellungen → Felder für Selektion. Das Dialogfenster Felder für Selektion

April 2001 509


BC - ABAP Workbench: Werkzeuge SAP AG
Kundenspezifische Data-Browser-Anzeige

auswählen wird angezeigt. Markieren Sie die Tabellenfelder, die im Selektionsbild angezeigt
werden sollen. Standardmäßig sind alle Felder markiert.
Sie können auch die Feldanzahl für das Data Browser-Ergebnisbild einschränken. Dazu wählen
Sie im Ergebnisbild Einstellungen → Listaufbereitung → Spaltenauswahl... .

510 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Weitere Funktionen des Data Browser

Weitere Funktionen des Data Browser


Damit Ihnen die Funktionen des Data Browser zur Verfügung stehen, generiert das System für
jede neue Tabelle ein Tabellenverarbeitungsprogramm, das im System gespeichert wird. Wenn
Sie die Tabellendefinition ändern, wird das Tabellenverarbeitungsprogramm automatisch neu
generiert.
In manchen Fällen müssen Sie das Tabellenverarbeitungsprogramm manuell neu generieren.
Wählen Sie dazu Umfeld → Programmgenerierung.

Fremdschlüsselbeziehungen
Manche Felder haben Fremdschlüsselbeziehungen zu anderen Tabellen. Sie können für das
aktuelle Tabellenfeld das entsprechende Element der anderen Tabelle anzeigen. Dazu müssen
Sie zunächst eine Fremdschlüsseltabelle anzeigen. Gehen Sie dann folgendermaßen vor:
1. Positionieren Sie den Cursor auf das Feld, für das ein Fremdschlüssel definiert wurde.
2. Wählen Sie Umfeld → Prüftabelle.
Das System zeigt daraufhin das Prüftabellenelement an, das dem markierten
Fremdschlüsselfeld entspricht.

April 2001 511


BC - ABAP Workbench: Werkzeuge SAP AG
Weitere Konzepte

Weitere Konzepte
Mit inaktiven Sourcen ist ein weiteres Konzept für die meisten Entwicklungsobjekte der ABAP
Workbench wirksam.
Mit Business Add-Ins steht innerhalb der ABAP Workbench eine zusätzliche Technik zur
Erweiterung des SAP-Standards zur Verfügung.
Siehe dazu:

Inaktive Sourcen [Seite 513]

Business Add-Ins [Seite 529]

512 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Inaktive Sourcen

Inaktive Sourcen
In dieser Dokumentation finden Informationen zu folgenden Themen:

Konzept [Seite 514]

Unterstützung in den Werkzeugen [Seite 516]


Objekte aktivieren [Seite 518]
Übersicht zu inaktiven Objekten [Seite 519]
Statusanzeige [Seite 520]
Aktivieren von Klassen und Interfaces [Seite 522]
Auswirkungen auf Operationen [Seite 524]

Weitere Auswirkungen [Seite 527]

Besonderheiten bei Modifikationen [Seite 528]

April 2001 513


BC - ABAP Workbench: Werkzeuge SAP AG
Konzept

Konzept
Terminologie
Zum Verständnis inaktiver Sourcen werden die folgenden Grundbegriffe eingeführt:
Terminus Bedeutung
aktive Fassung Ist diejenige Datenbankversion eines Entwicklungsobjektes, die zur
Generierung des Laufzeitobjektes herangezogen wird.
inaktive Fassung Ist die gespeicherte Datenbankversion eines Entwicklungsobjektes,
die das Laufzeitobjekt (auch nach erneuter Generierung) nicht
beeinflußt.
Vorrat inaktiver Objekte Dieser benutzerspezifische Vorrat umfaßt die Menge aller inaktiven
Fassungen der Entwicklungsobjekte eines Benutzers. Bearbeitet der
Benutzer ein neues Objekt, dann wird sein Vorrat um dieses Objekt
erweitert. Nach dem Aktivieren eines Objektes wird dieses aus dem
Vorrat inaktiver Objekte gelöscht.
Von allen privaten Entwicklungsobjekten ($TMP) abgesehen, stellt
dieser Vorrat des Benutzers eine echte Teilmenge aller vom
Benutzer bearbeiteten Objekte dar, die in seinen offenen Aufgaben
vom Workbench Organizer verwaltet werden.

Motivation
Die Einführung inaktiver Sourcen gewährt dem Entwickler eine lokale, separate Sicht auf das R/3
Repository und schafft eine Grundlage für ein "lokales Laufzeitsystem".
Änderungen an Entwicklungsobjekten können innerhalb eines solchen lokalen Systems
ausreichend getestet werden, ohne irgendwelche Störungen des Umfelds zu verursachen.
Der wesentliche Vorteil dieses Konzeptes besteht in der Unterstützung eines reibungslosen
Entwicklungsablaufs. Sie können z.B. die Schnittstelle eines Funktionsbausteins ändern, ohne
daß dies sofortige Auswirkungen bei den Verwendern (in aufrufenden Programmen) zur Folge
hat. Die Auswirkungen auf die Umgebung machen sich erst dann bemerkbar, wenn das
geänderte Objekt aktiviert wird.
Ein weiterer bedeutender Vorteil liegt in der Vermeidung entbehrlicher Generierung von
ABAP-Programmen. Bisher folgte nach dem Sichern des Quelltextes im ABAP Editor
automatisch die Erzeugung einer neuen Load. Die Einführung der inaktiven Sourcen hat
demgegenüber einen Performance-Vorteil, da eine Generierung mit dem Aktivieren zum
geeignet gewählten Zeitpunkt und nicht automatisch erfolgt.
Die Einführung inaktiver Sourcen ist von einer weiteren Vereinheitlichung der Werkzeuge
bezüglich ihrer Operationen begleitet. Außerdem wird eine zusätzliche Sicherheit durch Prüfen
des Rahmenprogramms beim Aktivieren erzielt.

Konzept
§ Objekte werden stets inaktiv gesichert.
Ein in einem Werkzeug angelegtes oder bearbeitetes Entwicklungsobjekt hinterläßt nach
dem Sichern eine inaktive Fassung dieses Objektes auf der Datenbank.

514 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Konzept

§ Inaktive Objekte werden im Vorrat inaktiver Objekte des Benutzers vermerkt.


Die Entwicklungsobjekte, die ein Benutzer bearbeitet und inaktiv sichert, werden in seinen
persönlichen Vorrat aufgenommen. Jeder Benutzer verfügt also über seinen eigenen Vorrat
inaktiver Objekte, auf den andere Benutzer keinen direkten Zugriff haben. Jeder Benutzer
arbeitet ausschließlich mit seinem persönlichen Vorrat.
§ Es besteht die Möglichkeit, Vorräte inaktiver Objekte zu vernetzen.
Wird ein Entwicklungsobjekt von einem anderen Benutzer geändert, dann wird es nach dem
Sichern in dessen Vorrat aufgenommen.
§ Die Werkzeuge der ABAP Workbench berücksichtigen immer den Vorrat des Benutzers.
Im Anzeigemodus werden dem Benutzer die Objekte seines Vorrats in inaktiver Fassung
angeboten, alle anderen Objekte dagegen in aktiver Fassung (auch wenn eine inaktive
Fassung existiert). Dies gilt insbesondere für die Navigation in der ABAP Workbench.
Im Änderungsmodus wird stets die neueste Fassung ausgegeben, ganz unabhängig
davon, ob sie im Vorrat inaktiver Objekte enthalten ist oder nicht.
Alle betroffenen Werkzeuge verfügen über eine Anzeige, aus der der jeweilige Status des
Objektes jederzeit ersichtlich ist. Siehe auch Statusanzeige [Seite 520].
§ Der Benutzer kann sich eine Übersicht über seinen persönlichen Vorrat und über alle
inaktiven Objekte im System verschaffen. Siehe auch Übersichten zu inaktiven Objekten
[Seite 519].
§ Aktivieren des Vorrats inaktiver Objekte erfolgt zum gewählten Zeitpunkt.
Jeder Benutzer kann zum gewählten Zeitpunkt den gesamten oder nur einen Teil seines
Vorrats aktivieren. Mit der Aktivierung werden die betreffenden Objekte aus dem Vorrat
inaktiver Objekte gelöscht. Siehe auch Objekte aktivieren [Seite 518].
§ Nur die aktive Fassung wird zur Generierung von Laufzeitobjekten verwendet.
§ Unterstützung im Workbench Organizer.
Allen Teammitgliedern sind Aufgaben in einem gemeinsamen Auftrag zugeordnet und
können gemeinsam ein Objekt bearbeiten. Daher bekommen Teammitglieder sowohl im
Änderungs- als auch im Anzeigemodus stets die inaktive Fassung des Objektes angezeigt,
sofern diese existiert.
Nicht-Teammitglieder können das betreffende Objekt nicht bearbeiten und bekommen daher
im Anzeigemodus die aktive Fassung angeboten.
Ferner kann ein Transportauftrag erst dann freigegeben werden, nachdem alle zugeordneten
Objekte aktiviert wurden.

April 2001 515


BC - ABAP Workbench: Werkzeuge SAP AG
Unterstützung in den Werkzeugen

Unterstützung in den Werkzeugen


Unterstützende Werkzeuge
§ ABAP Editor
§ Class Builder
§ Function Builder
§ Screen Painter
§ Menu Painter

Im Dictionary ist das bisherige Konzept der Aktivierung nach wie vor wirksam.
Demzufolge werden Dictionary-Objekte zwar inaktiv gesichert, jedoch nicht mit einer
inaktiven Fassung im Vorrat inaktiver Objekte des Benutzers verzeichnet. Siehe
auch Aktivierung [Extern] im Dictionary.
Weitere Informationen finden Sie unter
Objekte aktivieren [Seite 518]
Übersicht zu inaktiven Objekten [Seite 519]
Statusanzeige [Seite 520]
Aktivieren von Klassen und Interfaces [Seite 522]
Besonderheiten beim Modifikationsassistenten [Seite 528]

Inkompatible Änderungen
Werkzeug Änderungen
ABAP Editor Mit der Funktion 'Sichern' wird stets die inaktive Fassung gespeichert.
(Bisher war es nur die aktive Fassung).
Die Funktion 'Prüfen' berücksichtigt den Vorrat inaktiver Objekte des
Benutzers.
Neue Funktion 'Aktivieren'.
Neu: Statusanzeige.
Dictionary Geänderte Bezeichnung in der Statusanzeige
Function Builder Das bisherige 'Aktivieren' wird abgelöst. Mit dem neuen 'Aktivieren' können
neben dem Funktionsbaustein auch die zugehörigen Form- und Daten-
Includes mitaktiviert werden.
Die Funktion 'Deaktivieren' wird nicht mehr unterstützt.
Neu: Statusanzeige.
Screen Painter Das bisherige 'Generieren' wird vom 'Aktivieren übernommen.
Neu: Statusanzeige.

516 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Unterstützung in den Werkzeugen

Menu Painter Das bisherige 'Generieren' wird vom 'Aktivieren übernommen.


Neu: Statusanzeige.

April 2001 517


BC - ABAP Workbench: Werkzeuge SAP AG
Objekte aktivieren

Objekte aktivieren
Verwendung
Sie können die Gesamtheit aller Ihrer inaktiven Objekte, ausgewählte Objekte oder auch nur
Teilkomponenten eines Entwicklunsobjektes (Klassen in ABAP Objects) aktivieren.

Voraussetzungen
Um die Aktivierung von Entwicklungsobjekten erfolgreich durchzuführen, wird eine Prüfung des
Gesamtobjektes (Rahmenprogramm, Funktionsgruppe, Klasse,…) durchgeführt. Bei nicht
korrekter Syntax wird die Ausgabe einer Fehlerliste angeboten. Es ist aber auch möglich,
Objekte mit nicht korrekter Syntax zu aktivieren. Dies kann z.B. bei Templates, wie sie bei Code-
Generatoren verwendet werden, von Bedeutung sein.

Vorgehensweise
4. Wählen Sie das entsprechende Objekt aus der Objektliste aus.
5. Wählen Sie die Funktion Aktivieren aus dem Kontextmenü des Object Navigators oder über
die entsprechende Ikone in der Drucktastenleiste des zugehörigen Werkzeugs.
Die Liste des Ihrer inaktiven Objekte wird angezeigt. Das ausgewählte Objekt wird
markiert hervorgehoben.
6. Bestätigen Sie die Auswahl mit .
Bei Includes, die nicht eindeutig einem Rahmenprogramm zugeordnet sind, erscheint
eine Abfrage nach dem Rahmenprogramm. Wählen Sie dann aus der Liste aller
Verwender ein Rahmenprogramm aus.
Bei erfolgreicher Aktivierung erscheint die Meldung Objekt(e) wurde(n) aktiviert in der
unteren Statuszeile.

Ergebnis
Mit dem Aktivieren wird zunächst das Gesamtobjekt in der ausgewählten Konfiguration auf
syntaktische Korrektheit geprüft. Hierbei werden die ausgewählten Teilobjekte in inaktiver, die
übrigen Teilobjekte der Konfiguration dagegen in aktiver Fassung berücksichtigt.
Aus der inaktiven Fassung wird zu jedem Teilobjekt eine aktive erstellt. Danach wird eine neue
Laufzeitversion generiert und schließlich die inaktive Fassung gelöscht und aus der Liste der
inaktiven Objekte entfernt.

Besonderheiten
Beim Aktivieren eines Gesamtobjektes von der Objektliste aus werden zunächst nur die inaktiven
Objekte des Gesamtobjektes in der Auswahlliste angeboten. Über die Drucktaste Alle inaktiven
Objekte wird auch das Umfeld angezeigt und kann eventuell in die Auswahl einbezogen werden.

518 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Übersicht zu inaktiven Objekten

Übersicht zu inaktiven Objekten


Aufruf
Um zur Übersicht zu gelangen, wählen Sie den Menüpfad Umfeld → Inaktive Objekte an
beliebiger Stelle innerhalb der ABAP Workbench.

Verwendung
Sie können zwischen unterschiedlichen Projektionen auf die Gesamtheit aller inaktiven
Entwicklungsobjekte (Teilobjekte) eines R/3-System wählen:

bei Auswahl von … können Sie


die ausgewählten Objekte aktivieren.
Auftrag/Aufgabe zur Übersicht aller inaktiven Objekte gelangen, die einer Aufgabe
(einem Auftrag) im Workbench Organizer zugeordnet sind.
Benutzer zur Anzeige des Vorrats inaktiver Objekte für den angegebenen
Benutzer gelangen.
Objekt zur Übersicht aller inaktiven Teilobjekte zu einem Rahmenprogramm
oder einer Funktionsgruppe gelangen.
zur Übersicht aller inaktiven Objekte des gesamten Systems gelangen.

Nach Auswahl eines Objektes können Sie auch zum definierenden Werkzeug
navigieren und dort das Objekt anzeigen lassen oder ändern.
Ferner können Sie auch Objekte eines anderen Benutzers in Ihren Vorrat
aufnehmen ("Vernetzung von Arbeitsvorräten") und aktivieren.

April 2001 519


BC - ABAP Workbench: Werkzeuge SAP AG
Statusanzeige

Statusanzeige
Der aktuelle Status eines Entwicklungsobjektes ist im jeweiligen Werkzeug jederzeit ersichtlich.
In der Statusanzeige wird wiedergegeben:
§ ob für ein neu angelegtes Objekt bereits eine Datenbankversion vorliegt (neu ↔ aktiv/inaktiv)
§ ob die Anzeige des Objektes noch dem Datenbankzustand entspricht (überarbeitet ↔
gesichert).
Der Status gesichert wird nicht explizit angezeigt. Ein Objekt wird stets inaktiv gesichert.
§ ob es sich eine inaktive oder aktive Fassung der Datenbankversion handelt (inaktiv↔aktiv).
Folgende Versionen von Entwicklungsobjekten werden in der Statusanzeige wiedergegeben:

Sichern Aktivieren

Anlegen
Ändern
Sichern Ändern
Sichern
Anlegen
Aktivieren

neu inaktiv(
inaktiv(überarbeitet)
überarbeitet) inaktiv aktiv(
aktiv(überarbeitet)
überarbeitet) aktiv

Nach dem Anlegen eines neuen Entwicklungsobjektes sind zwei verschiedene


Statusanzeigen möglich. Legt man z.B. einen Funktionsbaustein an, so hat dies eine
Sicherung und damit die entsprechende inaktive Datenbankversion zur Folge. Dies
bedingt auch die Anzeige inaktiv im Function Builder.
Im Gegensatz dazu ist mit dem Anlegen eines neuen GUI-Status noch kein
entsprechender Vermerk in der Datenbank verbunden. In diesem Fall zeigt der Menu
Painter den Status neu an.

Eine weitere Quelltext-Version erhalten Sie unmittelbar nach dem Laden aus dem
Zwischenspeicher. In diesem Fall erscheint die Anzeige
zwischengespeichert(überarbeitet).

520 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Statusanzeige

April 2001 521


BC - ABAP Workbench: Werkzeuge SAP AG
Aktivieren von Klassen und Interfaces

Aktivieren von Klassen und Interfaces


Bedeutung der Aktivierung
Bei der Erstellung von Laufzeitinstanzen wird stets auf aktive Sourcen zurückgegriffen. Dies ist
also bei der Instanzerzeugung von Klassen (mit CREATE OBJECT) zu berücksichtigen, da hier
immer auf die aktivierte Klasse Bezug genommen wird. Alle Teilobjekte der betreffenden
globalen Klasse, auf die im aufrufendem Programm zugegriffen werden soll, müssen explizit
aktiviert werden.

Teilobjekte globaler Klassen


Für alle globalen Klassen erfolgt ein Eintrag in der Tabelle TADIR. Das zugehörige
Transportobjekt für eine Klasse hat die Bezeichnung R3TR CLAS <class name> und beinhaltet
mehrere Teilobjekte, die jeweils separate Transporteinheiten repräsentieren. Inaktive Teilobjekte
der Klasse werden im Vorrat inaktiver Objekte des Benutzers hinterlegt.

TADIR

R3TR CLAS <class name>

CLSD Grunddaten (auch Vererbung)

CPUB Öffentliche Komponenten

CPRO Geschützte Komponenten

CPRI Private Komponenten

CREP Lokale Typdeklarationen

METH Methodenimplementierung

REPT Textelemente

§ Die Grunddaten und öffentliche Komponenten einer Klasse sind nicht getrennt aktivierbar.
§ Nur die Teilobjekte für die Grunddaten, öffentliche, geschützte und private Komponenten
wirken sich auf die Statusanzeige im Class Editor aus. Wenn Sie also das gesamte

522 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Aktivieren von Klassen und Interfaces

Transportobjekt aktivieren und anschließend etwa die Methodenimplementierung ändern, so


wird weiterhin der Status aktiv angezeigt.

Teilobjekte globaler Interfaces


Das Transportobjekt für ein Interface hat die Bezeichnung R3TR INTF <interface name> und
enthält nur ein Objekt mit der Bezeichnung INTF.

Beim Aktivieren einer Klasse, die um ein Interface erweitert wurde, ist darauf zu
achten, daß dieses Interface zuvor aktiviert wurde. Anderenfalls wird ein
Syntaxfehler für die Public Section ausgegeben.

Statusanzeige im Class Builder


Der aktuelle Status einer Klasse oder eines Interfaces wird im Class Editor jederzeit angezeigt.
Er wird bestimmt durch:
§ die Laufzeitrelevanz (realisiert ↔ nur modelliert)
§ den Datenbankzustand (überarbeitet ↔ gesichert)
§ die Aktivierung (inaktiv↔aktiv).
Acht verschiedene Versionen von Klassen (Interfaces) können in der Statusanzeige des Class
Editors wiedergegeben werden:

Aktivieren

Ändern

Sichern
Ändern

Sichern

realisiert/ inaktiv realisiert/ inaktiv(überarbeitet) realisiert/ aktiv(überarbeitet) realisiert/ aktiv

nur modelliert/ inaktiv nur modelliert/ inaktiv(überarbeitet) nur modelliert/ aktiv(überarbeitet nur modelliert/ aktiv

April 2001 523


BC - ABAP Workbench: Werkzeuge SAP AG
Auswirkungen auf Operationen

Auswirkungen auf Operationen


Das Konzept der inaktiven Sourcen wirkt sich auf die folgenden Operationen innerhalb der
Workbench aus:

524 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Auswirkungen auf Operationen

Sichern Das bearbeitete Objekt wird ohne Syntaxprüfung inaktiv


gesichert und ein Eintrag im Vorrat inaktiver Objekte des
Benutzers hinterlegt.

Aktivieren Aus der inaktiven Fassung wird eine aktive erstellt. Bei
Entwicklungsobjekten, die weitere Teilobjekte enthalten
(z.B. Klassen in ABAP Objects), können auch nur
einzelne Teilobjekte aktiviert werden.
Vor der Aktivierung wird das Gesamtobjekt auf
syntaktische Korrektheit geprüft, dann aus der inaktiven
eine aktive Fassung erzeugt, eine Laufzeitversion
generiert und schließlich der Eintrag aus dem Vorrat
inaktiver Objekte des Benutzers gelöscht.

Generieren Aus der aktiven Fassung wird eine neue Laufzeitversion


erstellt. Im Vergleich zum Aktivieren beschränkt sich
diese Operation nur auf das Erzeugen einer neuen Load.

Aktive/ Inaktive Sourcen anzeigen Falls beide Fassungen eines Objektes vorhanden sind,
kann die Anzeige in den Werkzeugen zwischen beiden
Fassungen umgeschaltet werden.

Löschen Sowohl die aktive als auch die inaktive Fassung werden
gelöscht.
Beachten Sie, daß nach dem Löschen von
Teilkomponenten globaler Klassen im Class Builder diese
noch einmal im Vorrat inaktiver Objekte des Benutzers
vorkommen und dort mit der "Löschen"-Ikone
gekennzeichnet sind. Erst durch Aktivieren der
betreffenden Komponenten werden diese auch aus dem
Vorrat des Benutzers entfernt und danach endgültig
gelöscht.

Kopieren Beim Kopieren wird auf die aktive Fassung des


Quellobjektes zurückgegriffen. (Ausnahme: im Function
Builder wird bei Vorhandensein beider Fassungen
nachgefragt, welche der Fassungen kopiert werden soll.)
Die neue Kopie liegt immer in inaktiver Fassung vor.

Umbenennen Das Umbenennen wirkt sich auf die aktive und die
inaktive Fassung gleichermaßen aus.

Syntaxcheck Die Funktion <Prüfen> berücksichtigt den Vorrat inaktiver


Objekte des Benutzers.

Ausführen Ein Laufzeitobjekt wird nur aus der aktiven Fassung


erzeugt und setzt voraus, daß diese syntaktisch korrekt
ist. Lediglich bei ausführbaren Programmen (Reports), die
zudem vom Editor gestartet werden, wird auf die inaktive
Fassung zurückgegriffen. Der Ausführung von
Programmen von der Objektliste aus, liegt immer eine
aktive Fassung zugrunde.

April 2001 525


BC - ABAP Workbench: Werkzeuge SAP AG
Auswirkungen auf Operationen

Transportieren Nur aktive Entwicklungsobjekte können transportiert


werden. Ein Transportauftrag kann erst dann freigegeben
werden, wenn alle Objekte aktiviert wurden.

526 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Weitere Auswirkungen

Weitere Auswirkungen
Für die unten aufgeführten Funktionen wirken sich die inaktiven Sourcen in folgender Weise aus:

Objektliste (SE80) Anzeige der Gesamtheit aller aktiven und inaktiven Objekte. Bei
Vorhandensein einer inaktiven Fassung wird das betreffende Objekt
benutzerabhängig farbig hervorgehoben.

Statusanzeige Siehe Statusanzeige [Seite 520] in den Werkzeugen.

Verwendungsnachweis Analog zur Objektliste ist der Verwendungsnachweis global abgelegt


und nicht benutzerspezifisch. Er greift damit auf die Gesamtheit aller
Objekte zurück.

Navigation Die Navigation ist benutzerabhängig und berücksichtigt dessen


Vorrat der inaktiven Objekte. Ein Benutzer bekommt also eine
inaktive Fassung zu sehen, falls diese existiert und sich das Objekt
zusätzlich in seinem persönlichen Vorrat der inaktiven Objekte
befindet. Ansonsten wird die aktive Fassung angezeigt. Dies betrifft
nicht nur die Navigation in den Werkzeugen, sondern auch die
Navigation aus der Objektliste oder von einem
Verwendungsnachweis aus.

Debugging Der Debugger zeigt stets die aktive Fassung des Objektes an.

Modifikationen Siehe Besonderheiten bei Modifikationen [Seite 528].

April 2001 527


BC - ABAP Workbench: Werkzeuge SAP AG
Besonderheiten bei Modifikationen

Besonderheiten bei Modifikationen


Im folgenden wird auf den Zusammenhang zwischen der Verwaltung von aktiven/inaktiven
Sourcen und dem Einsatz des Modifikationsassistenten hingewiesen.
Ferner wird auf Modifikationen an globalen ABAP-Klassen und -Interfaces eingegangen.

Modifikationen
Bei Modifikationen an Orginal-Teilobjekten des ausgelieferten SAP-Standards ohne Einsatz des
Modifikationsassistenten, sind die inaktiven Sourcen in allen unterstützenden Werkzeugen
wirksam. Daraus resultiert ein inaktives Sichern der modifizierten Teilobjekte.
Bei Modifikationen an Orginal-Teilobjekten des SAP-Standards, jedoch mit Einsatz des
Modifikationsassistenten, werden inaktive Sourcen derzeit noch nicht unterstützt. Modifizierte
Teilobjekte werden mit Ausnahme der Dictionary- und Oberflächen-Objekte (GUI-Status, Dynpro)
aktiv gesichert. Im Dictionary kommt das herkömmliche 'Aktivieren' und im Screen und Menu
Painter die 'Generierung' des Dynpros bzw. der GUI-Oberfläche zum Tragen.

Modifikationen und ABAP Objects


Globale Interfaces, Klassen und ihre Komponenten werden zur Zeit noch nicht vom
Modifikationsassistenten unterstützt. Andererseits sind bei der Pflege globaler Klassen und
Interfaces im Class Builder die inaktiven Sourcen wirksam. Werden etwa Modifikationen an der
Methodenimplementierung einer von der SAP ausgelieferten globalen Klasse vorgenommen, so
greift in diesem Fall das Konzept der inaktiven Sourcen und die Änderungen werden im ABAP
Editor inaktiv gesichert.
Modifikationen, die globale Klassen (Interfaces) und ihre Komponenten betreffen, werden beim
Upgrade auf herkömmliche Art abgeglichen.

528 April 2001


SAP AG BC - ABAP Workbench: Werkzeuge
Business Add-Ins

Business Add-Ins
Mit Business Add-Ins stellt SAP eine neue Erweiterungstechnik zur Verfügung. Die neue Technik
basiert auf ABAP Objects. Business Add-Ins beziehen sich auf mögliche Anforderungen von
Nutzern des SAP-Systems, die zu speziell sind, um in den Standard aufgenommen zu werden,
die aber dennoch häufig benötigt werden und deswegen im R/3 vorgedacht sind.
Wie bei Customer-Exits (SMOD/CMOD [Extern]) sind zwei Sichten unterscheidbar:
• In der Definitionssicht legt ein Anwendungsprogrammierer Stellen in einer Source fest, an
denen belieferte Softwareschichten (Branchen, Partner, Kunden etc.) Coding einfügen
können, ohne das Originalobjekt zu modifizieren.
• Die Nutzer von Business Add-Ins können in der Implementierungssicht die von ihnen
benötigte Logik ausgestalten oder eine zur Verfügung gestellte Standardlösung übernehmen,
sofern eine zur Verfügung gestellt wird.
Im Gegensatz zu Customer-Exits wird bei Business Add-Ins nicht von einer zweistufigen (SAP,
Kunde), sondern von einer mehrstufigen (SAP, Länderversionen, IS-Lösungen, Partner, Kunde
etc.) Systemlandschaft ausgegangen. Definitionen und Implementierungen von Business Add-Ins
können in jeder Stufe der Systemlandschaft angelegt werden.
Die Aufwärtskompatibilität der Schnittstellen eines Business Add-Ins ist gewährleistet, d.h. der
Aufruf einer Erweiterung aus der Standardsoftware und die Gültigkeit der Aufrufschnittstelle
bleiben von Releasewechseln unberührt. Eine Registrierung im SSCR ist nicht erforderlich.
Die Erweiterungstechnik mit Business Add-Ins unterscheidet zwischen Erweiterungen, die
höchstens eine Implementierung haben können, und solchen, die von beliebig vielen Kunden
gleichzeitig aktiv genutzt werden können.
Außerdem können Business Add-Ins abhängig von einem Filterwert definiert werden, d.h.
Implementierungen eines Add-Ins können zum Beispiel nach dem Filterwert Land oder nach
anderen Kriterien unterschieden werden.
Die Erweiterungstechnik ist derzeit so konzipiert, daß für ABAP-Sourcen, Screens, GUI-
Oberflächen und Tabellen Schnittstellen definiert werden können, über die der Kunde eigene
Erweiterungen in den Standard einbinden kann.
Die Schnittstellen, die zur Erledigung einer Aufgabe notwendig sind, werden in einem Business
Add-In zusammengefaßt. Zum Release 4.6A können im Rahmen von Business Add-Ins
Programm- und Menüerweiterungen vorgenommen werden.
Erweiterungen des Programmcodings werden mit ABAP Objects realisiert. Für ein besseres
Verständnis der Erweiterungstechnik mit Business Add-Ins wird die Lektüre des Abschnitts ABAP
Objects [Extern] empfohlen.
Weitere Informationen finden Sie in den folgenden Abschnitten:
Architektur der Erweiterungstechnik [Extern]
Vergleich mit bestehenden Techniken [Extern]
Definition eines Business Add-Ins [Extern]
Aufruf eines Add-Ins im Anwendungsprogramm [Extern]
Implementierung eines Business Add-Ins [Extern]
Filterabhängige Business Add-Ins [Extern]
Mehrfach genutzte Business Add-Ins [Extern]

April 2001 529


BC - ABAP Workbench: Werkzeuge SAP AG
Business Add-Ins

Menüerweiterungen [Extern]
Vorgehen beim Import von Business Add-Ins [Extern]

530 April 2001

Das könnte Ihnen auch gefallen