Alexander Schwemmer
 - 16. September 2020

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.

Abb. 1 - Aufruf von PERFORM %WORK in der Formularschnittstelle

Abb. 1 – Aufruf von PERFORM %WORK in der Formularschnittstelle

Innerhalb dieser Routine werden die einzelnen Formularfelder verarbeitet. So können Sie herausfinden, welches der Felder den Fehler verursacht (und eventuell auch schon, warum).

Abb. 2 - Verarbeitung der Formularfelder in PERFORM %WORK

Abb. 2 – Verarbeitung der Formularfelder in PERFORM %WORK

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.

Abb. 3 - Aufruf von 'FPCOMP_FORM_END' in der Formularschnittstelle

Abb. 3 – Aufruf von ‘FPCOMP_FORM_END’ in der Formularschnittstelle

Debuggen Sie anschließend in den Funktionsbaustein hinein und setzen Sie bei der Anweisung ‚PERFORM finish_form‘ einen Breakpoint.

Abb. 4 - Breakpoint bei PERFORM finish_form setzen

Abb. 4 – Breakpoint bei PERFORM finish_form setzen

Debuggen Sie danach in die Routine hinein und setzen Sie den nächsten Breakpoint bei der Anweisung ‚PERFORM create_output_current_form‘.

Abb. 5 - Breakpoint bei PERFORM create_output_current_form setzen

Abb. 5 – Breakpoint bei PERFORM create_output_current_form setzen

Rufen Sie innerhalb dieser Subroutine den Funktionsbaustein ‘FPCOMP_CREATE_PDX’ auf. Dieser fängt im Anschluss diverse Fehler ab.

Abb. 6 - CATCH-Block hinter 'FPCOMP_CREATE_PDX'

Abb. 6 – CATCH-Block hinter ‘FPCOMP_CREATE_PDX’

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:

Abb. 7 - Aufruf Funktionsbaustein 'FPCOMP_CREATE_PDX'

Abb. 7 – Aufruf Funktionsbaustein ‘FPCOMP_CREATE_PDX’

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.

Abb. 8 - Breakpoint bei Aufruf der execute-Methode setzen

Abb. 8 – Breakpoint bei Aufruf der execute-Methode setzen

Innerhalb dieser execute-Methode wird eine weitere Methode execute_internal aufgerufen, an der Sie ebenfalls einen Breakpoint setzen.

Abb. 9 - Breakpoint bei Aufruf der execute_internal-Methode setzen

Abb. 9 – Breakpoint bei Aufruf der execute_internal-Methode 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.

Abb. 10 - Breakpoint am Ende von 'FPCOMP_CREATE_PDX'

Abb. 10 – Breakpoint am Ende von ‘FPCOMP_CREATE_PDX’

Wie heißt der Funktionsbaustein der Formularschnittstelle?

Starten Sie die Transaktion SFP und geben Sie den Namen ihres Formulars ein.

Abb. 11 - Einstiegsmaske des Formbuilder (SFP)

Abb. 11 – Einstiegsmaske des Formbuilder (SFP)

Drücken Sie nun die Taste F8! Es öffnet sich die Debugging-Sicht für Funktionsbausteine, in der auch der Name des Funktionsbausteins steht:

Abb. 12 - Eingabebemaske des Debuggers der SE37 mit dem Namen des Funktionsbausteins

Abb. 12 – Eingabebemaske des Debuggers der SE37 mit dem Namen des Funktionsbausteins

Unser Guide zum Thema: Einführung von Adobe Forms Was ist vorher zu tun?

Einführung von Adobe Forms: Was ist vorher zu tun?

Eine gute Vorbereitung ist Alles, das gilt auch für die Einführung von Adobe Forms. Was dabei zu beachten ist, erfahren Sie in unserem Guide!

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.

Abb. 13 - Breakpoint im Debugger anlegen

Abb. 13 – Breakpoint im Debugger anlegen

Abb. 14 - Hinzugefügter und aktiver Breakpoint im Debugger

Abb. 14 – Hinzugefügter und aktiver Breakpoint im Debugger

Führen Sie mit F8 das Programm weiter aus. Der Debugger sollte automatisch an der ersten (funktionalen) Zeile des Funktionsbausteins anhalten:

Abb. 15 - Debugger hält an erster Zeile des Funktionsbausteins an

Abb. 15 – Debugger hält an erster Zeile des Funktionsbausteins an

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.



Das könnte Sie auch interessieren

"Ja das mit den Formularen, das läuft", oder "Formulare machen wir dann schon". Kennen Sie das nicht auch?Oft wird das Thema Formulare "nebenbei" abgehandelt.Es gibt Mittel und Wege, Ihre Formulare im SAP kundenfreundlicher zu gestalten - und damit die Akzeptanz […]

weiterlesen

In den vergangenen 2 Beiträgen zum Thema SAP S/4HANA Output Management konnten Sie bereits einiges über die Funktionsweise und die technischen Eigenschaften des neuen SAP Frameworks erfahren. Sollten Sie die Beiträge verpasst haben, schauen Sie gern mal rein:

weiterlesen

Besonders in internationalen Unternehmen ist es erforderlich, dass das SAP-System mehrsprachig gepflegt ist. Während dies für Kurztexte rechteinfach möglich ist, kann sich die Übersetzung von Langtexten schwieriger gestalten. In diesem How-To möchte ich Ihnen zeigen, wie Sie die Übersetzung von […]

weiterlesen

Ein Kommentar zu "Schwierige Fehlersuche: Was Sie tun können wenn Ihr Formular nicht funktioniert"

Markus Lengfeld - 25. September 2020 | 10:01

Hallo Herr Schwemmer,

ich habe eine generelle Frage bzgl. Adobe Forms Formularen. Welche Voraussetzung benötigt ich zur Implementierung?

Mfg
Markus Lengfeld

Antworten

Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Angebot anfordern
Preisliste herunterladen
Expert Session
Support