Show TOC

Bearbeitung von FeldernLocate this document in the navigation structure

Verwendung

Feldwerte zur Laufzeit anzeigen

Im Debugger können Sie den Inhalt von Programmfeldern im Anzeigemodus Felder anzeigen. Sie können bis zu acht Felder in die Anzeige aufnehmen. Dieser Anzeigemodus entspricht der Standardanzeige des Debuggers. Unterstützt werden folgende Datenobjekte:

  • Einzelfeld

  • Strukturierte Felder

  • Strings

  • Internen Tabellen

  • Objekte

Bei komplexeren Datenobjekten wie zum Beispiel Referenzen oder Tabellen erfolgt eine Inhaltsanzeige nicht unmittelbar im Standardanzeigemodus, vielmehr ist in der Rubrik Feldnamen ein Doppelklick mit der linken Maustaste nötig, um in die entsprechende Attributanzeige zu gelangen.

Vorgehensweise

Um den Inhalt eines Feldes anzuzeigen, tragen Sie bitte den Namen des gewünschten Feldes unter Feldnamen ein und drücken die Taste <ENTER>. Alternativ genügt ein Doppelklick auf den Namen eines Feldes im durchlaufenen Programmtext, um dessen Inhalt anzuzeigen.

Beispiel:

Weitere Felder anzeigen

Da immer nur vier Felder angezeigt werden, können Sie mit den Blättertasten zu den aktuell nicht angezeigten Feldern gelangen.

Systemfelder anzeigen

In diesem Anzeigemodus können Sie auch den Inhalt von beliebigen Systemfeldern anzeigen. Die drei wichtigsten Systemfelder SY-SUBRC, SY-TABIX und SY-DBCNT werden immer angezeigt.

Felder externer Programme anzeigen

Sie können auch den Inhalt von Feldern externer Programme anzeigen, sofern Sie den Namen des externen Programms kennen und dieses bereits durchlaufen wurde. Geben Sie dazu in der Feldanzeige den Programmnamen in Klammern vor dem Feldnamen an, also: (programmname)feldname zum Beispiel (SAPMSCLM)ACTION, wobei auch Kleinschreibung möglich ist.

Sonderformen der Feldanzeige

  • Ähnlich wie im Programmquelltext können zeichenartige Felder mit Offset- und Längenangabe versehen werden. Wird zum Beispiel in der Rubrik Feldnamen sy-datum+4 (2) eingegeben, dann wird unter Feldinhalte genau der aktuelle Monat des Systemdatums angezeigt.

  • Wird nach dem Namen einer internen Tabellen eine Ganzzahl in eckigen Klammern angegeben, dann wird der Inhalt derjenigen Zeile ausgegeben, welcher der Ganzzahl entspricht. Die Angabe itab[4] zeigt zum Beispiel die vierte Zeile der internen Tabelle itab an. Überschreitet die Ganzzahl die Anzahl der aktuellen Tabellenzeilen, dann wird die Tabelle als unbekannt gekennzeichnet.

  • Bei Datenreferenzen wird der Inhalt des referenzierten Datenobjektes angezeigt, wenn ein Pfeil und Stern an den Namen der Referenz angehängt werden. Die Schreibweise r->* stellt den Inhalt desjenigen Feldes zur Verfügung, das von der Datenreferenz r gerade referenziert wird.

  • Wird im Standardanzeigemodus unter Feldinhalte ein Doppelklick auf eine Daten- oder Objektreferenz abgesetzt, dann werden bei Datenreferenzen im Folgebild alle Attribute und Feldinhalte des referenzierten Datenobjektes aufgeblendet. Bei Objektreferenzen werden die Attribute und Werte der aktuellen Instanz aller referenzierten Klassen und Interfaces ausgegeben. Zum Beispiel liefert die Angabe 7<cl> alle Werte der siebten Instanz aus der Klasse cl.

  • Die Header von Strings, internen Tabellen sowie Daten- und Objektreferenzen werden durch Voranstellen eines Stern angezeigt. Beispielsweise wird der Header der internen Tabelle itab in hexadezimaler Form angezeigt, wenn in der Rubrik Feldnamen *itab eingegeben wird. Bei Tabellen ohne Header enthält der Feldinhalt nur Nullen.

  • Durch Voranstellen eines Ampersand wird die jeweilige Referenz von Strings, internen Tabellen sowie Daten- oder Objektreferenzen wiederum in hexadezimaler Form dargestellt. Die Angabe &str liefert zum Beispiel die Referenz auf den String mit Namen str.

Anzeigeformat ändern

Die Feldinhalte können in aufbereiteter Form oder im Hexadezimalformat angezeigt werden.

Durch Anklicken dieser Taste aktivieren Sie das Hexadezimalformat für die Werteanzeige des Feldes.

Um den Feldinhalt wieder im ursprünglichen Ausgabeformat anzuzeigen, klicken Sie auf diese Taste.

Löschen aller Feldnamen

Mit der Auswahl dieser Taste werden sämtliche Feldnamen aus der Felder-Anzeige gelöscht.

Feldwerte zur Laufzeit ändern

Sie können den Inhalt bestimmter Felder zur Laufzeit ändern, um den Programmablauf zu beeinflussen. Wird bei der Fehleranalyse zum Beispiel einen falscher Feldwert entdeckt, dann können Sie diesen zur Laufzeit durch einen anderen Wert ersetzen und so feststellen, ob das Programm nun korrekt abläuft.

Sie können die Werte folgender Datenobjekte Ihres Programmes ändern, wobei Formatfehler durch eine Systemmeldung angezeigt werden:

  • Einzelfelder

  • Strukturierte Felder

  • Strings

  • Felder von internen Tabellen

  • Felder von Klassen und Interfaces

Vorgehensweise

So gehen Sie vor, um den Inhalt eines Einzelfeldes zu ersetzen:

Hinweis

Bei bestimmten Datenobjekten wie Strukturen oder internen Tabellen müssen Sie erst einen Doppelklick auf den entsprechenden Feldnamen machen, um in das Bildsegment der Attribute zu gelangen. Hier ist nochmals ein Doppelklick auf die einzelnen Felder erforderlich, um den Änderungsmodus aufzurufen.

Ergebnis

Der Debugger schreibt den neuen Wert in das Programmfeld und das System zeichnet die Änderung im Systemprotokoll auf. Wenn Sie den Bleistift nicht betätigen , werden die eingegebenen Werte nicht übernommen.

Hinweis

Der Debugger akzeptiert die Werte genau so, wie Sie diese eingeben. Daher müssen Sie stets auf das korrekte Format achten, insbesondere Groß- oder Kleinschreibung bei zeichenartigen Feldern oder linksbündige Angabe bei hexadezimalen Zahlen.