ABAP-Systemfelder - ABAP-Schlüsselwortdokumentation (2024)

SAP NetWeaver AS ABAP Release 751, ©Copyright 2017 SAP AG. Alle Rechte vorbehalten.

Systemfelder werden von der ABAP-Laufzeitumgebunggefüllt und können in einem ABAP-Programm verwendet werden, um Systemzustände abzufragen. Bis auf eine Ausnahme(sy-repid) sind Systemfelder zwar Variablen, aber es sollte nur lesend aufsie zugegriffen werden, da sonst in der Regel wichtige Informationen für die weitere Programmausführungverloren gehen. Nur in wenigen Fällen dürfen Systemfelder in ABAP-Programmen überschrieben werden, um das Systemverhalten zu steuern.

Die Datentypen der Systemfelder sind mit Ausnahme von sy-repid im ABAP Dictionaryin der Struktur SYST definiert und in ABAP-Programmen als Komponenten dervordefinierten Struktur sy instanziert. Die Struktur sy ist ein einziges Mal in einerinternen Sitzung vorhanden und wird von allen Programmen einer internen Sitzung gemeinsam verwendet.

Die Struktur sy ist auch über syst ansprechbar.Umgekehrt gibt es auch einen eingebauten Datentyp sy, der statt des Datentyps SYST des ABAP Dictionary verwendet werden kann.

Die folgende Tabelle zeigt die Systemfelder, die in ABAP-Programmen verwendbar sind. Alle anderen Komponenten der Struktur sy sind entweder nur für deninternen Gebrauch der ABAP-Laufzeitumgebung vorgesehen oder obsolet.

