Robert Pagels
5. April 2018

HowTo: Papierformat von Adobe Formularen aussteuern

EU-DSGVO

Viele SAP-Formulare (wie zum Beispiel Rechnungen, Auftragsbestätigungen, etc.) werden nicht nur in Deutschland, sondern auch in anderen Ländern wie den USA ausgegeben, dabei ergibt sich häufig die Anforderung, dass der Ausdruck in einem anderen Papierformat von Adobe Formularen als A4 erfolgen soll. Adobe Formulare bieten bereits nativ die Möglichkeit das Papierformat für Masterseiten im LiveCycle Designer einzustellen.

Eine Möglichkeit bei Adobe Forms eine Anfangsseite mitzugeben gibt es allerdings nicht. Im Gegensatz zu den Vorgängertechnologien SAP Script und Smart Forms werden in diesem Fall häufig zwei Formulare angelegt, auch wenn deren Layout und Logik nahezu identisch sind. Die Verwendung von zwei oder mehr Formularen bedeutet dabei aber auch immer einen Mehraufwand in der Erstellung und Wartung.

Im Folgenden möchte ich Ihnen eine Methode vorstellen, die mit Hilfe von Scripting eine Aussteuerung des Seitenformats ermöglicht. Als Beispiel wird in diesem Beitrag die zusätzliche Ausgabe im Format Letter erklärt.

Scripting in Adobe Forms

Im Laufe der Zeit kommt kein SAP-Formularentwickler am Scripting vorbei. Erfahren Sie wie Sie Skripte erstellen und welche Gründe für Scripting sprechen.

Anpassungen im Layout

Zuerst sollen alle Punkte erläutert werden, die im Layout angepasst werden müssen, damit die Aussteuerung funktionieren kann.

Weitere Masterseiten anlegen

Papierformat von Adobe Formularen
Masterseiten geben bei einem Adobe Formular die Papierart vor. Daher muss für jedes weitere Ausgabeformat eine weitere Masterseite angelegt werden. Hierbei sollte Sie die gleiche Anzahl wie im Ursprungsformat erstellen. Kennzeichnen Sie die neu erstellten Masterseiten am besten mit einem passenden Suffix (in unserem Beispiel “_letter”) um spätere Unterscheidung zu erleichtern.

In diesen Masterseiten stellen Sie zunächst das gewünscht Format ein und kopieren anschließend alle Elemente der Ursprungsmasterseiten auf die entsprechenden Letter-Masterseiten. Dies funktioniert am einfachsten über Strg+C und Strg+V oder durch das Anpassen der XML des Formulars.
Papierformat von Adobe Formularen
Nach dem Einfügen müssen Sie nur noch die Objekte entsprechend positionieren und die Größe des Inhaltsbereiches anpassen, damit dessen Inhalt korrekt dargestellt werden kann.

Leere Inhaltsseiten in Adobe einfügen und platzieren

Nach dem Anlegen der zusätzlichen Masterseiten wollen wir dem Formular noch beibringen, welches Seitenformat es bei der Ausgabe verwenden soll. Dazu fügen wir vor der bereits existierenden Inhaltsseite zwei leere Seiten ein, welche jeweils ein Ausgabeformat repräsentieren und auch so benannt werden. Setzen sie anschließend dunter dem Reiter Teilformular den Inhalt der beiden Seiten auf Textfluss.
Papierformat von Adobe Formularen
Anschließend erhalten alle erstellten Seiten ein ausgeblendetes Textfeld. Dieses Textfeld wird später dafür genutzt, dass an Hand eines Wertes im Kontext das Ausgabeformat über Scripting vorgegeben wird. Zunächst müssen die “leeren” Seiten aber noch den richtigen Masterseiten zugeordnet werden. Dazu wählen sie über Paginierung -> Platzieren -> In Inhaltsbereich die zugehörigen Inhaltsbereiche aus.
Papierformat von Adobe Formularen
Mit diesen Anpassungen würden momentan immer beide Ausgabeformate generiert werden. Der große Vorteil dieses Vorgehens wird an dieser Stelle bereist sichtbar: Der Inhaltsbereich mit allen dynamischen Elementen ist für beide Ausgabeformate identisch. Das bedeutet, dass Anpassungen aller Art (neue Werte, Übersetzungen, weitere Felder, …) nur an einer Stelle durchgeführt werden müssen.
Nun fehlt nur noch das Ausblenden des nicht gewollten Papierformats. Dies geschieht über Scripting in FormCalc.

