Memory-ID und Parameter-ID im Debugger analysieren

Mit ABAP ist es möglich, Memory-ID und Parameter-ID zu setzen und auszulesen. Für die Analyse von Programmen ist es manchmal nützlich zu wissen, ob diese Werte auch korrekt gesetzt und verarbeitet werden. Deshalb gibt es eine Möglichkeit im Debugger, die Memory ID oder Parameter-ID zu analysieren.

Memory-ID im Debugger analysieren

Im neuen Debugger kann man die Memory-IDs untersuchen. Standardmäßig ist diese Ansicht bzw. Funktion nicht aktiviert. Um diese Ansicht einzublenden, gibt es folgende zwei Möglichkeiten:

  1. Verwendetes Werkzeug wechseln
  2. Memory-ID im alten Debugger untersuchen

Verwendetes Werkzeug wechseln

Im neuen Debugger kann man die Memory-ID analysieren, indem man das Spezialwerkzeug „Systembereiche (nur intern)“ verwendet. Den neuen Debugger kann man in den Einstellungen der SAP GUI aktivieren. Es wird generell empfohlen, den neuen Debugger zu verwenden.

Sobald man das gewünschte Programm im Debugger geöffnet hat, kann man ein bereits geöffnetes Werkzeug wechseln. Beispielsweise kann man den „ABAP und Dynpro Stack“ wechseln. Hierfür klickt man im Fenster auf der rechten Seite auf den Button „Ersetze Werkzeug“.

Sobald man das gewünschte Programm im Debugger geöffnet hat, kann man ein bereits geöffnetes Werkzeug wechseln. Beispielsweise kann man den "ABAP und Dynpro Stack" wechseln. Hierfür klickt man im Fenster auf der rechten Seite auf den Button "Ersetze Werkzeug".

Sobald man den Button „Ersetze Werkzeug“ ausgewählt hat, öffnet sich ein Fenster, das die Auswahl an möglichen Werkzeugen anzeigt. Hierbei wählt man unter „Werkzeuge > Spezialwerkzeuge“ das Werkzeug „Systembereiche (nur intern)“ aus.

Sobald man den Button "Ersetze Werkzeug" ausgewählt hat, öffnet sich ein Fenster, das die Auswahl an möglichen Werkzeugen anzeigt. Hierbei wählt man unter "Werkzeuge > Spezialwerkzeuge" das Werkzeug "Systembereiche (nur intern)" aus.

Daraufhin erscheint an der Stellte des ausgewählten Werkzeugs das Werkzeug für die Systembereiche. Für die Analyse der Memory-ID klickt man doppelt auf die Zeile „Memories EXPORT/IMPORT memories“.

Darauf erscheint an der Stellte des ausgewählten Werkzeugs das Werkzeug für die Systembereiche. Für die Analyse der Memory ID klickt man doppelt auf die Zeile "Memories EXPORT/IMPORT memories".

Anschließend sieht man die einzelnen Memory-Objekte. Nun gilt es, das zu untersuchende Objekt zu finden. In diesem Beispiel lautet das Memory-Objekt „ERP_UP_MEMORY_OBJECT“. Es kann dabei sehr gut sein, dass dieses Objekt nicht sofort sichtbar ist. Deshalb kann man mit dem Button „Eintrag eine Seite nach unten“ in der Ansicht „scrollen“ bzw. die anderen Objekte anzeigen lassen. Dieser Button besteht aus den zwei schwarzen Pfeilen. Sobald man doppelt auf das gewünschte Memory-Objekt klickt, wird der Wert in hexadezimaler Darstellung angezeigt.

Daraufhin sieht man die einzelnen Memory-Objekte. Nun gilt es das zu untersuchende Objekt zu finden. In diesem Beispiel lautet das Memory-Objekt "ERP_UP_MEMORY_OBJECT". Es kann dabei sehr gut sein, dass dieses Objekt nicht sofort sichtbar ist. Deshalb kann man mit dem Button "Eintrag eine Seite nach unten" in der Ansicht "scrollen" bzw. die anderen Objekte anzeigen lassen. Dieser Button besteht aus den zwei schwarzen Pfeilen. Sobald man doppelt auf das gewünschte Memory-Objekt klickt, wird der Wert in hexadezimaler Darstellung angezeigt.

Memory-ID im alten Debugger untersuchen

Eine andere Möglichkeit, die Memory-ID im Debugger zu analysieren, ist die Benutzung des alten Debuggers (klassischer Debugger). Entweder man öffnet die maximale Anzahl an Fenster und startet dann den Debugger oder man wählt „Wechsel zum klassischen Debugger“ im Menübar unter dem Punkt „Debugging“. Wenn der Debugger startet, aber die maximale Anzahl an Fenstern bereits ausgeschöpft ist, startet der Debugger automatisch im klassischen Debugger.

Im klassischen Debugger kann man unter dem Menüpunkt „Springen > Systembereiche > ABAP Memory“ die Memory-Objekte anzeigen lassen.