NameTypLängeInhaltsy-abcdec26Enthält das lateinische Alphabet. Kann verwendet werden, um unabhängig von derCodepage über Offset-/Längenangabe gezielt auf einzelne Buchstaben zuzugreifen.sy-batchc1In einem im Hintergrund ablaufenden ABAP-Programm auf "X" gesetzt, ansonsten initial.sy-binptc1Während der Verarbeitung von Batch-Input-Mappenund in mit CALL TRANSACTIONUSING aufgerufenen ABAP-Programmen auf "X" gesetzt, ansonsteninitial. Diese Standardwerte können mit dem OPTIONS FROM der Anweisung CALL TRANSACTION USING übersteuert werden.sy-calldc1Enthält im ersten Programm einer Aufrufketteein Leerzeichen, ansonsten den Wert "X". Nach Aufruf über CALL TRANSACTION, CALL DIALOG oder SUBMIT ...AND RETURN auf "X" gesetzt. Leer, falls das Programm über LEAVE TO TRANSACTION oder über einen Transaktionscode vomBildschirmbild aus gestartetwurde. Ein Aufruf über SUBMIT (ohne AND RETURN) übernimmt den Wert des aufrufenden Programms.sy-callrc8Enthält beim Spoolen von Listen einen Wert, der anzeigt, wo das Spoolen gestartet wurde, z.B. NEW-PAGE für programmgesteuertes Spoolen oder RSDBRUNT für das Spoolen vomSelektionsbild aus.sy-colnoi-Aktuelle Position während der Erstellung einer Liste im Listenpuffer, wird bei jeder Ausgabeanweisunggesetzt. Die Zählung beginnt bei 1. Es ist nur für die jeweils unteren und oberen Ausgabegrenzender einzelnen Ausgaben garantiert, dass diese Position auch der Spalte in der dargestellten Liste entspricht, da ein Zeichen mehr Spalten auf der Liste als Stellen im Listenpuffer beanspruchen kann. Siehe auchListen - Systemfelder.sy-cpagei-Seitennummer der obersten angezeigten Seite der Liste, auf der ein Listenereignis ausgelöst wurde. Die Zählung beginnt bei 1. Siehe auchListen - Systemfelder.sy-cprogc40In extern aufgerufenen Prozedurender Name des aufrufenden Programms, ansonsten der Name des aktuellen Programms. Wenn eine extern aufgerufene Prozedur eine weitere externe Prozedur aufruft, behält sy-cprog den Namen des erstenRahmenprogramms und wird nicht auf den Namen des Rahmenprogramms des weiteren Aufrufers gesetzt.sy-cucoli-Horizontale Cursor-Position auf dem Bildschirmbild eines Dynpros. Zählung beginnt bei Spalte 2. Wird beim Ereignis PAI gesetzt.sy-curowi-Vertikale Cursor-Position auf dem Bildschirmbild eines Dynpros. Zählung beginnt bei Zeile 1. Wird beim Ereignis PAI gesetzt.sy-datarc1Enthält zu PAI "X", wenn mindestens ein Eingabefeld eines Bildschirmbildes durch Benutzer oder andere Datenübergabe geändert wurde, ansonsten initial.sy-datlod-Benutzerdatum, z.B. "19990723", siehe Systemfelder für Datum und Zeit.sy-datumd-Systemdatum, siehe Systemfelder für Datum und Zeit.sy-daystc1Während der Sommerzeit in der Systemzeitzone "X", ansonsten initial. Siehe Systemfelder für Datum und Zeit.sy-dbcnti-SQL-Anweisungen setzen den Inhalt von sy-dbcnt auf die Anzahl der bearbeiteten Tabellenzeilen.sy-dbnamc20Bei ausführbaren Programmen die verknüpfte logische Datenbank.sy-dbsysc10Zentrales Datenbanksystem, z.B. "HDB", "ADABAS". Siehe auch CL_DB_SYS.sy-dyngrc4Bildgruppe des aktuellen Dynpros. Mehrere Dynpros können imScreen Painter einergemeinsamen Bildgruppe zugeordnet werden, die z.B. für eine einheitliche Modifikation aller Bildschirmbilder dieser Gruppe verwendet werden kann.sy-dynnrc4Nummer des aktuellen Dynpros. Während derSelektionsbildverarbeitungdas aktuelle Selektionsbild. Während der Listenverarbeitung die Nummer des Träger-Dynpros. Während der Verarbeitung einesSubscreen-Dynpros (auch beiTabstrips) dessen Nummer.sy-fdaywb-Fabrikkalender-Wochentag in der Systemzeitzone, montags = 1, ..., freitags = 5. Siehe Systemfelder für Datum und Zeit.sy-fdposi-Fundstelle bei bestimmten Operationen mit zeichen- oder byteartigen Datenobjekten (z.B. FIND,Vergleiche).sy-hostc32Netzwerkname des Rechners, auf dem der aktuelleApplikationsserver instanziert ist, z.B. "KSAP0001", "HS01234".sy-indexi-Schleifenindex. Enthält in DO- und WHILE-Schleifen die Anzahl der bisherigen Schleifendurchläufe inklusive des aktuellen Durchlaufs.sy-languc1Einstelliger Sprachenschlüssel - z.B. "D", "E", "F" - für die aktuelleTextumgebung. Durch die Anmeldesprache des Benutzers oder durch die Anweisung SET LOCALE gesetzt.sy-ldbpgc40Bei ausführbaren Programmen das Datenbankprogramm der verknüpften logischen Datenbank.sy-lillii-Listenzeile, auf der ein Listenereignis ausgelöst wurde. Die Zählung beginnt bei 1 und beinhaltet denSeitenkopf. Siehe auch Listen - Systemfelder.sy-lincti-Seitenlänge der aktuellen Liste während der Listenerstellung. sy-linctist 0 für eine beliebig lange Standardliste und hat einen Wert ungleich 0 für Listen mitfestgelegter Seitenlänge. Wird von der programmeinleitenden Anweisung oder mit SUBMIT gesetzt. Siehe auch Listen - Systemfelder.sy-linnoi-Aktuelle Listenzeile während der Listenerstellung. Die Zählung beginnt bei 1 und beinhaltet den Seitenkopf. Wird von Ausgabeanweisungen gesetzt. Siehe auchListen - Systemfelder.sy-linszi-Zeilenbreite der aktuellen Liste im Listenpuffer während der Listenerstellung. Standardmäßigist der Wert wie folgt: Falls sy-scols größer gleich 84 istsy-linsz gleich sy-scols, ansonsten hat sy-linsz den Wert 84. Dies kann von der programmeinleitenden Anweisung oder mit SUBMIT übersteuert werden. Siehe auchListen - Systemfelder.sy-liselc255Inhalt der Listenzeile im Listenpuffer, auf der in der dargestellten Liste der Cursor stand, während ein Listenereignis ausgelöst wurde (beschränkt auf die ersten 255 Zeichen). Siehe auchListen - Systemfelder.sy-listii-Listenstufe der Liste, auf der ein Listenereignis ausgelöst wurde.sy-loopci-Anzahl der aktuell in einem Table Control angezeigten Zeilen. Wird beim Ereignis PAI gesetzt.sy-lsindi-Listenstufe der Liste, die gerade erstellt wird (Grundliste: 0, Verzweigungslisten: größer0). Bei jedem interaktiven Listenereignis wird sy-lsind automatisch um 1erhöht. sy-lsind darf im ABAP-Programm geändert werden, umzwischen Verzweigungslisten zu navigieren. Eine Änderung von sy-lsind wird erst am Ende eines Listenereignisses berücksichtigt. Siehe auchListen - Systemfelder.sy-macoli-Enthält beim Spoolen von Listen die Anzahl der Spalten am linken Rand. Wird von der Anweisung SET MARGIN gesetzt.sy-mandtc3Mandantenkennung, mit der sich der aktuelle Benutzer angemeldet hat, z.B. "401", "800".sy-marowi-Enthält beim Spoolen von Listen die Anzahl der Zeilen am oberen Rand. Wird von der Anweisung SET MARGIN gesetzt.sy-modnoi-Indizierung der ABAP-Sitzungen.Enthält in der ersten Sitzung den Wert 0. Wird in neuen Sitzungen, die mit der Funktion Erzeugen Modus oder durch Aufruf einerTransaktion mit /o im Befehlsfeld derSystemfunktionsleistegeöffnet werden, um 1 erhöht. Falls vorhergehende Sitzungen gelöscht wurden, werdenerst die freien Zahlen wieder belegt. Sitzungen, die mit CALL FUNCTION ... STARTING NEW TASKgeöffnet werden, starten wieder bei 0.sy-msgidc20Enthält nach der Anweisung MESSAGE die Nachrichtenklasse. NachMESSAGE ... RAISING auch im aufrufenden Programm gesetzt, falls es die Ausnahme behandelt (gilt auch für RFC-Ausnahmen).sy-msgnon3Enthält nach der Anweisung MESSAGE die Nachrichtennummer. NachMESSAGE ... RAISING auch im aufrufenden Programm gesetzt, falls es die Ausnahme behandelt (gilt auch für RFC-Ausnahmen).sy-msgtyc1Enthält nach der Anweisung MESSAGE den Nachrichtentyp. Nach MESSAGE ... RAISING auch im aufrufenden Programm gesetzt, falls es die Ausnahme behandelt (gilt auch für RFC-Ausnahmen).sy-msgv1, sy-msgv2, sy-msgv3, sy-msgv4c50Enthalten nach der Anweisung MESSAGE die Feldinhalte, die für die Platzhalter derNachricht verwendet wurden.Nach MESSAGE ... RAISING auch im aufrufenden Programm gesetzt, falls es dieAusnahme behandelt (gilt auch für RFC-Ausnahmen). Bei Anforderung einer Datenbanksperren miteinem ENQUEUE-Funktionsbaustein enthält sym-sgv1 nach der Ausnahme FOREIGN_LOCK den Namen des Benutzers, der die Sperre hält.sy-opsysc10Betriebssystem des aktuellen Applikationsservers,z.B. "SOLARIS", "HP-UX".sy-pagnoi-Aktuelle Seite bei der Listenerstellung. Wird von Ausgabeanweisungen gesetzt. Siehe auch Listen - Systemfelder.sy-pfkeyc20GUI-Status des aktuellen Dynpros. Wird beim Ereignis PAI gesetzt.sy-repidc40Name des aktuellen ABAP-Programms. Bei extern aufgerufenen Prozeduren Name desRahmenprogramms derProzedur. Falls sy-repidals Aktualparameter an eine externe Prozedur übergeben wird, wird der Formalparameter auf den Namen des Aufrufers gesetzt.sy-saprlc4Release-Stand des AS ABAP, z.B. "702", "740".sy-scolsi-Anzahl der Spalten des aktuellen Bildschirmbildes. Wird beim Ereignis PAI gesetzt.sy-slsetc14Selektionsbildvariante, die zum Füllen einesSelektionsbildes verwendet wurde. Der zugehörige Programmname ist sy-cprog zu entnehmen.sy-sponon10Enthält beim Spoolen von Listen den Namen der Spool-Nummer.sy-srowsi-Anzahl der Zeilen des aktuellen Bildschirmbildes. Wird beim Ereignis PAI gesetzt.sy-stacoi-Nummer der ersten angezeigten Spalte der Liste, auf der ein Listenereignis ausgelöst wurde. Zählung beginnt bei 1. Siehe auchListen - Systemfelder.sy-staroi-Nummer der obersten angezeigten Listenzeile der obersten angezeigten Seite der Liste, auf der ein Listenereignis ausgelöst wurde. Zählung beginnt bei 1. Hierbei wird derSeitenkopf nicht mitgezählt. Siehe auch Listen - Systemfelder.sy-stepli-Index der aktuellen Zeile in einem Table Control. Wird bei jedem Schleifendurchlauf gesetzt. Außerhalbeiner Schleife. z.B. beim Ereignis POV oder POH für eine Tabellenzeile, ist der Inhalt von sy-stepl undefiniert.sy-subrci-Rückgabewert, der von vielen ABAP-Anweisungen gesetzt wird. Im Allgemeinen bedeutet der Inhalt0, dass die Anweisung problemlos ausgeführt wurde. Je nachdem, durch welche Anweisung sy-subrcgesetzt wurde, kann im Fehlerfall aus dem entsprechenden Wert die Fehlerursache abgeleitet werden. NachAnweisungen, für die das Setzen von sy-subrc nicht explizit dokumentiertist, behält sy-subrc seinen vorhergehenden Wert oder sein Inhalt ist undefiniert.sy-sysidc8Name des AS ABAP, z.B. "S01", "K99".sy-tabixi-Zeilennummer im Tabellenindex einer internen Tabelle. Enthält die zuletzt über einenprimären odersekundären Tabellenindex angesprochene Zeile . Wird beim Zugriff über einenHash-Algorithmus auf 0 gesetzt.sy-tcodec20Name des aktuellen Transaktionscodes. In der Hintergrundverarbeitung initial, es sei denn es wurde während der Hintergrundverarbeitung eine Transaktion aufgerufen.sy-tfilli-Bei den Anweisungen DESCRIBE TABLE, LOOP ATund READ TABLE wird sy-tfill mit der Zeilenanzahl der angesprochenen internen Tabelle versorgt.sy-timlot-Benutzerzeit, z.B. "152557", siehe Systemfelder für Datum und Zeit.sy-titlec70Text, der im Titelbalken des Dynpros erscheint.sy-tlengi-Bei den Anweisungen DESCRIBE TABLE, LOOP ATund READ TABLE wird sy-tleng mit der Zeilengröße der angesprochenen internen Tabelle versorgt.sy-tvar0, sy-tvar1, sy-tvar2,sy-tvar3, sy-tvar4, sy-tvar5,sy-tvar6, sy-tvar7, sy-tvar8, sy-tvar9c20Diesen Systemfeldern dürfen im Programm Werte zugewiesen werden. Der Inhalt von sy-tvar0bis sy-tvar9 ersetzt beim Ereignis TOP-OF-PAGEdie Platzhalter "&0" bis "&9" in den Listen- und Spaltenüberschriften der Textelemente des Programms.sy-tzonei-Zeitdifferenz der Systemzeit zurUTC-Referenzzeit in Sekunden, z.B. "3600", "10800". SieheSystemfelder für Datum und Zeit.sy-ucommc70Funktionscode, der das Ereignis PAIausgelöst hat. Dieser ist in der Regel eindeutig mit einer Funktion verknüpft. Nur Enter kann verschiedene Funktionscodes an sy-ucomm nach folgenderHierarchie übergeben: Inhalt des Befehlsfelds der Systemfunktionsleiste, zugeordneter Funktionscode, keine Beeinflussung des Inhalts.sy-ulinec255Enthält 255 Zeichen "-" zur Darstellung von Linien auf Listen. Für die Ausgabe vonsy-uline mit der Anweisung WRITEgilt das Gleiche wie für die Anweisung ULINE, d.h. standardmäßig wird jedes Zeichen "-" durch einLinienelement ersetzt.sy-unamec12Anmeldename des Benutzers, z.B. "KELLERH". Siehe auch Benutzerabhängiger Programmablauf.sy-uzeitt-Systemzeit, siehe Systemfelder für Datum und Zeit.sy-vlinec1Enthält einen vertikalen Strich (|) zur Darstellung auf Listen.sy-wtitlc1Wird in den Anweisungen REPORT, PROGRAM undFUNCTION-POOL auf "N" gesetzt, wenn der ZusatzNO STANDARD PAGE HEADING verwendet wird, ansonsten initial. Die Anweisung NEW-PAGE setzt sy-wtitl nicht.sy-zonloc6Benutzerzeitzone, z.B. "CET", "PST". SieheSystemfelder für Datum und Zeit.

