Beispiele und Beispiele in diesem Dokument gelten nur für die AEM Forms on JEE-Umgebung.
Der Forms-Dienst kann Formulare wiedergeben, die auf Fragmenten basieren, die Sie mit Designer erstellen. Ein Fragment ist ein wiederverwendbarer Teil eines Formulars und wird als separate XDP-Datei gespeichert, die in mehrere Formularentwürfe eingefügt werden kann. Beispielsweise kann ein Fragment einen Adressblock oder Copyright-Informationen enthalten.
Die Verwendung von Fragmenten vereinfacht und beschleunigt die Erstellung und Pflege großer Formularbestände. Beim Erstellen eines neuen Formulars fügen Sie einen Verweis auf das erforderliche Fragment ein und das Fragment wird im Formular angezeigt. Der Fragmentverweis enthält ein Teilformular, das auf die eigentliche XDP-Datei verweist. Weitere Informationen zum Erstellen von Formularentwürfen basierend auf Fragmenten finden Sie unter Forms Designer
Ein Fragment kann mehrere Teilformulare enthalten, die in einen Auswahl-Teilformularsatz eingeschlossen sind. Auswahl-Teilformularsätze steuern die Anzeige von Teilformularen basierend auf dem Datenfluss einer Datenverbindung. Verwenden Sie bedingte Anweisungen, um festzulegen, welches Teilformular aus dem Satz im bereitgestellten Formular angezeigt wird. Beispielsweise kann jedes Teilformular in einem Satz Informationen für einen bestimmten geografischen Standort enthalten und das angezeigte Teilformular kann anhand des Standorts des Benutzers bestimmt werden.
Ein Skriptfragment enthält wiederverwendbare JavaScript-Funktionen oder Werte, die getrennt von einem bestimmten Objekt gespeichert werden, z. B. ein Datumsparser oder ein Webdienstaufruf. Diese Fragmente beinhalten ein Skriptobjekt, das in der Palette „Hierarchie“ als untergeordnetes Element von „Variablen“ aufgeführt wird. Fragmente können nicht aus Skripten erstellt werden, die Eigenschaften anderer Objekte sind, wie etwa Ereignisskripte zum Validieren, Berechnen oder Initialisieren.
Die Verwendung von Fragmenten hat folgende Vorteile:
Sie können einen Formularentwurf zusammenstellen, der basierend auf mehreren Fragmenten an den Forms-Dienst übergeben wird. Verwenden Sie zum Zusammenführen mehrerer Fragmente den Assembler-Dienst. Ein Beispiel für die Verwendung des Assembler-Dienstes zum Erstellen eines Formularentwurfs, der von anderen Forms-Diensten (dem Output-Dienst) verwendet wird, finden Sie unter Erstellen von PDF-Dokumenten mit Fragmenten. Anstatt den Output-Dienst zu verwenden, können Sie denselben Workflow mit dem Forms-Dienst durchführen.
Bei Verwendung des Assembler-Dienstes übergeben Sie einen Formularentwurf, der mithilfe von Fragmenten zusammengestellt wurde. Der erstellte Formularentwurf verweist nicht auf andere Fragmente. In diesem Thema wird dagegen die Übergabe eines Formularentwurfs erläutert, der andere Fragmente an den Forms-Dienst referenziert. Der Formularentwurf wurde jedoch nicht von Assembler zusammengestellt. Sie wurde in Designer erstellt.
Weitere Informationen zum Forms-Dienst finden Sie unter Dienstreferenz für AEM Forms.
Informationen zum Erstellen einer webbasierten Anwendung, die Formulare basierend auf Fragmenten wiedergibt, finden Sie unter Erstellen von Webanwendungen, die Forms rendern.
Führen Sie die folgenden Aufgaben aus, um ein Formular anhand von Fragmenten wiederzugeben:
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.
URI-Werte angeben
Um ein Formular erfolgreich basierend auf Fragmenten wiederzugeben, müssen Sie sicherstellen, dass der Forms-Dienst sowohl das Formular als auch die Fragmente (die XDP-Dateien) finden kann, auf die der Formularentwurf verweist. Angenommen, das Formular heißt PO.xdp und verwendet zwei Fragmente namens FooterUS.xdp und FooterCanada.xdp. In diesem Fall muss der Forms-Dienst alle drei XDP-Dateien suchen können.
Sie können ein Formular und seine Fragmente organisieren, indem Sie das Formular an einem Speicherort und die Fragmente an einem anderen Speicherort platzieren. Alternativ können Sie alle XDP-Dateien an demselben Speicherort platzieren. Für die Zwecke dieses Abschnitts nehmen Sie an, dass sich alle XDP-Dateien im AEM Forms-Repository befinden. Informationen zum Platzieren von XDP-Dateien im AEM Forms-Repository finden Sie unter Schreibressourcen.
Beim Wiedergeben eines Formulars, das auf Fragmenten basiert, dürfen Sie nur das Formular selbst referenzieren und nicht die Fragmente. Sie müssen beispielsweise auf PO.xdp und nicht auf FooterUS.xdp oder FooterCanada.xdp verweisen. Stellen Sie sicher, dass Sie die Fragmente an einer Stelle platzieren, an der der Forms-Dienst sie finden kann.
Formular wiedergeben
Ein auf Fragmenten basierendes Formular kann auf die gleiche Weise wiedergegeben werden wie nicht fragmentierte Formulare. Das heißt, Sie können das Formular als PDF-, HTML- oder Formular-Guides wiedergeben (veraltet). Das Beispiel in diesem Abschnitt rendert ein Formular, das auf Fragmenten basiert, als interaktives PDF-Formular. (Siehe Rendern interaktiver PDF forms.)
Schreiben Sie den Formulardaten-Stream in den Client-Webbrowser
Wenn der Forms-Dienst ein Formular wiedergibt, wird ein Formulardatenstream zurückgegeben, den Sie in den Client-Webbrowser schreiben müssen. Beim Schreiben in den Client-Webbrowser ist das Formular für den Benutzer sichtbar.
Siehe auch
Wiedergabe von Formularen basierend auf Fragmenten mithilfe der Java-API
Wiedergabe von Formularen basierend auf Fragmenten mithilfe der Webdienst-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Schnellstarts zur Forms Service-API
Rendern interaktiver PDF forms
Erstellen von Webanwendungen, die Forms rendern
Wiedergabe eines Formulars basierend auf Fragmenten 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.URI-Werte angeben
URLSpec
-Objekt, das URI-Werte mithilfe seines Konstruktors speichert.setApplicationWebRoot
-Methode des Objekts URLSpec
auf und übergeben Sie einen string -Wert, der den Webstamm der Anwendung darstellt.setContentRootURI
-Methode des Objekts URLSpec
auf und übergeben Sie einen Zeichenfolgenwert, der den URI-Wert für den Inhaltsstamm angibt. Stellen Sie sicher, dass sich der Formularentwurf und die Fragmente im Inhaltsstamm-URI befinden. Andernfalls gibt der Forms-Dienst eine Ausnahme aus. Um auf das Repository zu verweisen, geben Sie repository://
an.setTargetURL
-Methode des Objekts auf und übergeben Sie einen Zeichenfolgenwert, der den Ziel-URL-Wert angibt, an den die Formulardaten gesendet werden. URLSpec
Wenn Sie die Ziel-URL im Formularentwurf definieren, können Sie eine leere Zeichenfolge übergeben. Sie können auch die URL angeben, an die ein Formular gesendet wird, um Berechnungen durchzuführen.Formular wiedergeben
Rufen Sie die renderPDFForm
-Methode des Objekts FormsServiceClient
auf und übergeben Sie die folgenden Werte:
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
.com.adobe.idp.Document
-Objekt, das Daten enthält, die mit dem Formular zusammengeführt werden sollen. Wenn Sie keine Daten zusammenführen möchten, übergeben Sie ein leeres com.adobe.idp.Document
-Objekt.PDFFormRenderSpec
-Objekt, das Laufzeitoptionen speichert.URLSpec
-Objekt, das URI-Werte enthält, die vom Forms-Dienst benötigt werden, um ein Formular basierend auf Fragmenten wiederzugeben.java.util.HashMap
-Objekt, das Dateianlagen speichert. Dies ist ein optionaler Parameter. Sie können null
angeben, wenn Sie keine Dateien an das Formular anhängen möchten.Die renderPDFForm
-Methode gibt ein FormsResult
-Objekt zurück, das einen Formulardatenstream enthält, der in den Client-Webbrowser geschrieben werden muss.
Schreiben Sie den Formulardaten-Stream in den Client-Webbrowser
com.adobe.idp.Document
-Objekt, indem Sie die FormsResult
-Methode des Objekts "s getOutputContent
aufrufen.com.adobe.idp.Document
ab, indem Sie dessen Methode getContentType
aufrufen.javax.servlet.http.HttpServletResponse
fest, indem Sie seine setContentType
-Methode aufrufen und den Inhaltstyp des Objekts com.adobe.idp.Document
übergeben.javax.servlet.ServletOutputStream
-Objekt, das zum Schreiben des Formulardatenstreams in den Client-Webbrowser durch Aufrufen der javax.servlet.http.HttpServletResponse
-Methode des Objekts getOutputStream
verwendet wird.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
Rendern von Forms basierend auf Fragmenten
Schnellstart (SOAP-Modus): Wiedergabe eines Formulars basierend auf Fragmenten mithilfe der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Wiedergabe eines Formulars basierend auf Fragmenten mithilfe der Forms-API (Webdienst):
Projektdateien einschließen
Erstellen eines Forms Client-API-Objekts
Erstellen Sie ein FormsService
-Objekt und legen Sie Authentifizierungswerte fest.
URI-Werte angeben
URLSpec
-Objekt, das URI-Werte mithilfe des zugehörigen Konstruktors speichert.setApplicationWebRoot
-Methode des Objekts URLSpec
auf und übergeben Sie einen string -Wert, der den Webstamm der Anwendung darstellt.setContentRootURI
-Methode des Objekts URLSpec
auf und übergeben Sie einen Zeichenfolgenwert, der den URI-Wert für den Inhaltsstamm angibt. Stellen Sie sicher, dass sich der Formularentwurf im Inhaltsstamm-URI befindet. Andernfalls gibt der Forms-Dienst eine Ausnahme aus. Um auf das Repository zu verweisen, geben Sie repository://
an.setTargetURL
-Methode des Objekts auf und übergeben Sie einen Zeichenfolgenwert, der den Ziel-URL-Wert angibt, an den die Formulardaten gesendet werden. URLSpec
Wenn Sie die Ziel-URL im Formularentwurf definieren, können Sie eine leere Zeichenfolge übergeben. Sie können auch die URL angeben, an die ein Formular gesendet wird, um Berechnungen durchzuführen.Formular wiedergeben
Rufen Sie die renderPDFForm
-Methode des Objekts FormsService
auf und übergeben Sie die folgenden Werte:
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
.BLOB
-Objekt, das Daten enthält, die mit dem Formular zusammengeführt werden sollen. Wenn Sie keine Daten zusammenführen möchten, übergeben Sie null
.PDFFormRenderSpec
-Objekt, das Laufzeitoptionen speichert. Beachten Sie, dass die Option PDF mit Tags nicht festgelegt werden kann, wenn das Eingabedokument ein PDF-Dokument ist. Wenn es sich bei der Eingabedatei um eine XDP-Datei handelt, kann die getaggte PDF-Option festgelegt werden.URLSpec
-Objekt, das für den Forms-Dienst erforderliche URI-Werte enthält.java.util.HashMap
-Objekt, das Dateianlagen speichert. Dies ist ein optionaler Parameter. Sie können null
angeben, wenn Sie keine Dateien an das Formular anhängen möchten.com.adobe.idp.services.holders.BLOBHolder
-Objekt, das von der -Methode ausgefüllt wird. Dieser Parameter wird zum Speichern des wiedergegebenen Formulars verwendet.javax.xml.rpc.holders.LongHolder
-Objekt, das von der -Methode ausgefüllt wird. Dieses Argument speichert die Anzahl der Seiten im Formular.javax.xml.rpc.holders.StringHolder
-Objekt, das von der -Methode ausgefüllt wird. Dieses Argument speichert den Gebietsschemawert.com.adobe.idp.services.holders.FormsResultHolder
-Objekt, das die Ergebnisse dieses Vorgangs enthält.Die renderPDFForm
-Methode füllt das com.adobe.idp.services.holders.FormsResultHolder
-Objekt, das als letzter Argumentwert übergeben wird, mit einem Formulardatenstream, der in den Client-Webbrowser geschrieben werden muss.
Schreiben Sie den Formulardaten-Stream in den Client-Webbrowser
FormResult
-Objekt, indem Sie den Wert des com.adobe.idp.services.holders.FormsResultHolder
-Datenelements des Objekts value
abrufen.BLOB
-Objekt, das Formulardaten enthält, indem Sie die getOutputContent
-Methode des Objekts FormsResult
aufrufen.BLOB
ab, indem Sie dessen Methode getContentType
aufrufen.javax.servlet.http.HttpServletResponse
fest, indem Sie seine setContentType
-Methode aufrufen und den Inhaltstyp des Objekts BLOB
übergeben.javax.servlet.ServletOutputStream
-Objekt, das zum Schreiben des Formulardatenstreams in den Client-Webbrowser durch Aufrufen der javax.servlet.http.HttpServletResponse
-Methode des Objekts getOutputStream
verwendet wird.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