Clemens Ritthaler
5. Februar 2020

SAP Smartforms durchsuchen: Der Funktionsbaustein hilft

Tastatur mit einem roten Werkzeug-Button, der symbolisieren soll, dass in diesem Blogbeitrag Abhilfe für ein oft auftretendes Problem in der Smartforms-Technologie aufgezeigt wird

Wer sich schon mal mit SAP Smartforms auseinandergesetzt hat, wird schnell bemerkt haben, dass keine "Durchsuchen"-Funktion im Form Builder implementiert ist. Was also tun, wenn Sie eine bestimmte Variable suchen? Alle Knoten manuell durchgehen? In diesem Beitrag erfahren Sie, wie Sie trotz der fehlenden Suchfunktion bestimmen können, wo welche Werte abgeglichen oder gesetzt werden.

Gerade historisch gewachsene Formulare führen oft zu verschachtelten Strukturen und können sogar Knoten mit ABAP-Code beinhalten. Wie ein Variablenwert zustande kommt, ist manchmal schwer zu bestimmen. Ein weiteres Szenario: Sollen zwei Mandanten zusammengeführt werden, müssen oftmals hart gesetzte Werte beispielsweise in den Conditions einzelner Knoten abgeändert werden. Mithilfe der Funktionsbausteine können Sie sich eine aufwändige Suche sparen.

Hinter jedem Smartform verbirgt sich ein Funktionsbaustein

Sobald Sie ein Smartform aktivieren, wird ein Funktionsbaustein generiert. Über diesen Funktionsbaustein können Sie später die in der Schnittstelle definierten Parameter befüllen und das Formular drucken.

E-Book Smartforms

E-Book: SmartForms

Eine plattformunabhängige, mehrsprachige und mandatenübergreifende Formulartechnologie klingt für Sie nach Utopie? Nicht, wenn Sie SAP Smartforms kennen.

Hier liegt im Grunde schon der Schlüssel zu unserem Suchproblem, denn die Struktur des Bausteins ist analog zu der des Baumes im Form Builder. Mithilfe von Kommentaren, Function-Calls und Form-Routine-Aufrufen können Sie sich später über die Namen der Knoten im Baum orientieren und so Ihr Smartform durchsuchen.

Tipp: Die “Bedeutung” eines Knotens wird nicht in den Funktionsbaustein übernommen. Einzig über das “Text”-Attribut eines Knotens lässt sich dieser auch im Baustein finden. Eine semantische Anpassung dieses Attributs ist deshalb in den meisten Fällen sinnvoller.

Smartforms durchsuchen: So gelangen Sie vom Form Builder in den Funktionsbaustein

Haben Sie Ihr Smartform im Form Builder aufgerufen (Transaktion SMARTFORMS), gelangen Sie folgendermaßen in den zugeordneten Funktionsbaustein:

Schritt 1: F8

Drücken Sie die Taste F8 (Testen), um in den Function Builder zu gelangen. Hier ist auch schon der korrekte Baustein eingetragen.

Schritt 1: Drücken Sie die Taste F8 (Testen) um in den Function Builder zu gelangen. Hier ist auch schon der korrekte Baustein eingetragen.

Mit Drücken des markierten Buttons gelangen Sie ebenso wie mit der Taste F8 zum Funktionsbaustein.

Schritt 2: F7

Drücken Sie dann F7 (Anzeigen), gelangen Sie in den Ansichtsmodus.

Drücken Sie dann F7 (Anzeigen), so gelangen Sie in den Ansichtsmodus.

Statt F7 zu drücken, können Sie auch auf den markierten Button drücken.

Schritt 3: Strg + Umsch + F5

Um auf alle Dateien, die im Zusammenhang mit dem Baustein stehen, zugreifen zu können, drücken Sie die Tastenkombination Strg + Umsch + F5 (Objektliste anzeigen).

Hier hilft die Tastenkombination Strg + Umsch + F5 (Objektliste anzeigen); so können Sie auf alle Dateien, die im Zusammenhang mit dem Baustein stehen, zugreifen.

Durch Drücken des markierten Buttons oder mit „Strg + Shift + F5″ können Sie die Objektliste des Funktionsbaustein aufrufen.

Im Baum rufen Sie nun mit einem Rechtsklick auf den Root-Knoten im Objektbaum „Anzeigen > Rahmenprogramm” auf und navigieren per Doppelklick auf den untersten INCLUDE. Hier finden Sie den generierten Code Ihres Smartforms. Wenn Sie häufiger Smartforms durchsuchen möchten, so empfiehlt es sich, direkt auf dem Root-Knoten des Funktionsbausteins nach der gewünschten Variablen/Bezeichnung zu suchen.

