Sie sind auf Seite 1von 0

Sascha Krger, Jrg Seelmann-Eggebert

ABAP

Best Practices
5
Inhalt
Inhalt
Vorwort 11
1 Einleitung 13
1.1 An wen richtet sich dieses Buch? .................................................................. 13
1.2 Wie ist dieses Buch zu lesen? ........................................................................ 13
1.3 Wie kann ich mit diesem Buch praktisch arbeiten? ................................... 16
1.3.1 Systemvoraussetzungen .................................................................... 16
1.3.2 Beispielprogramme ............................................................................ 16
1.3.3 bungsdaten ...................................................................................... 17
1.4 Syntaxkonventionen ........................................................................................ 19
2 Softwareentwicklung mit ABAP 21
2.1 Einleitung .......................................................................................................... 21
2.2 Objektorientiertes oder klassisches ABAP? ................................................ 22
2.2.1 Bessere Datenkapselung ................................................................... 23
2.2.2 Mehrfachinstanziierung .................................................................... 24
2.2.3 Bessere Wiederverwendbarkeit des Quelltextes ........................... 30
2.2.4 Separation von Schnittstelle und Implementierung ...................... 40
2.2.5 Untersttzung ereignisgesteuerter Programmierung .................... 45
2.2.6 Keine schwarze Magie durch den Verzicht auf implizite
Funktionalitten ................................................................................. 47
2.2.7 Verbesserte Syntax- und Semantikregeln ....................................... 48
2.2.8 Einziger Weg zur Nutzung neuer ABAP-Technologien ................. 49
2.2.9 ABAP Objects just do it! ................................................................ 50
2.3 (Nicht) Wiederverwendbare Komponenten ................................................ 53
2.3.1 Freigabestatus von Funktionsbausteinen und Klassen ................. 54
2.3.2 Handlungsempfehlung ...................................................................... 55
2.4 Entwicklungsrichtlinien in der ABAP-Welt .................................................. 59
2.4.1 Namenskonventionen ....................................................................... 60
2.4.2 Vermeidung von Literalen durch Verwendung
von Konstanten ................................................................................. 65
2.4.3 Dokumentation von funktionalen Einheiten ................................. 68
2.4.4 QS-Assessment .................................................................................. 69
2.5 Robuste Programme entwickeln ................................................................... 72
2.5.1 Defensive Programmierung .............................................................. 72
2.5.2 Ausnahmebehandlung ...................................................................... 73
Inhalt
6
2.5.3 Klassenbasierte Ausnahmebehandlung ........................................... 81
2.5.4 Definition eigener Ausnahmen ........................................................ 85
2.5.5 Einbinden der traditionellen Ausnahmebehandlung in die
klassenbasierte Ausnahmebehandlung ........................................... 89
2.5.6 Historische Fehlerereignisse ............................................................. 92
3 Lsungskonzepte fr die tgliche
Programmierarbeit mit ABAP 95
3.1 Dynamische und generische Programmierung ............................................ 95
3.1.1 Dynamische Adressierung von Feldnamen .................................... 96
3.1.2 Dynamische Adressierung von Tabellennamen ............................. 98
3.1.3 Dynamische Angabe von Feldlisten und Klauseln bei SELECT .... 101
3.1.4 Dynamische Erzeugung eines Datenobjekts beliebigen Typs ...... 105
3.1.5 Dynamische Adressierung von Strukturkomponenten ................. 108
3.1.6 Sichere Sortierung einer internen Tabelle dynamisch durch
den Benutzer erlauben ...................................................................... 110
3.1.7 Dynamischer Aufruf von internen Unterroutinen ......................... 114
3.1.8 Dynamischer Aufruf von externen Unterroutinen mit Zugriff
auf globale Felder des externen Programms .................................. 117
3.1.9 Dynamischer Aufruf von Funktionsbausteinen mit dynamischer
Parameterbergabe ........................................................................... 120
3.1.10 Dynamische Erzeugung von Klasseninstanzen und dynamischer
Methodenaufruf mit dynamischer Parameterbergabe ................ 126
3.1.11 Polymorphie ber Interfaces ............................................................ 134
3.2 Generierung von Programmen ....................................................................... 140
3.2.1 Erzeugung transienter Programme .................................................. 141
3.2.2 Erzeugung persistenter Programme ................................................ 152
3.2.3 Performancevergleich ........................................................................ 156
3.3 Run-Time Type Identification ......................................................................... 158
3.3.1 Arbeitsweise mit RTTI-Klassen ......................................................... 159
3.3.2 Geschachtelte Strukturen generisch auslesen ................................ 161
3.3.3 Export eines beliebigen Datenbanktabelleninhalts mit
berschriftenzeile .............................................................................. 165
3.4 SQL-Performance und effiziente Datenbankkommunikation ................... 169
3.4.1 Selektion der bentigten Felder ...................................................... 171
3.4.2 Vermeiden von SELECT...CHECK-Anweisungen ........................... 171
3.4.3 Aggregationsfunktionen .................................................................... 172
3.4.4 Lesen mehrerer Datenbanktabellen ................................................ 173
3.4.5 Update mehrerer Datenstze ........................................................... 174
3.4.6 Kopieren von Datenbanktabellen in interne Tabellen .................. 175
3.4.7 Abschalten der nderungsprotokollierung fr Tabellen ............... 177
3.5 Zeichenkettenverarbeitung ............................................................................. 182
3.5.1 Strings versus C-Felder ...................................................................... 184
3.5.2 Zerlegen eines Strings in gleich groe Blcke ................................ 186
3.5.3 Einlesen einer Textdatei in eine interne Tabelle
mit Zeilentyp STRING ....................................................................... 187
3.5.4 Einfgen von Zeichenketten ............................................................. 190
7
Inhalt
3.6 Datumsfelder .................................................................................................... 191
3.6.1 Berechnung der Differenz zwischen zwei Daten ........................... 192
3.6.2 Letzter Tag eines Monats .................................................................. 193
3.6.3 Anzahl der Schaltjahre zwischen zwei Jahren ................................ 194
3.6.4 Bestimmung des nchsten Arbeitstages ......................................... 195
3.6.5 Berechnung von Kalenderwochen und Wochentagen ................. 197
4 GUI- und Desktop-Entwicklung 201
4.1 GUI-Controls und das Control Framework .................................................. 201
4.1.1 GUI-Controls ...................................................................................... 202
4.1.2 Control Framework ........................................................................... 203
4.1.3 Einbinden eines GUI-Controls ......................................................... 204
4.1.4 Mehrere GUI-Controls einsetzen .................................................... 208
4.2 ALV-Grid-Control ............................................................................................. 211
4.2.1 Daten aus mehreren Quellen (mit eingeschrnkter
Spaltenselektion) darstellen ............................................................. 211
4.2.2 Einfaches Drop-Down-Listenfeld im Grid darstellen .................... 219
4.2.3 Drop-Down-Listenfeld nur fr bestimmte Zellen
im Grid darstellen .............................................................................. 226
4.2.4 Reaktion auf Hotspot-Clicks und Setzen eines Filters .................. 232
4.3 Frontend-Kommunikation .............................................................................. 240
4.3.1 Datenaustausch mit dem Clipboard ................................................ 242
4.3.2 Mit dem Dateisystem des Frontends arbeiten ............................... 244
4.3.3 Export eines beliebigen Tabelleninhalts in eine durch
Trennzeichen separierte Liste .......................................................... 250
4.3.4 Ausfhren eines Programms auf dem Prsentationsserver .......... 255
4.3.5 Arbeiten mit der Windows-Registry ............................................... 258
4.3.6 Fortschrittsanzeige in der Statusleiste des SAP GUI ...................... 262
4.4 Dynpros und ABAP Objects ........................................................................... 264
5 Kommunikation mit der Auenwelt 275
5.1 Kommunikation mit dem Applikationsserver ............................................. 275
5.1.1 Interne Tabelle auf dem Applikationsserver speichern
und einlesen ....................................................................................... 276
5.1.2 Kommandos auf dem Applikationsserver ausfhren .................... 281
5.1.3 Externe Kommandos ausfhren ...................................................... 284
5.2 RFC ..................................................................................................................... 290
5.2.1 Erstellen eines externen RFC-Client-Programms ........................... 291
5.2.2 Externer RFC-Client mit dynamischer Tabellendefinition ............ 303
5.2.3 Erstellen eines externen RFC-Servers ............................................. 309
5.2.4 Externer RFC-Server als integrierte Applikation ............................ 315
5.3 FTP-Kommunikation ........................................................................................ 318
5.3.1 Kommunikation mit FTP-Servern .................................................... 319
Inhalt
8
5.3.2 Ausfhren von FTP-Kommandolisten zum Transfer
von Dateien ........................................................................................ 324
5.3.3 FTP-Transfer von Dateien in interne Tabellen ............................... 330
5.4 Desktop-Integration ........................................................................................ 334
5.4.1 COM-Klassen ..................................................................................... 334
5.4.2 COM-Klasse aufrufen ........................................................................ 336
5.4.3 Datenaustausch mit Word, Excel & Co. ......................................... 345
6 SAP GUI Scripting 375
6.1 Einleitung und berblick ................................................................................ 375
6.1.1 Technologischer Hintergrund ........................................................... 376
6.1.2 Voraussetzungen fr das GUI Scripting .......................................... 380
6.1.3 Aufzeichnen und Abspielen eines Scripts ....................................... 383
6.1.4 Konstanten fr virtuelle Keys und Funktionstasten ...................... 390
6.2 Fortgeschrittene Scripting-Applikationen ................................................... 391
6.2.1 berblick ............................................................................................. 391
6.2.2 Verbindung mit dem SAP GUI-Prozess herstellen ......................... 392
6.2.3 Verbindung mit dem SAP-System herstellen ................................. 395
6.2.4 Ermitteln einer bestimmten SAP-Session ....................................... 397
6.2.5 Anmelden am SAP-System per Script ............................................. 399
6.2.6 Abmelden vom SAP-System per Script ........................................... 401
6.2.7 Einsatz der Scripting-Support-Routinen ......................................... 403
6.2.8 Exportieren einer beliebigen Liste ................................................... 405
A Glossar 417
B Tabellen des Flugdatenmodells 425
C Konstanten fr virtuelle
Funktionstasten-Codes 429
D ABAP-Systemfelder 433
E Ntzliche Eingaben im OK-Code-Feld 439
E.1 Direkter Aufruf von Transaktionen (Modusverwaltung) ........................... 439
E.2 Batchinput ......................................................................................................... 440
E.3 ABAP-Debugging ............................................................................................. 440
E.4 Pufferkommandos ............................................................................................ 440
9
Inhalt
F Die Autoren 441
Index 443
11
Vorwort
Vorwort
Gbe es eine letzte Wahrheit, dann liee sie sich nicht beweisen. So viel-
deutig dieser Satz auch sein mag, eines ist sicher: Er gilt insbesondere fr
den Bereich der Softwareentwicklung. Welcher der richtige, der beste, der
bessere Lsungsweg fr ein gerade zu lsendes Entwurfs- oder Program-
mierproblem ist, lsst sich nur selten mit Gewissheit beantworten. Und
gerade bei Fragen rund um die Programmiersprache ABAP sind solche
Antworten deshalb besonders schwer zu finden, weil fr viele Probleme
viele verschiedene Lsungswege angeboten werden, was zweifellos mit
der langen Historie und der Evolution der Sprache zusammenhngt.
Zahlreiche Fragen von ABAP-Entwicklern, denen wir im Laufe der Zeit
begegnet sind, Diskussionen in Internetforen und der eigene Drang zur
Erprobung neuer Sprachkonzepte haben uns daher dazu inspiriert, dieses
Buch zu schreiben - ein Buch, das man vielleicht am ehesten als Koch-
buch bezeichnen knnte, in dem Sie Rezepte fr die unterschiedlichsten
Mens finden. Mens fr viele Mahlzeiten, die Sie sehr gerne mgen,
aber noch nie zubereitet haben, und fr andere Mahlzeiten, die bereits zu
Ihrem Kochrepertoire gehren, deren Variationen Ihnen jedoch neu sind.
Es ist ein Buch, in dem Sie fr verschiedene Problemstellungen, die
immer wieder auftreten, typische und sauber entwickelte Lsungsanstze
finden. Abhngig von Ihrem Erfahrungsstand werden Sie beim Durchblt-
tern vermutlich auf eine ganze Reihe von Themen stoen, die sofort Ihr
Interesse wecken. Andere berschriften bzw. Lsungen werden Sie viel-
leicht vermissen.
In diesem Zusammenhang mchten wir Sie ermutigen, uns ein Feedback
zukommen zu lassen, welche Lsungskonzepte Sie sich zustzlich vorstel-
len knnten oder wnschen wrden. Sie sind auch herzlich dazu eingela-
den, eigene Lsungskonzepte fr bestimmte Probleme beizusteuern und
in eventuelle Folgeauflagen dieses Buches einflieen zu lassen.
Wie immer im Leben gibt es auch beim Umfang eines Buches gewisse
Beschrnkungen. Whrend der Erstellung des Manuskripts standen wir
stndig vor der Entscheidung, welche Lsungen bzw. Rezepte wir auf-
nehmen sollten und welche nicht. Letztendlich basiert der Inhalt natr-
lich auf einer subjektiven Auswahl, die wir aufgrund von Recherchen in
Internetforen und intensiven Gesprchen mit ABAP-Entwicklern, Exper-
ten und Anfngern getroffen haben. Dabei kam es uns nicht zuletzt auch
darauf an, ein Gleichgewicht zwischen dem herzustellen, was die SAP
empfiehlt, und dem, was in der Praxis tatschlich gemacht wird. Sie wer-
Vorwort
12
den darber hinaus in diesem Buch Lsungen fr ABAP-Probleme finden,
die gar nicht mit nativen ABAP-Mitteln gelst werden sollten, weil es ein-
fach nicht der beste Weg ist.
Natrlich mchten wir uns bei all den Interviewpartnern und Inputliefe-
ranten ganz herzlich bedanken, die uns tatkrftig bei der Stoffsammlung
und Durchsicht des Manuskripts untersttzt haben. Ohne sie wre dieses
Buch nie realisiert worden. Unser Dank gilt Thomas Davidson, Ralf Drum,
Horst Keller, Jrgen Kompa, Doreen Koselowski, Ralph Schnarkowski,
Daniela Schlchi, Paul Lewis Trip und ganz besonders Tobias Trapp. Dar-
ber hinaus danken wir auch Tomas Wehren und seinem Team von SAP
PRESS fr die gute Zusammenarbeit. Besonderer Dank soll hier Florian
Zimniak zukommen, der mit geradezu unglaublicher Gelassenheit (und
effektivem Nachdruck) viele unserer terminlichen Schwierigkeiten aus-
gleichen konnte. Auerdem bedanken wir uns herzlich bei Stefan Proksch
fr die tatkrftige Untersttzung im Endspurt der Manuskriptabgabe.
Sascha Krger dankt ganz besonders seiner Frau Katja, die noch mehr als
sonst mit Zuspruch, Untersttzung, Kritik und ihrer wunderbaren Art,
Menschen zu inspirieren, dafr gesorgt hat, dass dieses Projekt zu einem
erfolgreichen Abschluss kommen konnte und das mehr, als sich die
meisten vorstellen knnen.
Jrg Seelmann-Eggebert dankt ganz besonders seinen beiden Kindern
Anna und Jorge sowie seiner Frau Annette, die mit einem unglaublichen
Verstndnis und einer fortwhrenden Untersttzung einen erheblichen
Teil zur Fertigstellung des Manuskripts beigetragen haben und das,
obwohl die Zeit fr das gemeinsame Familienleben ohnehin schon knapp
bemessen war.