Implementierung des Scriptings im Adobe Formular

Blenden Sie zunächst den Scriptingbereich in Ihrem Adobe LiveCycle Designer im oberen Bereich ein. Eventuell muss dieser über Fenster -> Skript-Editor geöffnet werden. Dort werden wir jetzt über Bedingungen die Sichtbarkeit für die leeren Inhaltsseiten dynamisch zur Generierung einstellen. In unserem Beispiel unterscheiden wir nur zwischen zwei Ausgabeformaten und können deshalb mit einer einfachen Variablen arbeiten, bei der “X” Letter-Format und “” A4-Format bedeutet.
In diesem Fall wählen wir die A4-Inhaltsseite aus und binden folgende Zeilen FormCalc ein:
Papierformat von Adobe Formularen
Achten Sie dabei auf den Scriptingzeitpunkt initialize, die Sprache FormCalc und dass das Scripting für den Client und Server durchgeführt wird. Wie oben beschrieben wird die A4-Seite inaktiv gesetzt, wenn die gebundene Variable aus dem Kontext ein “X” enthält. Das Gegenteil wird für die Letter-Inhaltsseite eingestellt.

Zusätzlich muss an dieser Stelle beachtet werden, dass eine Aussteuerung aller Überläufe der enthaltenen Tabellen und Teilformulare ebenfalls über Sctipting gesteuert werden muss, da sonst eine Tabelle von einer Letter-Seite auf eine A4-Seite läuft. Diese Überläufe werden am Besten über die XML-Quelle des Formulars gefunden und können wie die Sichtbarkeit der Inhaltsseiten per FormCalc-Script gesteuert werden.

SAP Adobe Forms

E-Book: SAP Adobe Forms

Adobe Forms ist der Standard für Druckformulare, denn es ermöglicht effizientes und gewinnbringendes Arbeiten.

Erweiterungen im Adobe Kontext

Wie oben bereits angesprochen muss am Schluss noch ein Wert auf das ausgeblendete Feld auf den “leeren” Inhaltsseiten gebunden werden. In unserem Beispiel wurde ein entweder-oder-Fall betrachtet, wonach entweder A4 oder Letter als Papierform generiert wird. Dies kann aber beliebig erweitert und verfeinert werden. So kann sich das Ausgabeformat beispielsweise nach dem Buchungskreis, der Verkaufsorganisation, der Formularsprache oder einer Kombination verschiedenster Kriterien richten. Dafür muss einzig die Entscheidung im FormCalc-Script angepasst werden.

An dieser Stelle empfehlen wir jedoch die Code-Initialisierung der Schnittstelle Ihres Adobe Formulars zu verwenden. Dort kann über ABAP jegliche Logik zur Aussteuerung implementiert und durch eine einzelne Variable an den Kontext übergeben werden. Dadurch bleibt Ihr Formular wartbarer und das Scripting im LiveCycle Designer übersichtlicher.

Haben Sie noch Fragen zur Aussteuerung von Ausgabeformaten oder Adobe Formularen allgemein? Zögern Sie nicht uns über die Kommentare oder die angegebenen Adressen zu kontaktieren und wir werden uns schnellstmöglich mit Ihnen in Verbindung setzen.

Robert Pagels

Robert Pagels

Mein Name ist Robert Pagels und ich bin begeisterter SAP Consultant bei mindsquare. Mein Fokus liegt dabei auf Adobe und HR-Formularen. Gern stehe ich für all Ihre Formularfragen zu Verfügung.

Sie haben Fragen? Kontaktieren Sie mich!



Das könnte Sie auch interessieren

Überlegen Sie Ihre Formulare zukünftig mit Adobe Forms zu entwickeln oder ihre alten SAPscript Formulare auf Adobe Forms umzustellen? Hier sind 10 gute Gründe für diesen Schritt!

weiterlesen

Viele Kunden stellen uns die Frage: Kann ich meine Textbausteine in Adobe Forms weiterhin verwenden? Unsere Antwort ist dabei immer ein deutliches und selbstbewusstes Ja! Egal ob SO10-, Smartforms- oder […]

weiterlesen

Zebradrucker lassen sich oft nur schwer einstellen. Funktioniert die Ausgabe an ihm nicht oder werden die Labels falsch gedruckt herrscht, auf Grund des hohen Stellenwertes bei meinen Kunden, oft Ausnahmezustand, […]

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