Die Beispiele in diesem Dokument gelten nur für eine AEM Forms on JEE-Umgebung.
Der Forms-Service kann die Werte berechnen, die ein Benutzer in ein Formular eingibt, und die Ergebnisse anzeigen. Zur Berechnung von Formulardaten müssen Sie zwei Aufgaben ausführen. Erstellen Sie zunächst ein Formularentwurfsskript, das Formulardaten berechnet. Ein Formularentwurf unterstützt drei Arten von Skripten. Ein Skripttyp wird auf dem Client ausgeführt, ein anderer auf dem Server und der dritte sowohl auf dem Server als auch auf dem Client. Der in diesem Thema beschriebene Skripttyp wird auf dem Server ausgeführt. Server-seitige Berechnungen werden für HTML-, PDF- und Formularhandbuchtransformationen (veraltet) unterstützt.
Im Rahmen des Formularentwurfsprozesses können Sie Berechnungen und Skripten verwenden, um ein besseres Benutzererlebnis zu bieten. Berechnungen und Skripte können zu den meisten Formularfeldern und -objekten hinzugefügt werden. Erstellen Sie ein Formularentwurfsskript, um Berechnungsvorgänge für Daten durchzuführen, die ein Benutzer in ein interaktives Formular eingibt.
Der Benutzer gibt Werte in das Formular ein und klickt auf die Schaltfläche „Berechnen“, um die Ergebnisse anzuzeigen. Im folgenden Prozess wird ein Beispiel-Programm beschrieben, mit dem ein Benutzer Daten berechnen kann:
GetLoanForm
auf.GetLoanForm
-Servlet rendert ein Darlehensformular. Dieses Formular enthält ein Skript, interaktive Felder, eine Berechnungsschaltfläche und eine Senden-Schaltfläche.CalculateData
gesendet, wo das Skript ausgeführt wird. Das Formular wird mit den im Formular angezeigten Berechnungsergebnissen an den Benutzer zurückgesendet.ProcessForm
gesendet, das für das Abrufen der gesendeten Daten verantwortlich ist. (Siehe Umgang mit übermittelten Formularen.)Das folgende Diagramm zeigt den Logikfluss der Anwendung.
Die folgende Tabelle beschreibt die Schritte in diesem Diagramm.
Schritt |
Beschreibung |
---|---|
1 |
Das Java-Servlet |
2 |
Das Java-Servlet |
3 |
Der Benutzer gibt Daten in interaktive Felder ein und klickt auf die Schaltfläche „Berechnen“. Das Formular wird an das Java-Servlet |
4 |
Das Formular wird im Webbrowser wiedergegeben, wobei die Berechnungsergebnisse im Formular angezeigt werden. |
5 |
Der Benutzer klickt auf die Senden-Schaltfläche, wenn die Werte zufriedenstellend sind. Das Formular wird an ein anderes Java-Servlet mit dem Namen |
Normalerweise enthält ein Formular, das als PDF-Inhalt gesendet wird, Skripte, die auf dem Client ausgeführt werden. Es können aber auch Server-seitige Berechnungen durchgeführt werden. Eine Senden-Schaltfläche kann nicht zur Berechnung von Skripten verwendet werden. In diesem Fall werden keine Berechnungen ausgeführt, da der Forms-Service die Interaktion für abgeschlossen hält.
Um die Verwendung eines Formularentwurfsskripts zu veranschaulichen, wird in diesem Abschnitt ein einfaches interaktives Formular untersucht, das ein Skript enthält, das für die Ausführung auf dem Server konfiguriert ist. Das folgende Diagramm zeigt einen Formularentwurf mit einem Skript, das Werte hinzufügt, die ein Benutzer in die ersten beiden Felder eingibt, und das Ergebnis im dritten Feld anzeigt.
A. Ein Feld namens NumericField1 B. Ein Feld namens NumericField2 C. Ein Feld namens NumericField3
Die Syntax des Skripts in diesem Formularentwurf lautet wie folgt:
NumericField3 = NumericField2 + NumericField1
In diesem Formularentwurf ist die Schaltfläche "Berechnen"eine Befehlsschaltfläche und das Skript befindet sich im Click
-Ereignis. Wenn ein Benutzer Werte in die ersten beiden Felder (NumericField1 und NumericField2) eingibt und auf die Schaltfläche „Berechnen“ klickt, wird das Formular an den Forms-Service gesendet, wo das Skript ausgeführt wird. Der Forms-Service rendert das Formular zurück auf den Client-Computer und zeigt die Ergebnisse der Berechnung im Feld NumericField3 an.
Informationen zum Erstellen eines Formularentwurfsskripts finden Sie unter Forms Designer.
Weitere Informationen über den Forms-Service finden Sie in der Service-Referenz für AEM Forms.
Um Formulardaten zu berechnen, führen Sie die folgenden Aufgaben aus:
Einschließen von Projektdateien
Schließen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie ein Client-Programm mit Java erstellen, schließen Sie die erforderlichen JAR-Dateien ein. Wenn Sie Webdienste verwenden, stellen Sie sicher, dass Sie die Proxy-Dateien einschließen.
Erstellen eines Forms-Client-API-Objekts
Bevor Sie einen Client-API-Vorgang für den Forms-Service programmgesteuert durchführen können, müssen Sie einen Client für den Forms-Service erstellen. Wenn Sie die Java-API verwenden, erstellen Sie ein FormsServiceClient
-Objekt. Wenn Sie die Forms-Webservice-API verwenden, erstellen Sie ein FormsServiceService
-Objekt.
Abrufen eines Formulars, das ein Berechnungsskript enthält
Sie verwenden die Client-API des Forms-Services, um eine Anwendungslogik zu erstellen, die ein Formular verarbeitet, welches ein Skript enthält, das für die Ausführung auf dem Server konfiguriert ist. Der Prozess ähnelt der Verarbeitung eines gesendeten Formulars. (Siehe Umgang mit übermittelten Formularen.)
Überprüfen Sie, ob der mit dem gesendeten Formular verknüpfte Verarbeitungsstatus 1
(Calculate)
ist, was bedeutet, dass der Forms-Service einen Berechnungsvorgang für die Formulardaten durchführt und die Ergebnisse für den Benutzer zurückgeschrieben werden müssen. In diesem Fall wird automatisch ein Skript ausgeführt, das für die Ausführung auf dem Server konfiguriert wurde.
Zurückschreiben des Formulardaten-Streams in den Client-Webbrowser
Nachdem Sie überprüft haben, dass der mit einem gesendeten Formular verknüpfte Verarbeitungsstatus 1
ist, müssen Sie die Ergebnisse zurück in den Client-Webbrowser schreiben. Wenn das Formular angezeigt wird, erscheint der berechnete Wert in den entsprechenden Feldern.
Siehe auch
Einschließen von AEM Forms-Java-Bibliotheksdateien
Formulardaten mit der Java-API berechnen
Formulardaten mithilfe der Webdienst-API berechnen
Verbindungseigenschaften festlegen
Schnellstarts zur Forms Service-API
Rendern interaktiver PDF forms
Erstellen von Webanwendungen, die Forms rendern
So berechnen Sie die Formulardaten mithilfe der Forms API (Java):
Projektdateien einschließen
Schließen Sie Client-JAR-Dateien wie adobe-forms-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen eines Forms Client-API-Objekts
ServiceClientFactory
-Objekt, das Verbindungseigenschaften enthält.FormsServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.Abrufen eines Formulars, das ein Berechnungsskript enthält
Um Formulardaten abzurufen, die ein Berechnungsskript enthalten, erstellen Sie eine com.adobe.idp.Document
-Objekt durch Verwendung seines Konstruktors und Aufrufen der javax.servlet.http.HttpServletResponse
-Objekt getInputStream
-Methode innerhalb des Konstruktors.
Rufen Sie die FormsServiceClient
-Objekt processFormSubmission
-Methode verwenden und die folgenden Werte übergeben:
com.adobe.idp.Document
-Objekt, das die Formulardaten enthält.CONTENT_TYPE
angeben. Um beispielsweise XML- und PDF-Daten zu verarbeiten, geben Sie den folgenden Zeichenfolgenwert für diesen Parameter an: CONTENT_TYPE=application/xml&CONTENT_TYPE=application/pdf
HTTP_USER_AGENT
-Kopfzeile angibt, z. B. Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
.RenderOptionsSpec
-Objekt, das Laufzeitoptionen speichert.Die processFormSubmission
-Methode gibt ein FormsResult
-Objekt aus, das die Ergebnisse der Formularübermittlung enthält.
Überprüfen Sie, ob der mit einem gesendeten Formular verknüpfte Verarbeitungsstatus 1
durch Aufrufen der FormsResult
-Objekt getAction
-Methode. Wenn diese Methode den Wert 1
zurückgibt, wurde die Berechnung durchgeführt und die Daten können in den Client-Webbrowser zurückgeschrieben werden.
Schreiben Sie den Formulardaten-Stream zurück in den Client-Webbrowser
javax.servlet.ServletOutputStream
-Objekt, das zum Senden eines Formulardaten-Streams an den Client-Webbrowser verwendet wird.com.adobe.idp.Document
-Objekt durch Aufrufen der FormsResult
-Objekt getOutputContent
-Methode.java.io.InputStream
-Objekt durch Aufrufen der com.adobe.idp.Document
-Objekt getInputStream
-Methode.InputStream
-Objekt read
-Methode verwenden und das Byte-Array als Argument übergeben.javax.servlet.ServletOutputStream
-Objekt write
-Methode zum Senden des Formulardatenstreams an den Client-Webbrowser. Übergeben Sie das Byte-Array an die Methode write
.Siehe auch
Einschließen von AEM Forms-Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
So berechnen Sie Formulardaten mithilfe der Forms API (Webservice):
Projektdateien einschließen
Erstellen eines Forms Client-API-Objekts
Erstellen Sie ein FormsService
Objekt und legen Sie Authentifizierungswerte fest.
Abrufen eines Formulars, das ein Berechnungsskript enthält
Um Formulardaten abzurufen, die an ein Java-Servlet gesendet wurden, erstellen Sie ein BLOB
-Objekt, indem Sie seinen Konstruktor verwenden.
Erstellen Sie eine java.io.InputStream
-Objekt mithilfe der javax.servlet.http.HttpServletResponse
-Objekt getInputStream
-Methode.
Erstellen Sie ein java.io.ByteArrayOutputStream
-Objekt, indem Sie seinen Konstruktor verwenden und die Länge des java.io.InputStream
-Objekts übergeben.
Kopieren Sie den Inhalt des java.io.InputStream
-Objekts in das java.io.ByteArrayOutputStream
-Objekt.
Erstellen Sie ein Byte-Array durch Aufrufen der java.io.ByteArrayOutputStream
-Objekt toByteArray
-Methode.
Füllen Sie das BLOB
-Objekt, indem Sie seine setBinaryData
-Methode aufrufen und das Byte-Array als Argument übergeben.
Erstellen Sie ein Objekt RenderOptionsSpec
, indem Sie den Konstruktor verwenden. Festlegen des Gebietsschemawerts durch Aufrufen der RenderOptionsSpec
-Objekt setLocale
-Methode verwenden und einen string -Wert übergeben, der den Gebietsschema-Wert angibt.
Rufen Sie die FormsServiceClient
-Objekt processFormSubmission
-Methode verwenden und die folgenden Werte übergeben:
BLOB
-Objekt, das die Formulardaten enthält.HTTP_REFERER=referrer&HTTP_CONNECTION=keep-alive&CONTENT_TYPE=application/xml
HTTP_USER_AGENT
-Kopfzeile angibt, z. B. Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
.RenderOptionsSpec
-Objekt, das Laufzeitoptionen speichert. Für weitere Informationen, .BLOBHolder
-Objekt, das von der Methode aufgefüllt wird.javax.xml.rpc.holders.StringHolder
-Objekt, das von der Methode gefüllt wird.BLOBHolder
-Objekt, das von der Methode gefüllt wird.BLOBHolder
-Objekt, das von der Methode gefüllt wird.javax.xml.rpc.holders.ShortHolder
-Objekt, das von der Methode gefüllt wird.MyArrayOf_xsd_anyTypeHolder
-Objekt, das von der Methode gefüllt wird. Dieser Parameter wird zum Speichern von Dateianhängen verwendet, die zusammen mit dem Formular gesendet werden.FormsResultHolder
-Objekt, das von der Methode mit dem gesendeten Formular gefüllt wird.Die Methode processFormSubmission
füllt den Parameter FormsResultHolder
mit den Ergebnissen der Formularübermittlung. Die Methode processFormSubmission
gibt ein FormsResult
-Objekt zurück, das die Ergebnisse der Formularübermittlung enthält.
Überprüfen Sie, ob der mit einem gesendeten Formular verknüpfte Verarbeitungsstatus 1
durch Aufrufen der FormsResult
-Objekt getAction
-Methode. Wenn diese Methode den Wert 1
zurückgibt, wurde die Berechnung durchgeführt und die Daten können in den Client-Webbrowser zurückgeschrieben werden.
Schreiben Sie den Formulardaten-Stream zurück in den Client-Webbrowser
javax.servlet.ServletOutputStream
-Objekt, das zum Senden eines Formulardaten-Streams an den Client-Webbrowser verwendet wird.BLOB
-Objekt, das Formulardaten enthält, durch Aufrufen der FormsResult
-Objekt getOutputContent
-Methode.BLOB
-Objekt getBinaryData
-Methode. Mit dieser Aufgabe wird dem Byte-Array der Inhalt des FormsResult
-Objekts zugewiesen.javax.servlet.http.HttpServletResponse
-Objekt write
-Methode zum Senden des Formulardatenstreams an den Client-Webbrowser. Übergeben Sie das Byte-Array an die Methode write
.Siehe auch
Aufrufen von AEM Forms mithilfe von Base64-Codierung