Solingen, im Januar 2005 Alfter, im Januar 2005
Sascha Krger Jrg Seelmann-Eggebert
275
Kommunikation mit der Auenwelt
5 Kommunikation mit der
Auenwelt
Die Integration von SAP-System und anderen Anwendungen
ist ein wesentlicher Bestandteil fr die Abbildung durchgngi-
ger, automatisierter Prozesse. In diesem Kapitel stellen wir
eine Reihe von Fallbeispielen vor, deren zentrales Thema die
Kommunikation eines SAP-Systems mit anderen Anwen-
dungssystemen ist.
5.1 Kommunikation mit dem Applikationsserver
ABAP stellt Ihnen verschiedene Sprachelemente zur Verfgung, mit
denen Dateien bearbeitet werden knnen. Da dem SAP-System eine wie
in Abbildung 5.1 skizzierte Architektur zugrunde liegt, mssen hierbei in
Abhngigkeit davon, wo die zu bearbeitenden Dateien physisch abgelegt
sind zwei unterschiedliche Szenarien betrachtet werden.
Speichern von
Dateien
Arbeiten mit Dateien auf dem Prsentationsserver
Um mit Dateien auf dem Prsentationsserver arbeiten zu knnen, wird
dem Anwender ab dem Release 4.6 die Klasse CL_GUI_FRONTEND_
SERVICES mit verschiedensten Methoden zur Verfgung gestellt. Fr
vorhergehende Releases knnen die (mittlerweile veralteten) Funkti-
onsbausteine GUI_DOWNLOAD und GUI_UPLOAD genutzt werden.
Arbeiten mit Dateien auf dem Applikationsserver
In ABAP wird eine Vielzahl von Anweisungen bereitgestellt, mit denen
Dateien auf dem Applikationsserver bearbeitet werden knnen. Die
folgenden Abschnitte beschreiben, wie Sie Daten anstatt in der Daten-
bank in Dateien speichern bzw. wieder daraus laden knnen.
Abbildung 5.1 R/3-Systemarchitektur
Kommunikation mit der Auenwelt
276
Dieser Abschnitt beschftigt sich mit der Verwaltung von Dateien auf
dem Applikationsserver. Die nutzbaren Sprachelemente von ABAP finden
Sie in Tabelle 5.1.
5.1.1 Interne Tabelle auf dem Applikationsserver
speichern und einlesen
Aufgabenstellung
In diesem Abschnitt wird eine interne Tabelle in einer Datei auf dem
Applikationsserver gespeichert und anschlieend wieder eingelesen.
Dabei werden sowohl die Ausgabe als auch die Eingabe in eigenen Rou-
tinen realisiert, da es sich hierbei um modularisierbare und wiederver-
wendbare Programmeinheiten handelt.
Vorgehensweise
Geben Sie das Programm wie in Listing 5.1 dargestellt ein und fhren
Sie es aus.
Voraussetzung fr eine korrekte Funktionsweise ist ein Applikations-
server, der mit dem Betriebssystem Windows arbeitet. Nutzen Sie ein
anderes Betriebssystem (beispielsweise UNIX) fr den Applikationsser-
ver, so mssen Sie die Zeile
s_filename TYPE STRING VALUE 'C:\beispiel001.txt'.
Befehl Bedeutung
OPEN DATASET ffnen einer Datei zum Lesen bzw. zum Schreiben von Daten.
Es knnen sowohl Textdateien als auch Binrdateien behandelt
werden.
CLOSE DATASET Schlieen einer Datei
TRANSFER Schreiben eines Datenobjektes in eine Datei
READ DATASET Lesen eines Datenobjektes aus einer Datei
GET DATASET Abfragen von Eigenschaften wie Dateiattribute bzw. Cursor-
position einer bereits geffneten Datei
SET DATASET ndern von Eigenschaften wie Dateiattribute bzw. Cursorposi-
tion einer bereits geffneten Datei
DELETE DATASET Lschen einer Datei auf dem Applikationsserver
Tabelle 5.1 Sprachelemente von ABAP fr die Verwaltung von Daten auf dem
Applikationsserver
277
Kommunikation mit dem Applikationsserver
derart anpassen, dass ein fr das genutzte Betriebssystem gltiger
Dateiname eingetragen ist.
In jedem Fall gilt es sicherzustellen, dass es sich bei dem angegebenen
Dateinamen um eine zugreifbare und beschreibbare Datei handelt.
Codebeispiel
*&------------------------------------------------*
*& Report Z_FILE_01 *
*&------------------------------------------------*

