ich habe gerade einen User-Exit erweitert. Dabei kann ich leider nicht debuggen, auch wenn ich entweder nen Breakpoint setze oder programmiertechnisch hinterlege. Hat jemand Ahnung warum und kann mir vielleicht nen Tip geben?
Der Exit ist definitiv aktiv. Ganz sicher. Ich füge einen neuen Eintrag in eine Z-Tabelle ein und das macht er ja auch. Sprich, er springt auf jeden Fall den Exit an, aber ich würde halt gern debuggen!
Dann verläuft die Verbuchung vielleicht im Update-Task? Bau dir mal eine Endlosschleife in den Userexit und geh dann über die SM51 in die Prozessübersicht. Such dir den Prozess mit deiner Endlosschleife und gehe über Programm->PRogramm->Debugging.
Was macht der User-Exit denn genau, kannst Du das Coding hier mal listen?
Prinzipiell solltest Du aber im Breakpoint landen. Du kannst ja mal folgendes tun.
if sy-uname = 'DEINUSERNAME'.
BREAK-POINT.
ENDIF:
einfügen. Falls Du irgendwie in nen Background- oder Verbuchungstask rutschst, so sieht Du hinterher im SYSLOG (Transaktion SM21) einen Eintrag "Breakpoint reached" bzw. "Breakpoint erreicht".
Ansonsten stoppst Du dann definitiv in dem Coding.
Viele Grüße,
Peter
Linux is Userfriendly, its only just selective who its friends are...
@st22: was sollte dann danach passieren? ich hab mal einen wait eingebaut und bin wie du das beschrieben hast in die prozessübersicht und programm debuggen. da tut sich aber nichts...
@pepedoc: genau diese anweisung hab ich drin im coding.
if sy-uname = 'MEINUSERNAME'.
BREAK-POINT.
Endif.
in der sm21 erhalte ich folgende Meldung:
"Breaktpoint erreicht"
Jedoch in der Detailsicht der Hinweis kommt:
"Ein Break-Point-Befehl in einem ABAP/4-Programm wurde in einem Systemzustand durchlaufen, in dem kein Debugging mehr möglich ist. (z.B. Verbuchung, Batch, Konvertierungsexit)."
Ich weiss momentan nicht so recht weiter... Habt ihr viell. ne Ahnung?
die Meldung in der SM21 deutet darauf hin, dass der EXIT im Verbucher läuft. Dazu gleich zu Anfang der Transaktion Debugging einschalten und dann im
Debugger bei
Einstellungen --> Verbuchungsdebugging
einschalten. Das Ganze sollte dann beim ersten Verbucherstatement anhalten.
ich komm zwar dann ins debugging, jedoch nicht an die stelle. die übersprint er trotzdem. ausser ich sag z.b. breakpoint bei anweisung, dann bleibt er dort stehen, sonst nicht. diesen vorgang müsste ich dann bei jedem aufruf machen. da werd ich ja nicht mehr glücklich...
Warst Du auch im Verbuchungsdebugging? Das kommt "irgendwann" in der Regel nach dem Sichern. Aufpassen: In der Leiste ganz unten wird nach Einstellungen --> Verbuchungsdebugging angezeigt ob es an oder aus ist. Am besten Verbuchungsdebugging nach dem Sichern (wenn das zutrifft) einschalten. Dann wird ja angehalten und dann mit <F8> weitermachen. Dann müßtest Du im Verbucher sein.
also bevor ich den "Sichern-Button" drücke, aktiviere ich das Debugging und sag dann Menü Einstellungen Verbuchungsdebugging und sag dann F8, dann sollte er ja bei meinem Breakpoint stehen bleiben. Macht er aber leider nicht. Verbucht sofort.
Ist ein User-exit gemäß Transaktionen CMOD und SMOD? Wenn ja, weiß ich ier auch nicht mehr weiter. Wie heißt dann der EXIT?
Nur als Hinweis: Es gibt auch Feld-Exits und die kann man nicht debuggen, wenn ich mich richtig erinnere.
Wenn der USER-EXIT in einem Makro untergebracht ist (man weiß ja bei SAP nie ... ich hatte das mit AUTHORITY-CHECK erlebt) hat man auch schlechte Karten.