Schwierige Fehlersuche: Was Sie tun können wenn Ihr Formular nicht funktioniert
Immer wieder kommt es bei der Druckvorschau von Adobe-Forms-Formularen zu Problemen. Die Formulare lassen sich zum Beispiel nicht anzeigen und auf eine Fehlermeldung warten Nutzer vergebens. Aber wie können Sie einen Fehler ohne Fehlermeldung finden? Die Antwort liegt in der Formular-Schnittstelle. Beim Debuggen dieser Schnittstelle lässt sich in solchen Fällen oft feststellen, dass der SY-SUBRC beim Aufruf den Wert 1 (Usage Error) oder 2 (System Error) hat. Sie können den konkreten Fehler schnell finden, wenn Sie wissen, wo Sie suchen müssen. In diesem Blogbeitrag erfahren Sie, wo Sie beim Debuggen Breakpoints setzen können, um die Fehlerursache ausfindig zu machen.
Kurzanleitung für die Fehlerbehebung
So debuggen Sie den Usage Error (SY-SUBRC = 1)
Rufen Sie zuerst den Funktionsbaustein der Formularschnittstelle auf und setzen Sie in diesem Fall bei der Anweisung PERFORM %work einen Breakpoint.
Innerhalb dieser Routine werden die einzelnen Formularfelder verarbeitet. So können Sie herausfinden, welches der Felder den Fehler verursacht (und eventuell auch schon, warum).
So debuggen Sie den System Error (SY-SUBRC = 2)
Während der Usage Error leicht zu beheben ist, erfordert der System Error etwas mehr Aufwand.
Im ersten Schritt rufen Sie dazu den Funktionsbaustein der Formularschnittstelle auf. Dabei setze Sie bei ‚FPCOMP_FORM_END‘ einen Breakpoint.
Debuggen Sie anschließend in den Funktionsbaustein hinein und setzen Sie bei der Anweisung ‚PERFORM finish_form‘ einen Breakpoint.
Debuggen Sie danach in die Routine hinein und setzen Sie den nächsten Breakpoint bei der Anweisung ‚PERFORM create_output_current_form‘.
Rufen Sie innerhalb dieser Subroutine den Funktionsbaustein ‘FPCOMP_CREATE_PDX’ auf. Dieser fängt im Anschluss diverse Fehler ab.
Bereits hier können Sie in den meisten Fällen feststellen, wo der Fehler liegt. Beim Debuggen lassen sich zu dem die aktuellen SY-MSG-Werte ermitteln, die der Funktionsbaustein erzeugt hat:
Falls Sie tiefer debuggen möchten (oder müssen), können Sie innerhalb des Funktionsbausteins weitere Breakpoints setzen.
Dieser ruft zunächst eine execute-Methode des Objektes l_pdfo auf, an der Sie einen Breakpoint setzen.
Innerhalb dieser execute-Methode wird eine weitere Methode execute_internal aufgerufen, an der Sie ebenfalls einen Breakpoint setzen.
Zurück im Funktionsbaustein: dort finden Sie ziemlich am Ende eine CATCH-Anweisung. Setzen Sie dort eine Break-Anweisung. Wird diese erreicht, können Sie die aktuelle Fehlermeldung im Objekt l_fpex finden.
Wie heißt der Funktionsbaustein der Formularschnittstelle?
Starten Sie die Transaktion SFP und geben Sie den Namen ihres Formulars ein.
Drücken Sie nun die Taste F8! Es öffnet sich die Debugging-Sicht für Funktionsbausteine, in der auch der Name des Funktionsbausteins steht:
Tipp: So legen Sie einen Break-Point aus dem Debugger direkt am Funktionsbaustein an
Wenn Sie den System Error debuggen, können Sie bei Bedarf die einzelnen Breakpoints überspringen und direkt den Funktionsbaustein ‚FPCOMP_CREATE_PDX‘ debuggen. Aktivieren Sie dazu mit /hs den Debugger.
Sobald sich dieser öffnet, können Sie unter dem Reiter Breakpoints einen neuen Breakpoint für den Funktionsbaustein ‚FPCOMP_CREATE_PDX‘ anlegen.
Führen Sie mit F8 das Programm weiter aus. Der Debugger sollte automatisch an der ersten (funktionalen) Zeile des Funktionsbausteins anhalten:
Von dort können Sie den letzten Breakpoint bei der Anweisung CATCH cx_fp_runtime INTO l_fpex setzen.
Fazit: So finden Sie Fehler in der Druckvorschau
Probleme bei der Formularerzeugung mit Adobe Forms liegen oft an einem Usage- oder System Error. Mit Breakpoints können Sie die Fehler schnell identifizieren und beheben. Auch ich habe diese Erfahrung bereits gemacht: Mit den Breakpoints konnte ich herausfinden, dass das Firmenlogo auf einem Formular wegen eines Schreibfehlers in der URL nicht angezeigt wurde.
Sie haben weitere Fragen zu Adobe-Forms-Formularen? Melden Sie sich gerne persönlich bei mir, sodass ich Sie bei Ihrem Anliegen unterstützen kann.
Fehlerbehebung Ihrer Adobe Forms Formulare
Ihre Fehlermeldung konnte nicht gelöst werden? Wir unterstützen Sie in unserer kostenlosen Websession gerne bei individuellen Problemen und beantworten Ihre weiteren Fragen zu Adobe Forms.
Ein Kommentar zu "Schwierige Fehlersuche: Was Sie tun können wenn Ihr Formular nicht funktioniert"
Hallo Herr Schwemmer,
ich habe eine generelle Frage bzgl. Adobe Forms Formularen. Welche Voraussetzung benötigt ich zur Implementierung?
Mfg
Markus Lengfeld