REPORT Z_FILE_01.

TYPES:
BEGIN OF t_line,
col_1 TYPE I,
col_2(10) TYPE C,
END OF t_line,

t_tab TYPE TABLE OF t_line.

DATA:
n_cnt TYPE I VALUE 0,
s_cnt(5) TYPE C,
str_line TYPE t_line,
tab_records TYPE t_tab,
s_filename TYPE STRING VALUE 'C:\beispiel001.txt'.

FIELD-SYMBOLS <fs> TYPE t_line.

START-OF-SELECTION.

* interne Tabelle fuellen
DO 10 TIMES.
n_cnt = n_cnt + 1.
str_line-col_1 = n_cnt.
s_cnt = n_cnt.
CONCATENATE 'Zeile ' s_cnt INTO str_line-col_2.
APPEND str_line TO tab_records.
ENDDO.

Kommunikation mit der Auenwelt
278
* Schreiben der Tabelle in eine Datei
PERFORM table_to_file
USING
tab_records
s_filename.

* Lesen der Datei in eine Tabelle
PERFORM file_to_table
USING
tab_records
s_filename.

* Ausgabe der Tabelle
LOOP AT tab_records ASSIGNING <fs>.
WRITE: / <fs>-col_1, <fs>-col_2.
ENDLOOP.

