Beruflich Dokumente
Kultur Dokumente
Vorwort 11
1 Einleitung 13
Inhalt 5
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
6 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 nächsten Arbeitstages ......................................... 195
3.6.5 Berechnung von Kalenderwochen und Wochentagen ................. 197
Inhalt 7
5.3.2 Ausführen 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
A Glossar 417
D ABAP-Systemfelder 433
8 Inhalt
F Die Autoren 441
Index 443
Inhalt 9
Vorwort
Gäbe es eine letzte Wahrheit, dann ließe sie sich nicht beweisen. So viel-
deutig dieser Satz auch sein mag, eines ist sicher: Er gilt insbesondere für
den Bereich der Softwareentwicklung. Welcher der richtige, der beste, der
bessere Lösungsweg für ein gerade zu lösendes Entwurfs- oder Program-
mierproblem ist, lässt sich nur selten mit Gewissheit beantworten. Und
gerade bei Fragen rund um die Programmiersprache ABAP sind solche
Antworten deshalb besonders schwer zu finden, weil für viele Probleme
viele verschiedene Lösungswege angeboten werden, was zweifellos mit
der langen Historie und der Evolution der Sprache zusammenhängt.
Wie immer im Leben gibt es auch beim Umfang eines Buches gewisse
Beschränkungen. Während der Erstellung des Manuskripts standen wir
ständig vor der Entscheidung, welche Lösungen bzw. Rezepte wir auf-
nehmen sollten und welche nicht. Letztendlich basiert der Inhalt natür-
lich auf einer subjektiven Auswahl, die wir aufgrund von Recherchen in
Internetforen und intensiven Gesprächen mit ABAP-Entwicklern, Exper-
ten und Anfängern 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 tatsächlich gemacht wird. Sie wer-
Vorwort 11
den darüber hinaus in diesem Buch Lösungen für ABAP-Probleme finden,
die gar nicht mit nativen ABAP-Mitteln gelöst werden sollten, weil es ein-
fach nicht der beste Weg ist.
Natürlich möchten wir uns bei all den Interviewpartnern und Inputliefe-
ranten ganz herzlich bedanken, die uns tatkräftig bei der Stoffsammlung
und Durchsicht des Manuskripts unterstützt haben. Ohne sie wäre dieses
Buch nie realisiert worden. Unser Dank gilt Thomas Davidson, Ralf Drum,
Horst Keller, Jürgen Kompa, Doreen Koselowski, Ralph Schnarkowski,
Daniela Schälchi, Paul Lewis Trip und ganz besonders Tobias Trapp. Darü-
ber hinaus danken wir auch Tomas Wehren und seinem Team von SAP
PRESS für 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. Außerdem bedanken wir uns herzlich bei Stefan Proksch
für die tatkräftige Unterstützung im Endspurt der Manuskriptabgabe.
Sascha Krüger dankt ganz besonders seiner Frau Katja, die noch mehr als
sonst mit Zuspruch, Unterstützung, Kritik und ihrer wunderbaren Art,
Menschen zu inspirieren, dafür gesorgt hat, dass dieses Projekt zu einem
erfolgreichen Abschluss kommen konnte – und das mehr, als sich die
meisten vorstellen können.
12 Vorwort
5 Kommunikation mit der
Außenwelt
Die Integration von SAP-System und anderen Anwendungen
ist ein wesentlicher Bestandteil für die Abbildung durchgängi-
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.
Befehl Bedeutung
OPEN DATASET Öffnen einer Datei zum Lesen bzw. zum Schreiben von Daten.
Es können sowohl Textdateien als auch Binärdateien behandelt
werden.
Tabelle 5.1 Sprachelemente von ABAP für die Verwaltung von Daten auf dem
Applikationsserver
Vorgehensweise
왘 Geben Sie das Programm wie in Listing 5.1 dargestellt ein und führen
Sie es aus.
왘 Voraussetzung für eine korrekte Funktionsweise ist ein Applikations-
server, der mit dem Betriebssystem Windows arbeitet. Nutzen Sie ein
anderes Betriebssystem (beispielsweise UNIX) für den Applikationsser-
ver, so müssen Sie die Zeile
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,
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'.
START-OF-SELECTION.
*&--------------------------------*
*& FORMS
*&--------------------------------*
FORM table_to_file
USING
tab_records TYPE t_tab
s_filename TYPE STRING.
* Datei oeffnen
OPEN DATASET s_filename FOR OUTPUT IN BINARY MODE.
* Datei schliessen
CLOSE DATASET s_filename.
ENDFORM.
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.
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.
geöffnet. In unserer Lösung haben wir uns für eine Binärdatei entschie-
den, da keine Notwendigkeit der Weiterverarbeitung besteht. Möchten
Sie aber beispielsweise die physische Datei auf dem Applikationsserver
weiter bearbeiten, können Sie mit der Option TEXT MODE eine unter dem
Betriebssystem des Applikationsservers lesbare Datei generieren lassen.
'C:\<Unterverzeichnis>\..\beispiel001.txt'
CLOSE DATASET
Lesen aus einer Das zweite Unterprogramm file_to_table liest den Inhalt einer Datei
Datei und schreibt diesen in eine interne Tabelle. Auch hier werden als Parame-
ter der Name der Datei sowie eine interne Tabelle für die Aufnahme der
Daten genutzt. Da wir die über das Unterprogramm table_to_file
gespeicherte Datei erneut einlesen möchten, müssen wir die Datei auch
wieder als Binärdatei (Parameter IN BINARY MODE) öffnen2.
Das Einlesen der einzelnen Zeilen der internen Tabelle erfolgt mittels der
Anweisung
1 Allerdings ist es nicht möglich, auch interne Tabellen mit nur einer TRANSFER-
Anweisung auszugeben. Daher müssen wir den Weg über die zeilenweise Ausgabe
beschreiten.
2 Es werden keine Typinformationen der geschriebenen Datensätze gespeichert. Vor
diesem Hintergrund ist es natürlich möglich, Dateien in einem anderen Format ein-
zulesen als sie geschrieben wurden. So können z. B. Datensätze als Zeichenketten
(Typ C oder STRING) herausgeschrieben und anschließend in Hexadezimal-Darstel-
lung (Typ X) wieder eingelesen werden.
Um nun diesen logischen Dateinamen zur Laufzeit auf den betriebssyste- Logische
mabhängigen, physischen Dateipfad abbilden zu können, wird Ihnen der Dateinamen
3 Die Gültigkeit bezieht sich auf das zur Laufzeit aktuelle Betriebssystem des Applika-
tionsservers.
derart angepasst werden, dass eine gültige und zugreifbare Datei refe-
renziert wird.
왘 Der vorgestellte Lösungsansatz 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.
* Datei schliessen
CLOSE DATASET s_filename.
WRITE / str_line.
ENDDO.
Listing 5.2 Verzeichnis auf einem Windows-basierten Applikationsserver auslesen
왘 In dem ersten Schritt speichern wir den Inhalt des gewünschten Ver-
zeichnisses in einer Datei auf dem Applikationsserver.
왘 Anschließend wird im folgenden Programmblock diese Datei eingele-
sen und in eine interne Tabelle kopiert.
Für das Ermitteln des Inhalts eines Verzeichnisses auf dem Applikations- Ausführen von
server nutzen wir das Sprachelement OPEN DATASET mit dem Zusatz FIL- Betriebssystem-
kommandos
TER. Diese Option erlaubt es, ein Betriebssystem-Kommando an den
Applikationsserver zu übertragen und dieses dann dort auszuführen. In
Abhängigkeit davon, ob die angesprochene Datei mit dem Zusatz FOR
INPUT bzw. FOR OUTPUT geöffnet wird, wird entweder der Inhalt der Datei
als Eingabe für das Kommando genutzt bzw. die Ausgabe des Komman-
dos in die Datei geschrieben. Hintergrund für diese Funktionsweise ist
eine Redirektion der Eingabe (stdin) bzw. der Ausgabe (stdout). Die fol-
Aufgabenstellung
Kommandos auf Die im vorangehenden Abschnitt beschriebene Lösung erlaubt es Ihnen,
dem Applikations- Kommandos auf dem Applikationsserver auszuführen und dabei eine
server ausführen
Redirektion der Eingabe bzw. Ausgabe in eine Datei vorzunehmen. Aller-
dings ist dieses Vorgehen auf Windows- und Unix-basierte Betriebs-
systeme beschränkt.
4 Dieser Aufruf dient nur der Verdeutlichung und macht in dieser Form wenig Sinn,
da die Eingabe über die Konsole erfolgen müsste.
5 Es besteht die Möglichkeit, über das Systemfeld sy-opsys dynamisch, nämlich zur
Laufzeit des ABAP-Programms, das genutzte Betriebssystem zu bestimmen.
Vorgehensweise
왘 Um betriebssystemunabhängige Kommandos benutzen zu können,
bedienen wir uns des Konzepts der externen Betriebssystemkomman-
dos. Diese können über Transaktion SM69 verwaltet werden.
Um das in Listing 5.3 verwendete Betriebssystemkommando einzu-
richten, führen Sie die nachfolgend beschriebenen Schritte durch:
왘 Gehen Sie in das Menü Anzeigen externer Betriebssystemkom-
mandos (Transaktion SM69).
왘 Dort wählen Sie über das Menü Bearbeiten den Menüpunkt Anle-
gen bzw. F6. Gegebenenfalls muss zuvor in den Änderungsmodus
(Menü Kommandoliste • Anzeige <-> Ändern bzw. F5) umgeschal-
tet werden.
왘 Bei der jetzt erscheinenden Bildschirmmaske füllen Sie die Felder
wie Abbildung 5.2 gezeigt aus und speichern Ihren Eintrag. Das Feld
Parameter für Betriebssystem-Kommando bezieht sich in diesem
Zusammenhang auf das Betriebssystemkommando selbst. Mitunter
kann es nämlich 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 für den Betriebs-
systembefehl werden wir später dynamisch über das Programm vor-
nehmen.
Sie können übrigens, um Ihre Konfiguration zu verifizieren, externe
Betriebssystemkommandos auch testen. Nutzen Sie hierzu Transaktion
SM49 und wählen Sie dort die gewünschte Konfiguration aus. In der
erscheinenden Dialogmaske müssen Sie die zusätzlichen Parameter –
in unserem Beispiel den Namen des Rechners, den Sie über das ping-
Kommando ansprechen möchten – eingeben und erhalten als Ergebnis
die Ausgaben des Kommandos.
왘 Damit das Betriebssystemkommando auch ausgeführt werden kann,
wird das Programm sapxpg bzw. sapxpg.exe6 benötigt.
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.
REFRESH tab_btcxpm.
CLEAR tab_btcxpm.
왘 COMMANDNAME
Dieser Parameter enthält 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.
Der Algorithmus, mit dessen Hilfe aus dem Namen des Betriebssystem-
kommandos der reale, physische Befehl bestimmt wird, verfährt nach den
folgenden Schritten:
7 Über die Syntaxgruppe werden jeweils die Betriebssysteme gruppiert, die für Datei-
namen, Befehle etc. die gleiche Syntax nutzen.
8 Definitionen mit dem Betriebssystemtyp ANYOS beschreiben Betriebssystemkom-
mandos, die in allen von SAP unterstützten Betriebssystemen ausführbar sind.
Ist die physische Befehlszeile ermittelt, wird der Befehl ausgeführt9. Des- Auswertung der
sen Ergebnis wird über zwei Rückgabeparameter sowie eine Tabelle über- Rückgabewerte
mittelt:
왘 STATUS
Dieser Wert liefert den Erfolg der Ausführung des externen Betriebs-
systemkommandos – das Ergebnis 'O' zeigt das erfolgreiche Starten
und Ausführen 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 Kanäle stdout und stderr
des externen Betriebssystemkommandos an das aufrufende Programm
zurück.
5.2 RFC
RFC steht für Remote Function Call und bezeichnet letztendlich die Mög-
lichkeit, eine Funktion aufrufen zu können, die unter einem anderen Sys-
tem ausgeführt wird. Für die SAP-Welt bedeutet diese Fähigkeit, Funkti-
onen von anderen SAP-Systemen und auch Nicht-SAP-Systemen nutzen
zu können.
Entfernte Für beide Fälle werden von SAP über RFC entsprechende Schnittstellen
Funktionen geliefert. Während der erste Fall, nämlich die Einbindung von Funktionen
aufrufen
anderer SAP-Systeme, derzeit durch das Sprachkonstrukt
CALL FUNCTION...DESTINATION
abgedeckt wird, werden für die Integration fremder Applikationen von
SAP eine Vielzahl von Programmierschnittstellen zur Verfügung gestellt.
Die zu integrierende Anwendung kann dabei entweder als Client
(Anwendung, die SAP-Funktionen nutzt) oder als Server (Anwendung,
die Funktionen für SAP bereitstellt) eingesetzt werden.
A RfcReceive 300
ABAP 417 RfcSendData 315
ABAP Dictionary 417 CFW 417
ABAP Objects 417 Class Builder 418
ABAP Workbench 417 Class-ID 335
ABAP-Editor 417 Class-Pool 418
ABAP-Laufzeitumgebung 417 Client-Server-Architektur 418
ActiveX 336 Clipboard 242
Aggregationsfunktionen 172 Clipboardfunktionalitäten 240
Aktualparameter 417 CLSID 334
ALV-Grid-Control 201, 211 Cluster 418
Drop-Down-Listenfeld 219 COM-Objekte 334
Event-Handler 235 Aufruf von Methoden 343
Filter setzen 232 Erzeugen 343
Hotspot 232 Freigeben 343
mehrere Datenquellen 211 Word 364
Änderungsprotokollierung 177 COM-Technologie
Anweisungsblock 417 Excelintegration 355
Anwendungsprogramm 417 Control Framework 49, 201, 203
Applikationsserver 281
Applikationsserver 417 D
Attribut 417 Datei- und Verzeichnisoperationen
Ausnahmen 240
eigene 85 Dateinamen 281
Historie 92 Datei-Upload/Download 240
klassenbasiert 78 Datenbank 418
traditionell 74 Datenbank-Commit 418
Überblick 73 Datenbank-LUW 418
Datenbank-Rollback 418
B Datenbankschnittstelle 418
BAPI 417 Datenbankserver 418
Beispielprogramme 16 Datenbanksystem 418
Datenbanktabelle 418
C Datenelement 418
Cast 417 Datenkapselung 23
C-Funktion Datenobjekt 419
RfcAccept 316 Datenobjekts
RfcCall 300 dynamisch erzeugen 105
RfcCallReceive 300 Datentyp 419
RfcClose 298 Datumsfelder 191
RfcDispatch 316 Arbeitstag 195
RfcGetName 318 Differenzberechnung 192
RfcGetStructureInfoFlat 307 Kalenderwoche 197
RfcInstallStructure 305 Schaltjahre 194
RfcOpen 299 DCL 418
Index 443
DDL 418 Funktionsbaustein
Destination 310 dynamischer Aufruf 120
SAPFTP 322 Freigabe 54
Dialogmodul 419 globale Schnittstelle 271
DML 418 Parametertabelle 123
Dokumentation 68 Wiederverwendung 54
Domäne 419 Funktionsbaustein 419
Drop-Down-Listenfeld 219, 226 Funktionsgruppe 419
Handlemechanismus 224, 231
Dynamik 96 G
Datenobjekt erzeugen 105 genh.exe 293, 301
Feldlisten 101 Globale Daten 419
Feldnamen 96 GUI Scripting
Funktionsbausteinaufruf 120 abmelden 401
Klasseninstanzen erzeugen 126 anmelden 399
Klauseln 101 langsame Netzwerkverbindungen
Methodenaufruf 126 381
Objekte erzeugen 126 Objekthierarchie 376
Performance 156 Objektmodell 376
Sortierung 110 Session ermitteln 397
Strukturkomponenten 108 Verbindung herstellen 395
Tabellennamen 98 Voraussetzungen 380
Dynpro 264 GUI Scriptings 375
Dynpro 419 GUI-Control 202
mehrfacher Einsatz 208
E GUI-Control 420
Elementarer Datentyp 419 GUIDs 334
Entwicklungsrichtlinien 59 GUI-Status 420
Ereignisblock 419
Ereignisse 45 H
Excel Hash-Tabelle 420
Objekt-Hierarchie 352
Excelmakro 353 I
IID 335
F Include-Programm 420
Feld 419 Indextabelle 420
Feldkatalog 216 Instanz 420
Automatischer Aufbau 216 Integration
Halbautomatischer Aufbau 217 Textverarbeitung Word 363
Manueller Aufbau 217 Interface 420
Feldsymbol 419 Interfacepool 420
Flache Struktur 419 Interfacereferenz 420
Formalparameter 419 Interfaces 40
Fortschrittsanzeige 262 klassisches ABAP 45
Fremdschlüssel 419 Interne Tabelle 420
FTP 318, 330
FTP-Server 319, 324 J
Function Builder 419 Join 420
444 Index
K O
Kapselung 420 Oberklasse 421
Klasse 420 Object Navigator 421
Klassenbibliothek 420 Objekt 421
Klassenreferenz 420 Objekt-ID 378
Kommandos ausführen 284 absolute 380
Komplexe Datentypen 420 Position extrahieren 412
Konstante 421 relative 380
Kopfzeile 421 Objektreferenz 421
Kurzdump 421 OCX-Komponente 366
OLE2_OBJECT 339
L Open SQL 422
Laufzeitfehler 421
LIBID 335 P
Liste 421 PAI 422
Listenexport 250 Parameter 422
Literal 421 Parameterschnittstelle 422
Literale PBO 422
Vermeidung 65 Polymorphie 134
Logische Datenbank 421 Polymorphie 422
Lokale Daten 421 Präsentationsserver 422
LUW 421 ProgID 335
LVC_T_FCAT 216 Programme
generieren 140
M persistente 152
Makro 375 transiente 141
Makro 421 Programmierung
Mandant 421 dynamisch 95
Mandantenbehandlung 421 generisch 95
Mehrfachinstanziierung 24 Prozedur 422
Menu Painter 421
Metadaten 421 Q
Methode 421 QS-Assessment 69
Methoden
dynamisch Aufrufen 126 R
Parametertabelle 130 Referenzvariable 422
Modularisierung 421 regedit.exe 339
Modulpool 421 Registry 258, 335
auslesen 258
N beschreiben 261
Namenskonventionen 60 Registry-Editor 335
Formroutinen 64 regsvr32.exe 339
Funktionsbausteine 64 Remote Function Call 290
Methoden 64 Report 422
Variablen 61 Repository 422
Native SQL 421 Repository-Objekt 422
Index 445
RFC API 291 Struktur 423
Bibliotheken 298 Subquery 423
Headerdateien 298 sy-abcde 435
RFC_PARAMETER 295 sy-batch 434
RfcDispatch 314 sy-binpt 434
RfcEnvironment 299 sy-calld 434
RfcInstallStructure 301 sy-callr 437
RfcListen 317 sy-colno 436
RFC-Server 309, 313 sy-cpage 437
RTTI 158 sy-cprog 434
Running Object Table 393 sy-cucol 436
sy-curow 436
S sy-datar 436
SAP GUI 422 sy-datlo 433
sapftp 319 sy-datum 433
SAPFunctionsOCX 367, 372 sy-dayst 433
SAPLogonCtrl 367 sy-dbcnt 435
SAP-LUW 422 sy-dbname 434
SAPTabFactoryCtrl 367 sy-dbsys 433
Schlüssel 422 sy-dyngr 434
Screen Painter 423 sy-dynnr 434
Screenhandling sy-fdayw 433
kapseln 265 sy-fdpos 435
Script sy-host 433
Abspielen 384 sy-index 435
Aufzeichnen 383 sy-langu 433
Scripting API sy-ldbpg 434
findById 381, 387 sy-lilli 437
GuiApplication 376 sy-linct 436
GuiComponent 387 sy-linno 436
GuiConnection 377, 395 sy-linsz 436
GuiMainWindow 377 sy-lisel 437
GuiSession 377, 387, 398 sy-listi 437
Navigieren 388 sy-loopc 436
Objekt-ID 378 sy-lsind 437
sendVKey 386, 390 sy-macol 437
Scripting-Applikationen 391 sy-mandt 433
Script-Recorder 383 sy-marow 437
alternativer 388 sy-modno 433
Selektionsbild 423 sy-msgid 437
SQL-Performance 169 sy-msgno 437
Standard SQL 423 sy-msgty 437
Standarddialoge 240 sy-msgv1...sy-msgv4 437
Standardtabelle 423 sy-opsys 433
String sy-pagno 436
einlesen 187 sy-pfkey 436
zerlegen 186 sy-prdsn 437
String 423 sy-repid 434
446 Index
sy-saprl 433 T
sy-scols 436 TCP/IP-Modell 318
sy-slset 436 Textelement 423
sy-spono 437 Top-Include 423
sy-srows 436 Transaktion 423
sy-staco 437 Transaktionscode 423
sy-staro 437
sy-stepl 436 U
sy-subrc 435 Übungsdaten 17
sy-sysid 433 Unterklasse 423
sy-tabix 435 Unterprogramm 423
sy-tcode 434
sy-tfill 435 V
sy-timlo 433 Variable 423
sy-title 436 VBA-Makro 368
sy-tleng 435 Verarbeitungsblock 423
sy-toccu 435 Verarbeitungslogik 423
sy-tvar0...sy-tvar9 436 Vererbung 423
sy-tzone 434 View 423
sy-ucomm 436 virtuelle Keys 390
sy-uline 435
sy-uname 433 W
sy-uzeit 434 Wiederverwendbarkeit 30, 34
sy-vline 435 Word
sy-wtitl 436 Objekthierarchie 357
sy-zonlo 434 Word-Makros 365
Z
Zeichenketten
einfügen 190
Zeichenkettenverarbeitung 182
Index 447