Patrick Steffens
 - 19. Februar 2020

Was Sie tun können, wenn Adobe Forms SAP Steuerzeichen in Langtexten ignoriert

SAP Steuerzeichen in Langtexten

Sie haben kürzlich von SAPscript auf Adobe Forms gewechselt oder befinden sich gerade im Projekt? Häufig tritt beim Umstieg auf Adobe-Formulare die Herausforderung auf, dass Langtexte nicht richtig formatiert bzw. angezeigt werden. Wenn Sie diese Schritt-für-Schritt-Anleitung gelesen haben, wissen Sie, wie Sie mit wenig Aufwand flexible Langtexte andrucken können. 

Im Rahmen einer Formularumstellung wollte ich neulich einen Material-Zusatztext auf Positionsebene in einem Adobe-Formular andrucken. Dabei stellte ich fest, dass die Formatierungen, wie sie im zugrundeliegenden SO10-Text angezeigt werden (z. B. unterstrichener Text), sowie die eingestellte Schriftart nicht übernommen wurden. Auf dem Formular tauchte der Text nur in Reinform auf. Da wir in Projekten häufiger auf diese Art von Problemen stoßen, möchte ich die Lösung gerne mit Ihnen teilen, um Ihnen die Arbeit mit Adobe-Formularen zu erleichtern.

Szenario

Auf Positionsebene werden Zusatztexte zum Material angedruckt. Diese werden im ABAP-Coding aus mehreren Quellen zusammengesucht und zusammengeführt – darunter SO10- und Kopftexte. Da dieser Text somit sehr dynamisch ist und Sie ihn nicht z. B. über Tabellen Zeile für Zeile manuell aufs Formular bringen möchten, können Sie eine sehr praktische Funktion von Adobe Forms nutzen: Textknoten im Kontext.

Dabei gibt es drei Möglichkeiten, wie Sie Textknoten erstellen können. Alle Vorgehen funktionieren im Grunde gleich: Die Knoten bekommen eine Textquelle als Input und nutzen diese, um einen mehrzeiligen Langtext zu erstellen, der dann an ein Feld im Layout gebunden werden kann. Unterschiedlich ist lediglich die Quelle, aus welcher Text eingelesen wird:

Langtext Typen im Kontext

  • „Textbaustein” können Sie nutzen, um Smart-Forms-Textbausteine einzulesen
  • „Include-Text” können Sie nutzen, um SO10- und Kopftexte einzulesen
  • „Dynamischer Text” können Sie nutzen, um Texte zu drucken, die händisch im Coding in eine Tabelle geschrieben wurden

Wenn Sie wie oben beschrieben den Text selbst zusammengebaut haben, nutzen Sie zur Problemlösung hier die Textart „dynamischer Text”.

Vorbereitung und Symptom

Speichern Sie den dynamischen Text in der Tabelle LINES der globalen Struktur GT_POS_TEXTS. Hier ein Ausschnitt aus dessen Inhalt:

so10-Text mit Steuerzeichen

Im Text können Sie erkennen, dass dort das Steuerzeichen <U>…</> genutzt wird. Dies soll bewirken, dass das Wort „Klassifikationsgesellschaft” unterstrichen dargestellt wird.

Im Kontext legen Sie nun den Textknoten ITEM_TEXT an und verknüpfen ihn mit GT_POS_TEXTS-LINES:

erstellen von dynamischen texten

Anschließend legen Sie ein Textfeld im Layout an und binden ihn an den Knoten ITEM_TEXT:

Dynamische Texte im Layout

Der Adobe Document Service (kurz: ADS) ist dafür zuständig, das Adobe-Formular zu generieren. Dieser verarbeitet ebenfalls die Textknoten im Kontext und erstellt daraus Langtexte im Formular. Nun könnte man erwarten, dass Sie alle Vorkehrungen getroffen haben, damit der ADS den Text auf dem Formular nun so formatiert wie er in den Daten ankommt. Leider sieht das Ergebnis etwas anders aus:

Ups…

Die Ursache