*&--------------------------------*
*& FORMS
*&--------------------------------*

FORM table_to_file
USING
tab_records TYPE t_tab
s_filename TYPE STRING.

FIELD-SYMBOLS <fs> TYPE ANY.

* Datei oeffnen
OPEN DATASET s_filename FOR OUTPUT IN BINARY MODE.

* Tabelle in die Datei schreiben
LOOP AT tab_records ASSIGNING <fs>.
TRANSFER <fs> TO s_filename.
ENDLOOP.

* Datei schliessen
CLOSE DATASET s_filename.
ENDFORM.

279
Kommunikation mit dem Applikationsserver
FORM file_to_table
USING
tab_records TYPE t_tab
s_filename TYPE STRING.

DATA:
str_rec LIKE LINE OF tab_records.

CLEAR tab_records.
OPEN DATASET s_filename FOR INPUT IN BINARY MODE.
DO.
READ DATASET s_filename INTO str_rec.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
APPEND str_rec TO tab_records.
ENDDO.

CLOSE DATASET s_filename.
ENDFORM.
Listing 5.1 Dateien auf dem Applikationsserver
Erluterung zur Lsung
Das in Listing 5.1 abgebildete Programm enthlt vier durch entspre-
chende Kommentierung abgetrennte Programmteile:
Initialisierung einer internen Tabelle
Ausgabe der internen Tabelle ber die Routine table_to_file in eine
Datei
Einlesen der geschriebenen Datei in eine interne Tabelle, wobei die
Routine file_to_table genutzt wird
Ausgabe der internen Tabelle
In Anbetracht dessen, dass die wesentlichen Schritte die Ein- bzw. Aus-
gabe von Daten in bzw. aus Dateien ist, werden wir nur die Routinen
file_to_table und table_to_file detailliert beschreiben.
ffnen einer Datei Die Ausgabeanweisungen sind im Unterprogramm table_to_file
zusammengefasst. Als Parameter werden dabei nur die zu speichernde
interne Tabelle und ein auf dem Applikationsserver gltiger Dateiname
bergeben. Im ersten Schritt wird die Datei ber die Anweisung
Kommunikation mit der Auenwelt
280
OPEN DATASET s_filename FOR OUTPUT IN BINARY MODE.
geffnet. In unserer Lsung haben wir uns fr eine Binrdatei entschie-
den, da keine Notwendigkeit der Weiterverarbeitung besteht. Mchten
Sie aber beispielsweise die physische Datei auf dem Applikationsserver
weiter bearbeiten, knnen Sie mit der Option TEXT MODE eine unter dem
Betriebssystem des Applikationsservers lesbare Datei generieren lassen.
Im Anschluss traversieren wir die bergebene interne Tabelle und schrei-
ben jede Zeile mit
TRANSFER <fs> TO s_filename.
in die Datei. Adressiert wird die Ausgabedatei ber den Dateinamen,
wobei bei dieser Angabe ein textuell identischer Name bergeben wer-
den muss. Wrde beim Schreiben der Datenstze die Ausgabedatei bei-
spielsweise mit
'C:\<Unterverzeichnis>\..\beispiel001.txt'
angesprochen werden, wre eine Exception die Folge.
Flache Strukturen
1
knnen dabei mit einer TRANSFER-Anweisung ausge-
geben werden, eine komponentenweise bertragung in die Datei ist
nicht notwendig. ber das Sprachelement
CLOSE DATASET
wird die Ausgabedatei anschlieend wieder geschlossen.
Lesen aus einer
Datei
Das zweite Unterprogramm file_to_table liest den Inhalt einer Datei
und schreibt diesen in eine interne Tabelle. Auch hier werden als Parame-
ter der Name der Datei sowie eine interne Tabelle fr die Aufnahme der
Daten genutzt. Da wir die ber das Unterprogramm table_to_file
gespeicherte Datei erneut einlesen mchten, mssen wir die Datei auch
wieder als Binrdatei (Parameter IN BINARY MODE) ffnen
2
.
Das Einlesen der einzelnen Zeilen der internen Tabelle erfolgt mittels der
Anweisung
1 Allerdings ist es nicht mglich, auch interne Tabellen mit nur einer TRANSFER-
Anweisung auszugeben. Daher mssen wir den Weg ber die zeilenweise Ausgabe
beschreiten.
2 Es werden keine Typinformationen der geschriebenen Datenstze gespeichert. Vor
diesem Hintergrund ist es natrlich mglich, Dateien in einem anderen Format ein-
zulesen als sie geschrieben wurden. So knnen z. B. Datenstze als Zeichenketten
(Typ C oder STRING) herausgeschrieben und anschlieend in Hexadezimal-Darstel-
lung (Typ X) wieder eingelesen werden.
281
Kommunikation mit dem Applikationsserver
READ DATASET s_filename INTO str_rec.
Wir bergeben dabei ein Datenobjekt, das die gleiche Struktur besitzt
wie bei der Ausgabe. ber die Auswertung des Ergebniswertes sy-subrc
der Rckgabewert 4 signalisiert das Ende der Datei kann dann festge-
stellt werden, wann der Inhalt der Datei vollstndig ausgelesen wurde.
Erweiterung zur Lsung
Die Schwachstelle der in Listing 5.1 vorgestellten Lsung liegt in der
Abhngigkeit vom jeweils genutzten Betriebssystem fr den Applikations-
server. Mitunter kann es erforderlich sein, plattformunabhngige und
damit portable Lsungen zu entwickeln. Hierfr wird Ihnen von SAP das
Konzept der logischen Datei- und Pfadnamen an die Hand gegeben. Im
ABAP-Programm wird dabei mit einem logischen, plattformunabhngi-
gen Dateinamen gearbeitet.
Logische
Dateinamen
Um nun diesen logischen Dateinamen zur Laufzeit auf den betriebssyste-
mabhngigen, physischen Dateipfad abbilden zu knnen, wird Ihnen der
Funktionsbaustein FILE_GET_NAME zur Verfgung gestellt. Dieser liefert
zu einem logischen Dateinamen den korrespondierenden physischen
Dateinamen. Die ermittelte vollstndige Dateibezeichnung setzt sich aus
dem gltigen
3
physischen Dateipfad und dem physischem Dateinamen
zusammen, wobei Platzhalter, die erst zur Laufzeit aufgelst werden, ein-
gesetzt werden knnen. Eine ausfhrliche Beschreibung knnen Sie der
Funktionsbaustein-Dokumentation von FILE_GET_NAME entnehmen.
Die vollstndige Konfiguration und Pflege von plattformunabhngigen
Dateinamen knnen Sie mandantenbergreifend mit der Transaktion FILE
durchfhren.
5.1.2 Kommandos auf dem Applikationsserver ausfhren
Aufgabenstellung
Arbeiten mit dem
Applikations-
server
In dieser Aufgabe soll der Inhalt eines Verzeichnisses auf dem Applikati-
onsserver ausgelesen und in einer internen Tabelle abgelegt werden. Als
Zwischenschritt soll das Ergebnis in einer Datei auf dem Applikationsser-
ver gespeichert werden.
3 Die Gltigkeit bezieht sich auf das zur Laufzeit aktuelle Betriebssystem des Applika-
tionsservers.
Kommunikation mit der Auenwelt
282
Vorgehensweise
Geben Sie das in Listing 5.2 dargestellte Programm ein und fhren Sie
es anschlieend aus.
Der abgebildete Programmcode basiert auf der Annahme, dass es sich
beim Betriebssystem des Applikationsservers um ein Windows-System
handelt. Wenn Sie eine Plattform auf Unix-Basis fr Ihren Applikati-
onsserver nutzen, mssen Sie die Zeile
'c:\winnt\system32\cmd.exe /c dir /w c:\*.*'
durch das entsprechende Kommando (typischerweise /bin/ls) anpas-
sen. Auerdem mssen Sie den verwendeten Dateinamen betriebssys-
temabhngig gestalten. Hierzu muss die Programmzeile
s_filename TYPE STRING VALUE 'C:\BEISPIEL03.txt'
derart angepasst werden, dass eine gltige und zugreifbare Datei refe-
renziert wird.
Der vorgestellte Lsungsansatz in Listing 5.2 funktioniert nur bei
Applikationsservern, die mit dem Betriebssystem Windows bzw. Unix
arbeiten.
Codebeispiel
*&-------------------------------------------------*
*& Report Z_FILE_02 *
*&-------------------------------------------------*