Das Systemfeld sy-repid ist keine Komponente der Strukturen systbzw. sy. Stattdessen enthält jedes Programm die vordefinierten Konstantensy-repid und syst-repid, die beide den Namen desjeweiligen Programms enthalten. Weiterhin gibt es zwei gleichnamige vordefinierte Typen sy-repidund syst-repid vom Typ c der Länge 40.

SELECT SINGLE *
FROM scarr
WHERE carrid = '...'
INTO @DATA(wa).

IF sy-subrc <> 0.
RETURN.
ENDIF.

ABAP-Systemfelder - ABAP-Schlüsselwortdokumentation (2024)

FAQs

Is SAP ABAP dead? ›

It is still the core of SAP's newer S/4 HANA system so no SAP is not ditching ABAP at least not in near future.

Is SAP ABAP coding difficult? ›

ABAP code is extremely easy to understand. If you have any coding experience, you'll learn the language with ease. The difficulty is getting to know the SAP systems that actually use this code.

How to avoid hard coding in ABAP? ›

Use constants to avoid repetitive hard coding of the same value. Avoid - Multiple parameter or constant entry table. Try to limit number of constants in a program.

Is SAP ABAP stressful? ›

SAP Consulting is an extremely engaging and rewarding career, but it is also a highly competitive arena and can be stressful at times.