Offensichtlich fehlt dem ADS noch etwas, um die Steuerzeichen richtig zu interpretieren. Aktuell werden sie ja im Ausdruck nur ignoriert (siehe oben). Auch die Schriftart passt nicht zum Stil des übergebenen Langtextes. Moment mal… „Stil”? Wie soll der ADS denn wissen, in welcher Schriftart der Text im SAP konfiguriert ist? Anscheinend nimmt er stattdessen den Default, nämlich die Schrift-Einstellungen des Textfeldes.

Wenn Sie den Kontextknoten genauer betrachten, fällt Ihnen auf, dass es noch ein Feld mit dem Namen „Stil” gibt. Dieses ist aktuell noch nicht gefüllt. Das führt wiederum dazu, dass der ADS nicht weiß, wie er den Text zu formatieren hat. Er ignoriert daher auch die Steuerzeichen, da er sie zwar als solche erkennt, aber ebenfalls nicht weiß, wie die Ausgabe aussehen soll.

Die Lösung

Die denkbar einfache Lösung ist, einen Stil (hier: ZSD_IAF) im Textknoten zu hinterlegen:

Textstil hinzugefügt

Hierzu können Sie entweder einen bestehenden Stil nehmen oder einen neuen erstellen, beispielsweise über die Transaktion SMARTFORMS.

Das Resultat kann sich dann wieder blicken lassen:

Fazit

Mit dem Feature „Textknoten“ in Adobe Forms können Sie mit wenig Aufwand flexible Langtexte andrucken. Bei manchen Textknotentypen müssen Sie jedoch gewisse Regeln beachten, damit sie sauber funktionieren. Benutzen Sie den Typ „dynamischer Text”, müssen Sie neben der Datenquelle auch einen Stil angeben – zumindest, wenn der Stil aus dem Langtext übernommen werden soll. Ist kein Stil angegeben, wird die Formatierung aus dem Textfeld übernommen, in dem der Text auftauchen soll.

Dieses Phänomen ist erfahrungsgemäß nur eines von vielen, auf das Sie beim Umzug auf Adobe Forms stoßen können. Sollten Sie vor einer ähnlichen Herausforderung stehen, zögern Sie nicht, uns zu kontaktieren. Wir haben für unsere Kunden Hunderte Formulare auf Adobe Forms umgestellt und können daher auf einen großen Erfahrungsschatz zurückgreifen. Eine Auswahl unserer Projekte können Sie in unseren Referenzen finden. Außerdem finden Sie in unserem Blog eitere Lösungen zu typischen Problemen mit Adobe Forms.

Patrick Steffens

Patrick Steffens

Mein Name ist Patrick Steffens und ich bin technikbegeisterter SAP-Formularexperte bei der Mindsquare. Ich bin spezialisiert auf Formularthemen wie ZUGFeRD und der Entwicklung in SAPScript, Smartforms und Adobe Forms sowie der Migration alter auf neue Technologien. Durch die ABAP-Zertifizierung TAW12 und der ERP Zertifizierung TERP10 bringe ich darüber hinaus ein breites Wissen über ABAP, ABAP OO und verschiedenen SAP Komponenten wie SD und MM mit, das ich Ihnen gerne zur Verfügung stelle.

Sie haben Fragen? Kontaktieren Sie mich!



Das könnte Sie auch interessieren

Adobe Forms ist die aktuelle Formulartechnologie der SAP. Hierbei findet eine strikte Trennung zwischen Datenbeschaffung und Formulardesign statt. Adobe Forms kann nicht nur als reines Druckformular verwendet werden, sondern besitzt auch interaktive Komponenten.

weiterlesen

In diesem Beitrag zeige ich Ihnen wie einfach es ist ein PDF-Formular im Customizing für die Zahlungsavis zu hinterlegen. Im Folgenden möchte ich Ihnen kurz erläutern, wo Sie die entsprechende Einstellung vornehmen und welche Vorlage Sie diesmal verwenden können, um […]

weiterlesen

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 […]

weiterlesen

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