REPORT Z_FILE_02.

DATA:
str_line TYPE STRING,
tab_lines TYPE TABLE OF STRING,
s_filename TYPE STRING VALUE 'C:\BEISPIEL03.txt'.

START-OF-SELECTION.

* Kommando auf dem Applikationsserver ausfuehren
OPEN DATASET s_filename
FOR OUTPUT
FILTER
'c:\winnt\system32\cmd.exe /c dir /w c:\*.*'
283
Kommunikation mit dem Applikationsserver
IN TEXT MODE
ENCODING DEFAULT.

* Datei schliessen
CLOSE DATASET s_filename.

* physische Datei oeffnen
OPEN DATASET s_filename
FOR INPUT
IN TEXT MODE
ENCODING DEFAULT.

* Inhalt lesen und speichern
DO.
READ DATASET s_filename INTO str_line.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
APPEND str_line TO tab_lines.

WRITE / str_line.
ENDDO.
Listing 5.2 Verzeichnis auf einem Windows-basierten Applikationsserver auslesen
Erluterung zur Lsung
Unsere in Listing 5.2 vorgestellte Lsung arbeitet in zwei Phasen:
In dem ersten Schritt speichern wir den Inhalt des gewnschten Ver-
zeichnisses in einer Datei auf dem Applikationsserver.
Anschlieend wird im folgenden Programmblock diese Datei eingele-
sen und in eine interne Tabelle kopiert.
Ausfhren von
Betriebssystem-
kommandos
Fr das Ermitteln des Inhalts eines Verzeichnisses auf dem Applikations-
server nutzen wir das Sprachelement OPEN DATASET mit dem Zusatz FIL-
TER. Diese Option erlaubt es, ein Betriebssystem-Kommando an den
Applikationsserver zu bertragen und dieses dann dort auszufhren. In
Abhngigkeit davon, ob die angesprochene Datei mit dem Zusatz FOR
INPUT bzw. FOR OUTPUT geffnet wird, wird entweder der Inhalt der Datei
als Eingabe fr das Kommando genutzt bzw. die Ausgabe des Komman-
dos in die Datei geschrieben. Hintergrund fr diese Funktionsweise ist
eine Redirektion der Eingabe (stdin) bzw. der Ausgabe (stdout). Die fol-
Kommunikation mit der Auenwelt
284
gende bersicht verdeutlicht dieses Verhalten an Hand des Kommandos
sort.exe (bzw. das Kommando sort bei Unix-Betriebssystemen).
OPEN DATASET sortbsp.txt FOR INPUT FILTER 'sort.exe'...
Das entsprechende Betriebssystemkommando, das letztendlich ausge-
fhrt wird, ist
sort.exe < sortbsp.txt
Das heit, es wird die Datei gelesen und ihr Inhalt sortiert.
OPEN DATASET sortbsp.txt FOR OUTPUT FILTER 'sort.exe'...
Bei diesem Aufruf
4
lautet das korrespondierende Betriebssystemkom-
mando
sort.exe > sortbsp.txt
In diesem Fall wird das Ergebnis des sort-Befehls in die Datei
sortbsp.txt geschrieben.
Enthlt der voll qualifizierte Pfad des Kommandos Leerzeichen, dann
muss der Befehl in doppelte Anfhrungsstriche gesetzt werden, zum Bei-
spiel wie folgt:
... FILTER '"C:\Program Files\...\excel.exe"'
Die Einschrnkung dieses Lsungsweges liegt im Betriebssystem begrn-
det. Zum einen mssen Sie ber Kenntnisse hinsichtlich des verwendeten
Betriebssystems Ihres Applikationsservers verfgen
5
, um ein korrektes
Betriebssystemkommando angeben zu knnen. Des Weiteren arbeitet
die FILTER-Option nur auf den Betriebssystemen Windows und Unix.
5.1.3 Externe Kommandos ausfhren
Aufgabenstellung
Kommandos auf
dem Applikations-
server ausfhren
Die im vorangehenden Abschnitt beschriebene Lsung erlaubt es Ihnen,
Kommandos auf dem Applikationsserver auszufhren und dabei eine
Redirektion der Eingabe bzw. Ausgabe in eine Datei vorzunehmen. Aller-
dings ist dieses Vorgehen auf Windows- und Unix-basierte Betriebs-
systeme beschrnkt.
In der an dieser Stelle beschriebenen Aufgabenstellung soll von der kon-
kreten Betriebssystemplattform abstrahiert werden und eine allgemeine
4 Dieser Aufruf dient nur der Verdeutlichung und macht in dieser Form wenig Sinn,
da die Eingabe ber die Konsole erfolgen msste.
5 Es besteht die Mglichkeit, ber das Systemfeld sy-opsys dynamisch, nmlich zur
Laufzeit des ABAP-Programms, das genutzte Betriebssystem zu bestimmen.
285
Kommunikation mit dem Applikationsserver
Lsung zum Ausfhren von Betriebssystembefehlen auf dem Applikati-
onsserver entwickelt werden.
Vorgehensweise
Um betriebssystemunabhngige Kommandos benutzen zu knnen,
bedienen wir uns des Konzepts der externen Betriebssystemkomman-
dos. Diese knnen ber Transaktion SM69 verwaltet werden.
Um das in Listing 5.3 verwendete Betriebssystemkommando einzu-
richten, fhren Sie die nachfolgend beschriebenen Schritte durch:
Gehen Sie in das Men Anzeigen externer Betriebssystemkom-
mandos (Transaktion SM69).
Dort whlen Sie ber das Men Bearbeiten den Menpunkt Anle-
gen bzw. F6. Gegebenenfalls muss zuvor in den nderungsmodus
(Men Kommandoliste Anzeige <-> ndern bzw. F5) umgeschal-
tet werden.
Bei der jetzt erscheinenden Bildschirmmaske fllen Sie die Felder
wie Abbildung 5.2 gezeigt aus und speichern Ihren Eintrag. Das Feld
Parameter fr Betriebssystem-Kommando bezieht sich in diesem
Zusammenhang auf das Betriebssystemkommando selbst. Mitunter
kann es nmlich erforderlich sein, als Kommando die zu nutzende
Shell (zum Beispiel cmd bei Windows bzw. sh oder Derivate im
Unix-Umfeld) und ber die Parameter den erforderlichen Shell-
Befehl anzugeben. Die Steuerung der Parameter fr den Betriebs-
systembefehl werden wir spter dynamisch ber das Programm vor-
nehmen.
Sie knnen brigens, um Ihre Konfiguration zu verifizieren, externe
Betriebssystemkommandos auch testen. Nutzen Sie hierzu Transaktion
SM49 und whlen Sie dort die gewnschte Konfiguration aus. In der
erscheinenden Dialogmaske mssen Sie die zustzlichen Parameter
in unserem Beispiel den Namen des Rechners, den Sie ber das ping-
Kommando ansprechen mchten eingeben und erhalten als Ergebnis
die Ausgaben des Kommandos.
Damit das Betriebssystemkommando auch ausgefhrt werden kann,
wird das Programm sapxpg bzw. sapxpg.exe
6
bentigt.
6 Dieses wird beispielsweise in der MiniWAS-Version nicht mitgeliefert und muss
daher nachinstalliert werden. Es kann als Servicedatei vom SAP Service Marketplace
heruntergeladen und ber sapcar.exe in das MiniWAS-Verzeichnis eingespielt wer-
den. Sapcar.exe ist das Kompressions- bzw. Dekompressionsprogramm der SAP, das
hnlich wie zip, tar usw. funktioniert.
Kommunikation mit der Auenwelt
286
Die Programmzeile
s_parameters LIKE sxpgcolist-parameters VALUE 'knb008'
muss so angepasst werden, dass ein existenter und erreichbarer Name
referenziert wird.
Geben Sie das in Listing 5.3 abgebildete Programm ein und fhren Sie
es anschlieend aus.
Abbildung 5.2 Dialogmaske zum Anlegen eines externen Betriebssystemkommandos
Codebeispiel
*&-------------------------------------------------*
*& Report Z_FILE_03 *
*&-------------------------------------------------*