Is SAP ABAP a high paying job? ›

The average salary for SAP ABAP Developer is ₹5,56,512 per year in the India. The average additional cash compensation for a SAP ABAP Developer in the India is ₹56,512, with a range from ₹30,000 - ₹1,03,796.

Does ABAP have a future? ›

Answer: yes, ABAP has a future. ABAP has a bright future. It is being actively developed by SAP and SAP uses it a lot to develop their products.

Should I learn SAP ABAP in 2024? ›

In short, learning SAP is more than just getting a new skill. It's about preparing for a future where you can lead, create new things, and do well in a digital world. The benefits for personal growth and job chances make SAP a valuable skill to learn in 2024.

How to solve performance issues in SAP ABAP? ›

Transaction code SM66 is used to quickly investigate the potential cause of a system performance problem by checking the work process load. You can also use transaction code SM50 to see just work process load for the current application server you are logged into.

How do I check the performance of the ABAP program? ›

Run time analysis transaction SE30

Using the transaction SE30, we can do the analysis of ABAP program with respect to ABAP, Database and System. So, we can evaluate the quality of code. This transaction is used to do the analysis of transactions, function modules and reports.

Is ABAP programming difficult? ›

Conclusion. In simple words, SAP ABAP does require coding knowledge for creating SAP applications, but however, SAP ABAP basics don't require coding expertise at a basic level. ABAP is not a difficult language to learn compared to java, C++.

