Beispiele und Beispiele in diesem Dokument gelten nur für die AEM Forms on JEE-Umgebung.
Der Forms-Dienst kann die Werte berechnen, die ein Benutzer in ein Formular eingibt, und die Ergebnisse anzeigen. Zur Berechnung der 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 auf dem Server und auf dem Client. Der in diesem Thema beschriebene Skripttyp wird auf dem Server ausgeführt. Serverseitige Berechnungen werden für HTML-, PDF- und Formular-Guide-Transformationen (nicht mehr unterstützt) unterstützt.
Im Rahmen des Formularentwurfsprozesses können Sie Berechnungen und Skripten verwenden, um ein besseres Benutzererlebnis zu bieten. Berechnungen und Skripten können den meisten Formularfeldern und -objekten hinzugefügt werden. Sie müssen ein Formularentwurfsskript erstellen, 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 eine Beispielanwendung beschrieben, mit der ein Benutzer Daten berechnen kann:
GetLoanForm
auf.GetLoanForm
rendert ein Darlehensformular. Dieses Formular enthält ein Skript, interaktive Felder, eine Berechnungsschaltfläche und eine Senden-Schaltfläche.CalculateData
gesendet, in dem 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 Handhabung der übermittelten Forms.)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 Schaltfläche Senden , wenn die Werte zufriedenstellend sind. Das Formular wird an ein anderes Java-Servlet mit dem Namen |
In der Regel enthält ein Formular, das als PDF-Inhalt gesendet wird, Skripte, die auf dem Client ausgeführt werden. Serverseitige Berechnungen können jedoch auch ausgefü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-Dienst 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 dieser Schaltfläche. 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-Dienst gesendet, wo das Skript ausgeführt wird. Der Forms-Dienst rendert das Formular auf das Clientgerät zurück, wobei die Berechnungsergebnisse im Feld NumericField3 angezeigt werden.
Weitere Informationen zum Erstellen eines Formularentwurfsskripts finden Sie unter Forms Designer.
Weitere Informationen zum Forms-Dienst finden Sie unter Dienstreferenz für AEM Forms.
Um Formulardaten zu berechnen, führen Sie die folgenden Aufgaben aus:
Projektdateien einschließen
Fügen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie eine Clientanwendung 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-Dienst programmgesteuert ausführen können, müssen Sie einen Forms-Dienstclient erstellen. Wenn Sie die Java-API verwenden, erstellen Sie ein FormsServiceClient
-Objekt. Wenn Sie die Forms-Webdienst-API verwenden, erstellen Sie ein FormsServiceService
-Objekt.
Abrufen eines Formulars mit einem Berechnungsskript
Sie verwenden die Client-API des Forms-Dienstes, um eine Anwendungslogik zu erstellen, die ein Formular verarbeitet, das ein Skript enthält, das für die Ausführung auf dem Server konfiguriert ist. Der Prozess ähnelt der Verarbeitung eines gesendeten Formulars. (Siehe Handhabung der übermittelten Forms.)
Vergewissern Sie sich, dass der mit dem gesendeten Formular verknüpfte Verarbeitungsstatus 1
(Calculate)
lautet. Das bedeutet, dass der Forms-Dienst einen Berechnungsvorgang für die Formulardaten durchführt und die Ergebnisse an 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.
Schreiben Sie den Formulardaten-Stream zurück in den Client-Webbrowser
Nachdem Sie überprüft haben, ob der mit einem gesendeten Formular verknüpfte Verarbeitungsstatus 1
lautet, 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
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Formulardaten mithilfe des Java
APICalculate-Formulardaten mithilfe des Webdienst-
APISetting connection
propertiesForms Service API Quick
StartsRendern von interaktiven PDF-
FormularenErstellen von Webanwendungen, die Forms rendern
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 dessen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.Abrufen eines Formulars mit einem Berechnungsskript
Um Formulardaten abzurufen, die ein Berechnungsskript enthalten, erstellen Sie ein com.adobe.idp.Document
-Objekt, indem Sie dessen Konstruktor verwenden und die javax.servlet.http.HttpServletResponse
-Methode des Objekts getInputStream
im Konstruktor aufrufen.
Rufen Sie die processFormSubmission
-Methode des Objekts FormsServiceClient
auf und übergeben Sie die folgenden Werte:
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
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 zurück, das die Ergebnisse der Formularübermittlung enthält.
Stellen Sie sicher, dass der mit einem gesendeten Formular verknüpfte Verarbeitungsstatus 1
ist, indem Sie die getAction
-Methode des Objekts FormsResult
aufrufen. 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 Formulardatenstreams an den Client-Webbrowser verwendet wird.com.adobe.idp.Document
-Objekt, indem Sie die FormsResult
-Methode des Objekts "s getOutputContent
aufrufen.java.io.InputStream
-Objekt, indem Sie die getInputStream
-Methode des Objekts com.adobe.idp.Document
aufrufen.read
-Methode des Objekts InputStream
aufrufen und das Byte-Array als Argument übergeben.write
-Methode des Objekts javax.servlet.ServletOutputStream
auf, um den Formulardatenstream an den Client-Webbrowser zu senden. Übergeben Sie das Byte-Array an die write
-Methode.Siehe auch
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Berechnen Sie Formulardaten mithilfe der Forms API (Webdienst):
Projektdateien einschließen
Erstellen eines Forms Client-API-Objekts
Erstellen Sie ein FormsService
-Objekt und legen Sie Authentifizierungswerte fest.
Abrufen eines Formulars mit einem Berechnungsskript
Um Formulardaten abzurufen, die in einem Java-Servlet veröffentlicht wurden, erstellen Sie ein BLOB
-Objekt mithilfe seines Konstruktors.
Erstellen Sie ein java.io.InputStream
-Objekt mithilfe der javax.servlet.http.HttpServletResponse
-Methode des Objekts getInputStream
.
Erstellen Sie ein java.io.ByteArrayOutputStream
-Objekt, indem Sie dessen Konstruktor verwenden und die Länge des java.io.InputStream
-Objekts übergeben.
Kopieren Sie den Inhalt des Objekts java.io.InputStream
in das Objekt java.io.ByteArrayOutputStream
.
Erstellen Sie ein Byte-Array, indem Sie die toByteArray
-Methode des Objekts java.io.ByteArrayOutputStream
aufrufen.
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. Legen Sie den Gebietsschemawert fest, indem Sie die setLocale
-Methode des Objekts RenderOptionsSpec
aufrufen und einen Zeichenfolgenwert übergeben, der den Gebietsschemawert angibt.
Rufen Sie die processFormSubmission
-Methode des Objekts FormsServiceClient
auf und übergeben Sie die folgenden Werte:
BLOB
-Objekt, das die Formulardaten enthält.HTTP_REFERER=referrer&HTTP_CONNECTION=keep-alive&CONTENT_TYPE=application/xml
HTTP_USER_AGENT
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 ausgefüllt wird.javax.xml.rpc.holders.StringHolder
-Objekt, das von der -Methode ausgefüllt wird.BLOBHolder
-Objekt, das von der -Methode ausgefüllt wird.BLOBHolder
-Objekt, das von der -Methode ausgefüllt wird.javax.xml.rpc.holders.ShortHolder
-Objekt, das von der -Methode ausgefüllt wird.MyArrayOf_xsd_anyTypeHolder
-Objekt, das von der -Methode ausgefüllt wird. Dieser Parameter wird zum Speichern von Dateianlagen verwendet, die zusammen mit dem Formular gesendet werden.FormsResultHolder
-Objekt, das von der -Methode mit dem gesendeten Formular gefüllt wird.Die processFormSubmission
-Methode füllt den Parameter FormsResultHolder
mit den Ergebnissen der Formularübermittlung. Die processFormSubmission
-Methode gibt ein FormsResult
-Objekt zurück, das die Ergebnisse der Formularübermittlung enthält.
Stellen Sie sicher, dass der mit einem gesendeten Formular verknüpfte Verarbeitungsstatus 1
ist, indem Sie die getAction
-Methode des Objekts FormsResult
aufrufen. 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 Formulardatenstreams an den Client-Webbrowser verwendet wird.BLOB
-Objekt, das Formulardaten enthält, indem Sie die getOutputContent
-Methode des Objekts FormsResult
aufrufen.getBinaryData
-Methode des Objekts BLOB
. Diese Aufgabe weist den Inhalt des Objekts FormsResult
dem Byte-Array zu.write
-Methode des Objekts javax.servlet.http.HttpServletResponse
auf, um den Formulardatenstream an den Client-Webbrowser zu senden. Übergeben Sie das Byte-Array an die write
-Methode.Siehe
auch Aufrufen von AEM Forms mithilfe der Base64-Kodierung .