REPORT Z_FILE_03.

DATA:
s_command LIKE sxpgcolist-name VALUE 'ZWINPING',
s_parameters LIKE
sxpgcolist-parameters VALUE 'knb008',
c_status LIKE extcmdexex-status,
n_exitcode LIKE extcmdexex-exitcode,
tab_btcxpm LIKE TABLE OF btcxpm.

FIELD-SYMBOLS <fs> LIKE btcxpm.
287
Kommunikation mit dem Applikationsserver
START-OF-SELECTION.

REFRESH tab_btcxpm.
CLEAR tab_btcxpm.

* Ausfuehren des Programms ZWINPING
CALL FUNCTION 'SXPG_CALL_SYSTEM'
EXPORTING
COMMANDNAME = s_command
ADDITIONAL_PARAMETERS = s_parameters
IMPORTING
STATUS = c_status
EXITCODE = n_exitcode
TABLES
EXEC_PROTOCOL = tab_btcxpm
EXCEPTIONS
NO_PERMISSION = 1
COMMAND_NOT_FOUND = 2
PARAMETERS_TOO_LONG = 3
SECURITY_RISK = 4
WRONG_CHECK_CALL_INTERFACE = 5
PROGRAM_START_ERROR = 6
PROGRAM_TERMINATION_ERROR = 7
X_ERROR = 8
PARAMETER_EXPECTED = 9
TOO_MANY_PARAMETERS = 10
ILLEGAL_COMMAND = 11
OTHERS = 12.

* Ausgabe des Ergebnisses
IF sy-subrc <> 0.
WRITE: / 'Fehler bei der Ausfuehrung', sy-subrc.
ELSE.
WRITE: / 'Befehl ist erfolgreich ausgefuehrt.',
'Ergebnis ist:'.
WRITE: / 'Status: ', c_status,
' Exitcode: ', n_exitcode.