Can we create an ABAP program without using Y or Z? ›

SAP has given option to create any object it has to start to Y or Z, there is no difference if you use Y or Z for the Customized ones.

Will SAP ABAP be obsolete? ›

ABAP can't die because its the easiest development tool . It can be easily seen that if you see development cost ABAP development can be completed in less time as compared to Java. And SAP is not stopping ABAP but just given an option to develop in java. However it will be good for ABAP Developers to learn java.

Does SAP ABAP have a future? ›

Will the SAP ABAP be useful in the future? If you ARE a really good ABAPer, and wonder if you have a future, then the answer is YES. ABAP will still be used, not only there are lots of custom code out there need to be maintained, but also SAP's next generation ERP - S/4HANA still based on ABAP.

Is ABAP still used? ›

At the end of the day, ABAP remains a vital and essential component of many SAP systems, and that's where ETZ Global comes in. As your partner for custom ABAP and Fiori apps, we can help you extend and enhance your SAP applications to meet any business need.

Is SAP a dying technology? ›

No its not. In fact there is a good future in areas like ECC to S4HANA migration, sap ibp, btp etc I think you can check areas like basis for s4hana etc. you may also focus on the new SAP areas which you can learn instead of coding.

References

Top Articles
Latest Posts
Article information

Author: Dan Stracke

Last Updated:

Views: 6111

Rating: 4.2 / 5 (43 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Dan Stracke

Birthday: 1992-08-25

Address: 2253 Brown Springs, East Alla, OH 38634-0309

Phone: +398735162064

Job: Investor Government Associate

Hobby: Shopping, LARPing, Scrapbooking, Surfing, Slacklining, Dance, Glassblowing

Introduction: My name is Dan Stracke, I am a homely, gleaming, glamorous, inquisitive, homely, gorgeous, light person who loves writing and wants to share my knowledge and understanding with you.