MIND FORMS » Knowhow » SAP Formulartechnologien / Adobe Forms

Adobe Formcalc
Mit der Einführung von Adobe Forms wurde erstmals die Möglichkeit der Datenübertragung zwischen PDF und SAP geschaffen. Um die Daten beim Transfer konsistent zu halten, ist es wichtig, die Eingaben auf dem Formular zu prüfen. Dabei kann es wichtig sein, dass Eingaben nach einem gewissen Schema getätigt werden, um keine Fehler auszulösen.
Skripte vereinfachen diese Prüfung, indem sie beispielsweise nur Eingaben in einem bestimmten Format zulassen. Außerdem können arithmetische Berechnungen innerhalb eines Formulars durchgeführt werden.
Erst durch die Verwendung von Skripten lassen sich alle Möglichkeiten von statischen und interaktiven PDF-Formularen verwenden.
JavaScript
Die Alternative zu Adobe FormCalc ist JavaScript. Im Gegensatz zu JavaScript wurde FormCalc eigens für die Entwicklung von Skripten in Adobe Forms entwickelt.
In der Praxis zeigt sich, dass Skripte, die in FormCalc geschrieben wurden, um ein Vielfaches schneller ausgeführt werden als inhaltsgleiche Skripte in JavaScript. Dies führt insbesondere bei Formularen, in denen große Mengen an Skripten ausgeführt werden, zu Performance-Vorteilen.
Adobe Formcalc oder JavaScript?
Sowohl FormCalc als auch JavaScript bieten Vor- als auch Nachteile bei der Verwendung. Je nach Vorerfahrung mit Skriptsprachen ist es sinnvoll, die Vor- und Nachteile gegeneinander abzuwägen, bevor die Skriptsprache festgelegt wird. Es ist auch möglich, die Skriptsprache innerhalb eines Formulars zwischen verschiedenen Skripten zu wechseln.
Skriptsprachen
Durch den Einsatz einer Skriptsprache, wie z. B. FormCalc, kann die Funktionalität von Formularen deutlich erweitert werden. Berechnungen im Formular können durchgeführt werden, die gegebenenfalls erst nach einer Eingabe auf dem Formular ausgeführt werden. Im Gegensatz zu statischen PDF-Formularen können bei interaktiven Formularen auch noch nach der Generierung des Formulars Veränderungen vorgenommen werden.
Außerdem kann festgelegt werden, an welcher Stelle im Formular das Skript ausgeführt werden soll. Hierzu stellt FormCalc sogenannte Events bereit. Sobald ein Event eintritt, werden alle Skripte ausgeführt, die für dieses Event entwickelt wurden.
Event initialize
Ein Beispiel ist das Event „initialize“. Das Event wird ausgeführt, sobald das Formular initialisiert und generiert wird. Ein Skript, das auf dem Event „click“ programmiert ist, wird noch nicht beim Generieren des Formulars, sondern erst beim Klicken auf das dazugehörige Feld ausgeführt. Dies ist beispielsweise bei einem Button sinnvoll, der bei einem Klick Informationen weiterleiten soll.
Zudem kann angegeben werden, ob ein Skript client- oder serverseitig ausgeführt werden soll. Ein clientseitiges Skript wird jedes Mal ausgeführt, sobald das Dokument geöffnet wird. Dadurch kann bei der Generierung des Formulars Zeit gespart werden. Ein serverseitiges Skript wird hingegen nur ausgeführt, wenn das Dokument generiert wird. Dadurch kann Zeit beim Öffnen des Dokuments eingespart werden. Allerdings können Skripte auf manchen Events, wie z. B. click, nicht serverseitig ausgeführt werden.
Syntax Adobe Formcalc
Adobe FormCalc besteht aus verschiedenen Bausteinen, die sich zu Ausdrücken zusammensetzen lassen. Ein Beispiel hierfür sind Literale, mit denen konstante Werte dargestellt werden können. Soll ein Feld jedes Mal den Wert „500“ übergeben, kann dieser Wert als Literal hinterlegt werden.
Operatoren
Mithilfe von Operatoren können Berechnungen durchgeführt werden. Die gängigsten Operatoren sind die vier Grundrechenarten. Zudem besitzt FormCalc auch Bezeichner und Schlüsselwörter. Diese können farblich hervorgehoben werden. Schlüsselwörter sind reservierte Wörter, die als Teile von Ausdrücken, speziellen Zahlenliteralen und Operatoren verwendet werden.
Funktionsaufrufe
Außerdem können auch Funktionsaufrufe durchgeführt werden, die für bestimmte Aufgaben notwendig sind. Manche Funktionen benötigen einen bestimmten Satz von Argumenten für die Ausführung und zur Rückgabe eines Wertes, andere nicht. Viele Funktionen besitzen optionale Argumente. Das heißt, der Benutzer entscheidet, ob das Argument in der betreffenden Situation benötigt wird oder nicht.
Auswertung Argumente
FormCalc wertet alle Funktionsargumente der Reihe nach aus, beginnend mit dem führenden Argument. Wenn versucht wird, einer Funktion weniger als die benötigte Zahl von Argumenten zu übergeben, erzeugt die Funktion einen Ausnahmefehler. Jede Funktion erwartet die einzelnen Argumente in einem bestimmten Format, d. h. entweder als Zahlen- oder als Zeichenfolgenliteral. Wenn der Wert eines Arguments nicht mit dem von der Funktion erwarteten Format übereinstimmt, wandelt FormCalc den Wert entsprechend um.
Architektur
FormCalc-Berechnungen und JavaScript-Skripte unterliegen bei der Strukturierung von Quellcode jeweils spezifischen Regeln. Wenn es jedoch um den Zugriff auf Formularobjekteigenschaften und -werte geht, stützen sie sich auf die gleiche Referenz-Syntax.
Das XML Form Object Model bietet über eine Namenskonvention, bei der alle Objekte, Eigenschaften und Methoden jeweils durch ein Punktzeichen (.) voneinander getrennt sind, eine strukturierte Möglichkeit, auf Objekteigenschaften und -werte zuzugreifen.
Struktur Referenzsyntax
Jede Referenzsyntax weist in der Regel eine in folgende Abschnitte unterteilte Struktur auf:
- Die Namen der übergeordneten Objekte in der Formularhierarchie, die zur Navigation zu einem bestimmten Feld oder Objekt dient. Mit den beiden Paletten “Hierarchie” und “Datenansicht” können Sie die Position eines Objekts im Verhältnis zu anderen Objekten im Formular und in zugehörigen Daten ermitteln.
- Der Name des Objekts, das Sie referenzieren möchten.
- Der Name der Eigenschaft oder Methode, auf die Sie zugreifen möchten. Dieser Abschnitt enthält möglicherweise auch Objekte des XML Form Object Models, die in der Struktur vor der Eigenschaft oder Methode auftreten, aber in der Palette “Hierarchie” nicht als Objekte aufgeführt werden.
Abbildung Referenzsyntax
In nachfolgender Abbildung sehen Sie die Referenz-Syntax für den Zugriff auf den Wert eines Textfelds in einem Formularentwurf. Die einzelnen Blöcke sind jeweils mit einem Buchstaben markiert und durch einen Punkt voneinander getrennt. Dabei gelten die folgenden Konventionen für die Objektbenennung:
Fazit Adobe FormCalc
Durch den Einsatz einer Skriptsprache eröffnen sich viele neue Möglichkeiten bei der Gestaltung von Adobe Forms. Als proprietäre Skriptsprache bietet sich FormCalc an, da diese von der Syntax her leichter zu erlernen ist und schneller als vergleichbarer Quellcode in JavaScript arbeitet.
Damit der Einstieg in FormCalc gelingt, bietet Adobe eine Skriptreferenz an, in der die wichtigsten Bestandteile von FormCalc beschrieben und anhand von Beispielen veranschaulicht werden.
FormCalc Unterstützung
Problematisch kann sein, dass FormCalc ausschließlich von Adobe gepflegt und weiterentwickelt wird, was bei JavaScript nicht der Fall ist. Aus diesem Grund lässt sich aktuell nicht sagen, welche der beiden Skriptsprachen sich langfristig im Bereich der Formularentwicklung durchsetzen wird. Letztendlich ist es auch eine Frage der Vorkenntnisse und des Entwicklungsstils, ob nun FormCalc oder JavaScript zur Erstellung von Formularskripten genutzt wird.
Welche Erfahrungen haben Sie mit Adobe FormCalc gesammelt? Bevorzugen Sie und/oder Ihre Entwickler eher FormCalc oder JavaScript? Aus welchen Gründen haben Sie diese Entscheidung getroffen? Hinterlassen Sie Ihre Gedanken hierzu entweder in einem Kommentar oder per E-Mail an girke@mind-forms.de. Ich freue mich auf Ihre Rückmeldung.
FAQ
Was ist Adobe FormCalc?
Adobe FormCalc bezeichnet eine Skriptsprache, die in der Formulartechnologie Adobe Forms genutzt wird. Sie dient zur Herstellung von Skripten im Adobe LiveCycle Designer und kommt ausschließlich dort zur Anwendung. In Adobe FormCalc sind verschiedene Funktionen integriert, wie beispielsweise Daten und Uhrzeiten, Zeichenketten, Logik oder auch Finanzen und Mathematik.
Welche Vorteile bietet Adobe FormCalc?
Bereits integrierte Skripte und Berechnungen machen Formulare attraktiver für seine Nutzer. Die nützlichen Funktionen bieten einen leichten und hilfreichen Umgang mit den Daten. Dabei ist Adobe FormCalc als Skriptsprache auch für User geeignet, die keine oder nur wenig Erfahrung in Skriptsprachen oder der Skripterstellung haben.
(Wann) ist eine Nutzung mit Adobe FormCalc und JavaScriptTM möglich?
Als Standard-Skriptsprache wird im Adobe LiveCycle Desginer JavaScriptTM verwendet und FormCalc als Alternative angeboten. Bei jedem Coding eines Objektes haben User die Wahl zwischen JavaScript und Adobe FormCalc. Dabei können bei der Erstellung von interaktiven Formularen jedoch auch beide Skriptsprachen zusammen verwendet werden.