Im klassischen Debugger kann man unter dem Menüpunkt "Springen > Systembereiche > ABAP Memory" die Memory-Objekte anzeigen lassen.

Sobald man diese Funktion ausgewählt hat, werden die Memory-Objekte angezeigt. Durch Doppelklick auf das gewünschte Objekt wird ebenfalls der Wert in hexadezimaler Darstellung angezeigt.

Sobald man diese Funktion ausgewählt hat, werden die Memory-Objekte angezeigt. Durch Doppelklick auf das gewünschte Objekt wird ebenfalls der Wert in hexadezimaler Darstellung angezeigt.

Parameter-ID im Debugger analysieren

Parameter-IDs werden nahezu gleich wie Memory-Objekte im Debugger analysiert. Anstatt im Werkzeug „Systembereiche“ die Speicherverwaltung (MEMORIES) zu öffnen, öffnet man den „SAP memory (SPA-GPA)“-Bereich. Hierfür klickt man doppelt auf „SNEM“ im Systembereich.

PARAMETER Werte werden nahezu gleich wie Memory-Objekte im Debugger analysiert. Anstatt im Werkzeug "Systembereiche" die Speicherverwaltung (MEMORIES) zu öffnen, öffnet man den "SAP memory (SPA-GPA)"-Bereich. Hierfür klickt man doppelt auf "SNEM" im Systembereich.

Anschließend kann man seine gesetzten Parameter analysieren.

Memory-ID und Parameter-ID in ABAP setzen

Nachdem nun gezeigt wurde wie man Memory-ID und Parameter-ID im Debugger untersucht, möchte ich kurz zeigen wie man diese Werte denn in ABAP setzt.

In ABAP gibt es zwei einfache Möglichkeiten, Memory IDs oder PARAMETER Werte zu setzen.

*----------------------------------------------------------------------
* Memory-ID setzen
*----------------------------------------------------------------------
EXPORT 'ERP UP' TO MEMORY ID 'ERP_UP_MEMORY_OBJECT'.

Unter ABAP OO wird dieser Ausdruck nicht mehr unterstützt. Stattdessen solltem man direkt die Zuordnung der Variable angeben. Stattdessen sollt man also Folgendes verwenden. Dabei sollte man var_1 mit der Variable und name_1 mit dem gewünschten Parameternamen austauschen.

*----------------------------------------------------------------------
* Memory-ID setzen (ABAP OO)
*----------------------------------------------------------------------
EXPORT name_1 = var_1 TO MEMORY ID 'ERP_UP_MEMORY_OBJECT'.
*----------------------------------------------------------------------
* PARAMETER Wert 'ERP UP' setzen
*----------------------------------------------------------------------
SET PARAMETER ID 'ERP_UP_ID' FIELD 'ERP UP'.

Mit dem ABAP-Befehl IMPORT kann man die Memory-ID an einer späteren Stelle lesen.

*----------------------------------------------------------------------
* Memory-ID lesen
*----------------------------------------------------------------------
IMPORT lv_value FROM MEMORY ID 'ERP_UP_MEMORY_OBJECT'.

Im oberen Beispiel muss man natürlich die Variable lv_value entsprechend deklarieren und typisieren.

Parameter-ID von anderen SAP-Benutzern analysieren

Manchmal ist es sehr nützlich zu wissen, welche Parameter-ID andere SAP-Benutzer verwenden. Hierfür ruft man im Data Browser (Transaktion SE16N) einfach die Tabelle USR05 auf und erhält als Ausgabe eine Liste mit allen Parameter-IDs von allen SAP-Benutzern.

Wenn man einen SAP-Benutzer genau kennt, kann man explizit danach filtern.

Natürlich kann man die Person auch direkt fragen, um die gesetzten Parameter-IDs zu ermitteln.

Übersicht über alle Parameter-IDs

Die Tabelle TPARA enthält alle möglichen Parameter-IDs, die gesetzt werden können. Über den Data Browser (Transaktion SE16N) kann man sich so die Liste alle Parameter-IDs ausgeben lassen. Das ist sehr nützlich, wenn man nach möglichen Parameter-IDs recherchieren möchte.

Über den Autor

Andreas Geiger

Mein Name ist Andreas Geiger und ich bin ein erfahrener Senior SAP Berater. Mit mehr als 10 Jahren Berufserfahrung habe ich mehrere SAP-Projekte erfolgreich abgeschlossen und umfangreiche Kenntnisse in verschiedenen Bereichen wie SAP FI, SAP MM und ABAP erworben. Nun möchte ich mein Wissen mit Dir teilen, um Dir einen Mehrwert zu bieten und Dich bei Deiner täglichen Arbeit mit dem SAP-System zu unterstützen.

Mehr zu ERP UP

ERP UP unterstützen

Wenn Du mit ERP UP zufrieden bist, kannst Du mich gerne unterstützen. Dabei gibt es unzählige Möglichkeiten, wie Du mich einfach und schnell unterstützen kannst. Wie Du genau ERP UP unterstützen kannst, erfährst Du hier. Vielen Dank.

Schreibe einen Kommentar