Codebeispiel eines aus einem SAP Smartform generierten Funktionsbaustein

Generierter Smartforms-Funktionsbaustein – beispielsweise das Fenster MAIN lässt sich gut anhand des Kommentars identifizieren

Smartforms durchsuchen: Den Funktionsbaustein richtig lesen

Im geöffneten INCLUDE können Sie nun nach beliebigen Variablen und den Namen fast aller Knoten, die sie im Smartform verwenden, suchen. Alternativ- und Kommandoknoten lassen sich leider nicht ganz so einfach finden. Bei Alternativknoten können Sie jedoch nach beteiligten Variablen oder Werten suchen, die in IF-Bedingungen auftauchen. Fenster- und Code-Knoten haben folgende Repräsentation im generierten Funktionsbaustein:

*----------------------------------------------------------------
*   FORM %WI1
*   NODE NAME_IHRES_KNOTENS
*----------------------------------------------------------------

Adressen und viele andere Knotenarten können als Parameter in Funktionsaufrufen gefunden werden:

CALL FUNCTION 'SSFCOMP_WRITE_ADDRESS'
     EXPORTING  NAME              = '%NAME_IHRES_ADRESSKNOTENS'
                ADRCONTROL        = %ADDRPAR
     EXCEPTIONS NON_MAIN_OVERFLOW = 1
                OTHERS            = 2.

Textknoten sind in Form-Routine-Aufrufen zu finden:

PERFORM %WRITE_TEXT USING '%NAME_IHRES_TEXTKNOTENS' SPACE SPACE 'P' SPACE %INPUTFIELDS %TEXTAREA.

Wenn Sie nun im Code-Umfeld der gesuchten Variable schauen, werden Sie sehr schnell erkennen, wo Ihr Knoten einzuordnen ist. Die wesentliche Erkenntnis ist hier, dass der Code regelmäßig sequentiell wie ein vollständig ausgeklappter Form-Builder-Baum aufgebaut ist. Wenn Sie dieselbe Fenster-Instanz auf mehreren Seiten verwenden, werden die Fenster nicht mehrmals im Code abgebildet – eine Einordnung über den Ursprung ist dennoch schnell möglich. Et voilà: So können Sie Ihr Smartform durchsuchen.

Fazit

Wenn die Programmoberflächen in SAP manche Funktionen nicht bieten, lässt sich behelfsmäßig, wie hier bei der Smartforms-Suche, einiges mit ABAP bewerkstelligen. Mit Erfahrung können Smartforms-Formulare so zeitoptimiert angepasst oder erweitert werden. Planen Sie jedoch, Ihr Formular auch in den nächsten Jahren noch weiterzunutzen, ist ein Umstieg auf Adobe Forms oft wirtschaftlicher. Mit der neuesten Formulartechnologie kommen Sie neben der wesentlich besseren Wartbarkeit auch in den Genuss vieler weiterer Vorteile und Features. ABAP-Code in verschachtelten Bäumen der Formulars werden Sie hier nicht finden; eine klare Trennung von Layout und Datenbeschaffung ist gegeben. Bei der Verwendung von Adobe Forms werden Sie mit der hier beschriebene Problematik also nicht konfrontiert.

Haben Sie Fragen zum Funktionsbaustein, Smartforms oder Adobe Forms? Hinterlassen Sie mir gerne einen Kommentar oder schreiben Sie uns per E-Mail. Ich freue mich immer, wenn ich weiterhelfen kann.



Das könnte Sie auch interessieren

Gerade an einem Objekt gearbeitet und dieses soll nun auf das Test- oder Produktivsystem transportiert werden. Aber halt. Es befindet sich in keinem Transportauftrag. Zur Sicherheit noch einmal in die […]

weiterlesen

FormCalc oder JavaScript? FormCalc ist neben JavaScript die Sprache für die Gestaltung von PDF-Formularen. In unserem kostenlosen E-Book erfahren Sie alles, was Sie zu dieser Skriptsprache wissen müssen.

weiterlesen

SAP HCM 2025: An der Cloud führt kein Weg vorbei – das ist das Thema am Donnerstag, 29.06.2017 in Stuttgart. Die Teilnehmer erhalten Informationen zu aktuellen HR-Themen wie z.B. die […]

weiterlesen

Schreiben Sie einen Kommentar

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





Kontaktieren Sie uns!
Julia Buecker
Julia Bücker Kundenservice