LOOP AT tab_btcxpm ASSIGNING <fs>.
WRITE: / <fs>-MESSAGE.
Kommunikation mit der Auenwelt
288
ENDLOOP.
ENDIF.
Listing 5.3 Ausfhren eines Kommandos auf dem Applikationsserver ber den Funkti-
onsbaustein SXPG_CALL_SYSTEM
Erluterung zur Lsung
Externe
Kommandos
ausfhren
Zentraler Codeabschnitt des in Listing 5.3 dargestellten ABAP-Programms
ist der Aufruf CALL FUNCTION 'SXPG_CALL_SYSTEM'. Der Funktionsbau-
stein kapselt alle erforderlichen Schritte zum Ausfhren eines Betriebssys-
tem-Kommandos. Als Eingabeparameter werden die folgenden Parame-
ter erwartet:
COMMANDNAME
Dieser Parameter enthlt Namen des externen Betriebssystemkom-
mandos, so wie zuvor in Transaktion SM69 konfiguriert.
ADDITIONAL_PARAMETERS
ber diesen Parameter werden die erforderlichen Argumente des
Betriebssystem-Kommandos bergeben. Es handelt sich hierbei um
eine einzige Zeichenkette, die alle Argumente entsprechend der jewei-
ligen Syntax durch Leerzeichen getrennt umfasst.
Da der Funktionsbaustein SXPG_CALL_SYSTEM remotefhig ist, knnen
externe Betriebssystemkommandos auf jedem Rechner, auf dem ein SAP-
System luft, gestartet werden sofern entsprechende Berechtigungen
erteilt wurden.
Der Algorithmus, mit dessen Hilfe aus dem Namen des Betriebssystem-
kommandos der reale, physische Befehl bestimmt wird, verfhrt nach den
folgenden Schritten:
Wenn ein Betriebssystemkommando mit dem gleichen Betriebssys-
temtyp wie im Systemfeld sy-opsys existiert, wird diese Definition fr
die Ausfhrung des Kommandos genutzt.
Wird hierber keine Definition gefunden, so wird die Recherche auf
die Syntaxgruppe
7
des Betriebssystemtyps wie im Systemfeld sy-
opsys ausgedehnt.
Bleibt auch diese Suche erfolglos, wird die Definition des Betriebssys-
temkommandos gesucht, das den Betriebssystemtyp ANYOS
8
trgt.
7 ber die Syntaxgruppe werden jeweils die Betriebssysteme gruppiert, die fr Datei-
namen, Befehle etc. die gleiche Syntax nutzen.
8 Definitionen mit dem Betriebssystemtyp ANYOS beschreiben Betriebssystemkom-
mandos, die in allen von SAP untersttzten Betriebssystemen ausfhrbar sind.
289
Kommunikation mit dem Applikationsserver
Erst wenn alle vorherigen Schritte keine Definition finden, wird die
Ausnahme COMMAND_NOT_FOUND ausgelst.
Auswertung der
Rckgabewerte
Ist die physische Befehlszeile ermittelt, wird der Befehl ausgefhrt
9
. Des-
sen Ergebnis wird ber zwei Rckgabeparameter sowie eine Tabelle ber-
mittelt:
STATUS
Dieser Wert liefert den Erfolg der Ausfhrung des externen Betriebs-
systemkommandos das Ergebnis 'O' zeigt das erfolgreiche Starten
und Ausfhren des Befehls an, ber das Ergebnis 'E' wird mitgeteilt,
dass ein Fehlerfall aufgetreten ist.
EXITCODE
Hierbei handelt es sich um einen numerischen Wert, der den Return-
code des jeweiligen Kommandos anzeigt.
EXEC_PROTOCOL
Diese interne Tabelle gibt die Ausgaben der Kanle stdout und stderr
des externen Betriebssystemkommandos an das aufrufende Programm
zurck.
In Abbildung 5.3 finden Sie die Ausgabe unseres Betriebssystemkomman-
dos ZWINPING. Um die verschiedenen Verhaltensweisen auszutesten, set-
zen Sie einfach in der Zeile
s_parameters LIKE sxpgcolist-parameters VALUE 'knb008'
den Wert auf einen Zielrechner, der nicht existent bzw. nicht erreichbar
ist.
Erweiterung zur Lsung
Im Zusammenhang der oben vorgestellten Lsung mchten wir Ihnen
einen weiteren Funktionsbaustein namens SXPG_COMMAND_EXECUTE
vorstellen, der fr das Ausfhren externer Betriebssystemkommandos
herangezogen werden kann.
9 Zustzlich erfolgt noch eine Berechtigungsprfung sowie die Feststellung, ob uner-
laubte bzw. gefhrliche Sonderzeichen enthalten sind; z. B. sind es bei Windows-
basierten Betriebssystemen die Zeichen |, &, <, >, ( und ) sowie bei Unix die Zei-
chen |, &, ;, ^, \, <, > und `. Zu diesen Details verweisen wir an dieser Stelle auf die
Dokumentation der Funktionsbausteine.
Kommunikation mit der Auenwelt
290
Abbildung 5.3 Bildschirmausgabe des externen Kommandos ZWINPING
Auch mit diesem Funktionsbaustein wird der Benutzer einer Berechti-
gungsprfung fr ein bestimmtes externes Betriebssystemkommando
unterzogen und bei positiven Ergebnis wird dieses Kommando anschlie-
end ausgefhrt. Neben diversen Einstellmglichkeiten bietet Ihnen die-
ser Funktionsbaustein allerdings zustzlich die Mglichkeit, das Ziel-
system anzugeben. Damit entfllt die Einschrnkung auf den
Applikationsserver des zugrunde liegenden SAP-Systems.
5.2 RFC
RFC steht fr Remote Function Call und bezeichnet letztendlich die Mg-
lichkeit, eine Funktion aufrufen zu knnen, die unter einem anderen Sys-
tem ausgefhrt wird. Fr die SAP-Welt bedeutet diese Fhigkeit, Funkti-
onen von anderen SAP-Systemen und auch Nicht-SAP-Systemen nutzen
zu knnen.
Entfernte
Funktionen
aufrufen
Fr beide Flle werden von SAP ber RFC entsprechende Schnittstellen
geliefert. Whrend der erste Fall, nmlich die Einbindung von Funktionen
anderer SAP-Systeme, derzeit durch das Sprachkonstrukt
CALL FUNCTION...DESTINATION
abgedeckt wird, werden fr die Integration fremder Applikationen von
SAP eine Vielzahl von Programmierschnittstellen zur Verfgung gestellt.
Die zu integrierende Anwendung kann dabei entweder als Client
(Anwendung, die SAP-Funktionen nutzt) oder als Server (Anwendung,
die Funktionen fr SAP bereitstellt) eingesetzt werden.
443
Index
Index
A
ABAP 417
ABAP Dictionary 417
ABAP Objects 417
ABAP Workbench 417
ABAP-Editor 417
ABAP-Laufzeitumgebung 417
ActiveX 336
Aggregationsfunktionen 172
Aktualparameter 417
ALV-Grid-Control 201, 211
Drop-Down-Listenfeld 219
Event-Handler 235
Filter setzen 232
Hotspot 232
mehrere Datenquellen 211
nderungsprotokollierung 177
Anweisungsblock 417
Anwendungsprogramm 417
Applikationsserver 281
Applikationsserver 417
Attribut 417
Ausnahmen
eigene 85
Historie 92
klassenbasiert 78
traditionell 74
berblick 73
B
BAPI 417
Beispielprogramme 16
C
Cast 417
C-Funktion
RfcAccept 316
RfcCall 300
RfcCallReceive 300
RfcClose 298
RfcDispatch 316
RfcGetName 318
RfcGetStructureInfoFlat 307
RfcInstallStructure 305
RfcOpen 299
RfcReceive 300
RfcSendData 315
CFW 417
Class Builder 418
Class-ID 335
Class-Pool 418
Client-Server-Architektur 418
Clipboard 242
Clipboardfunktionalitten 240
CLSID 334
Cluster 418
COM-Objekte 334
Aufruf von Methoden 343
Erzeugen 343
Freigeben 343
Word 364
COM-Technologie
Excelintegration 355
Control Framework 49, 201, 203
D
Datei- und Verzeichnisoperationen
240
Dateinamen 281
Datei-Upload/Download 240
Datenbank 418
Datenbank-Commit 418
Datenbank-LUW 418
Datenbank-Rollback 418
Datenbankschnittstelle 418
Datenbankserver 418
Datenbanksystem 418
Datenbanktabelle 418
Datenelement 418
Datenkapselung 23
Datenobjekt 419
Datenobjekts
dynamisch erzeugen 105
Datentyp 419
Datumsfelder 191
Arbeitstag 195
Differenzberechnung 192
Kalenderwoche 197
Schaltjahre 194
DCL 418
Index
444
DDL 418
Destination 310
SAPFTP 322
Dialogmodul 419
DML 418
Dokumentation 68
Domne 419
Drop-Down-Listenfeld 219, 226
Handlemechanismus 224, 231
Dynamik 96
Datenobjekt erzeugen 105
Feldlisten 101
Feldnamen 96
Funktionsbausteinaufruf 120
Klasseninstanzen erzeugen 126
Klauseln 101
Methodenaufruf 126
Objekte erzeugen 126
Performance 156
Sortierung 110
Strukturkomponenten 108
Tabellennamen 98
Dynpro 264
Dynpro 419
E
Elementarer Datentyp 419
Entwicklungsrichtlinien 59
Ereignisblock 419
Ereignisse 45
Excel
Objekt-Hierarchie 352
Excelmakro 353
F
Feld 419
Feldkatalog 216
Automatischer Aufbau 216
Halbautomatischer Aufbau 217
Manueller Aufbau 217
Feldsymbol 419
Flache Struktur 419
Formalparameter 419
Fortschrittsanzeige 262
Fremdschlssel 419
FTP 318, 330
FTP-Server 319, 324
Function Builder 419
Funktionsbaustein
dynamischer Aufruf 120
Freigabe 54
globale Schnittstelle 271
Parametertabelle 123
Wiederverwendung 54
Funktionsbaustein 419
Funktionsgruppe 419
G
genh.exe 293, 301
Globale Daten 419
GUI Scripting
abmelden 401
anmelden 399
langsame Netzwerkverbindungen
381
Objekthierarchie 376
Objektmodell 376
Session ermitteln 397
Verbindung herstellen 395
Voraussetzungen 380
GUI Scriptings 375
GUI-Control 202
mehrfacher Einsatz 208
GUI-Control 420
GUIDs 334
GUI-Status 420
H
Hash-Tabelle 420
I
IID 335
Include-Programm 420
Indextabelle 420
Instanz 420
Integration
Textverarbeitung Word 363
Interface 420
Interfacepool 420
Interfacereferenz 420
Interfaces 40
klassisches ABAP 45
Interne Tabelle 420
J
Join 420
445
Index
K
Kapselung 420
Klasse 420
Klassenbibliothek 420
Klassenreferenz 420
Kommandos ausfhren 284
Komplexe Datentypen 420
Konstante 421
Kopfzeile 421
Kurzdump 421
L
Laufzeitfehler 421
LIBID 335
Liste 421
Listenexport 250
Literal 421
Literale
Vermeidung 65
Logische Datenbank 421
Lokale Daten 421
LUW 421
LVC_T_FCAT 216
M
Makro 375
Makro 421
Mandant 421
Mandantenbehandlung 421
Mehrfachinstanziierung 24
Menu Painter 421
Metadaten 421
Methode 421
Methoden
dynamisch Aufrufen 126
Parametertabelle 130
Modularisierung 421
Modulpool 421
N
Namenskonventionen 60
Formroutinen 64
Funktionsbausteine 64
Methoden 64
Variablen 61
Native SQL 421
O
Oberklasse 421
Object Navigator 421
Objekt 421
Objekt-ID 378
absolute 380
Position extrahieren 412
relative 380
Objektreferenz 421
OCX-Komponente 366
OLE2_OBJECT 339
Open SQL 422
P
PAI 422
Parameter 422
Parameterschnittstelle 422
PBO 422
Polymorphie 134
Polymorphie 422
Prsentationsserver 422
ProgID 335
Programme
generieren 140
persistente 152
transiente 141
Programmierung
dynamisch 95
generisch 95
Prozedur 422
Q
QS-Assessment 69
R
Referenzvariable 422
regedit.exe 339
Registry 258, 335
auslesen 258
beschreiben 261
Registry-Editor 335
regsvr32.exe 339
Remote Function Call 290
Report 422
Repository 422
Repository-Objekt 422
Index
446
RFC API 291
Bibliotheken 298
Headerdateien 298
RFC_PARAMETER 295
RfcDispatch 314
RfcEnvironment 299
RfcInstallStructure 301
RfcListen 317
RFC-Server 309, 313
RTTI 158
Running Object Table 393
S
SAP GUI 422
sapftp 319
SAPFunctionsOCX 367, 372
SAPLogonCtrl 367
SAP-LUW 422
SAPTabFactoryCtrl 367
Schlssel 422
Screen Painter 423
Screenhandling
kapseln 265
Script
Abspielen 384
Aufzeichnen 383
Scripting API
findById 381, 387
GuiApplication 376
GuiComponent 387
GuiConnection 377, 395
GuiMainWindow 377
GuiSession 377, 387, 398
Navigieren 388
Objekt-ID 378
sendVKey 386, 390
Scripting-Applikationen 391
Script-Recorder 383
alternativer 388
Selektionsbild 423
SQL-Performance 169
Standard SQL 423
Standarddialoge 240
Standardtabelle 423
String
einlesen 187
zerlegen 186
String 423
Struktur 423
Subquery 423
sy-abcde 435
sy-batch 434
sy-binpt 434
sy-calld 434
sy-callr 437
sy-colno 436
sy-cpage 437
sy-cprog 434
sy-cucol 436
sy-curow 436
sy-datar 436
sy-datlo 433
sy-datum 433
sy-dayst 433
sy-dbcnt 435
sy-dbname 434
sy-dbsys 433
sy-dyngr 434
sy-dynnr 434
sy-fdayw 433
sy-fdpos 435
sy-host 433
sy-index 435
sy-langu 433
sy-ldbpg 434
sy-lilli 437
sy-linct 436
sy-linno 436
sy-linsz 436
sy-lisel 437
sy-listi 437
sy-loopc 436
sy-lsind 437
sy-macol 437
sy-mandt 433
sy-marow 437
sy-modno 433
sy-msgid 437
sy-msgno 437
sy-msgty 437
sy-msgv1...sy-msgv4 437
sy-opsys 433
sy-pagno 436
sy-pfkey 436
sy-prdsn 437
sy-repid 434
447
Index
sy-saprl 433
sy-scols 436
sy-slset 436
sy-spono 437
sy-srows 436
sy-staco 437
sy-staro 437
sy-stepl 436
sy-subrc 435
sy-sysid 433
sy-tabix 435
sy-tcode 434
sy-tfill 435
sy-timlo 433
sy-title 436
sy-tleng 435
sy-toccu 435
sy-tvar0...sy-tvar9 436
sy-tzone 434
sy-ucomm 436
sy-uline 435
sy-uname 433
sy-uzeit 434
sy-vline 435
sy-wtitl 436
sy-zonlo 434
T
TCP/IP-Modell 318
Textelement 423
Top-Include 423
Transaktion 423
Transaktionscode 423
U
bungsdaten 17
Unterklasse 423
Unterprogramm 423
V
Variable 423
VBA-Makro 368
Verarbeitungsblock 423
Verarbeitungslogik 423
Vererbung 423
View 423
virtuelle Keys 390
W
Wiederverwendbarkeit 30, 34
Word
Objekthierarchie 357
Word-Makros 365
Z
Zeichenketten
einfgen 190
Zeichenkettenverarbeitung 182