Zusammenstellen eines Formularentwurfs, der mithilfe von Fragmenten zusammengestellt wurde

Sie können einen Formularentwurf basierend auf mehreren Fragmenten zusammenstellen, der an den Forms-Service übergeben wird. Verwenden Sie zum Zusammenführen mehrerer Fragmente den Assembler-Service. Ein Beispiel für die Verwendung des Assembler-Services zum Erstellen eines Formularentwurfs, der von anderen Forms-Services (dem Ausgabe-Service) verwendet wird, finden Sie unter Erstellen von PDF-Dokumenten mithilfe von Fragmenten. Anstatt den Ausgabe-Service zu verwenden, können Sie denselben Workflow mit dem Forms-Service durchführen.

Bei Verwendung des Assembler-Services ü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-Service referenziert. Der Formularentwurf wurde jedoch nicht von Assembler zusammengestellt. Er wurde in Designer erstellt.

NOTE
Weitere Informationen zum Forms-Service finden Sie in der Service-Referenz für AEM Forms.
NOTE
Weitere Informationen zum Erstellen eines Web-basierten Programms, das auf Fragmenten basierende Formulare wiedergibt, finden Sie unter Erstellen von Web-Programmen, die Formulare wiedergeben.

Zusammenfassung der Schritte

Führen Sie die folgenden Aufgaben aus, um ein auf Fragmenten basierendes Formular wiederzugeben:

  1. Schließen Sie Projektdateien ein.
  2. Erstellen Sie ein Forms-Client-API-Objekt.
  3. Geben Sie URI-Werte an.
  4. Geben Sie das Formular wieder.
  5. Schreiben Sie den Formular-Datenstrom in den Client-Webbrowser.

Projektdateien einschließen

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.

Angeben der URI-Werte

Um ein auf Fragmenten basierendes Formular erfolgreich wiederzugeben, müssen Sie sicherstellen, dass der Forms-Service 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 mit den Namen „FooterUS.xdp“ und „FooterCanada.xdp“. In diesem Fall muss der Forms-Service alle drei XDP-Dateien finden 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 ablegen. Alternativ können Sie alle XDP-Dateien an demselben Speicherort platzieren. Für diesen Abschnitt wird davon ausgegangen, dass sich alle XDP-Dateien im AEM Forms-Repository befinden. Informationen zum Platzieren von XDP-Dateien im AEM Forms-Repository finden Sie unter Schreiben von Ressourcen.

Beim Rendern eines Formulars, das auf Fragmenten basiert, dürfen Sie nur das Formular selbst und nicht die Fragmente referenzieren. Sie müssen beispielsweise auf „PO.xdp“ verweisen, jedoch nicht auf „FooterUS.xdp“ oder „FooterCanada.xdp“. Stellen Sie sicher, dass Sie die Fragmente an einer Stelle ablegen, an der der Forms-Service sie finden kann.

Rendern des Formulars

Ein auf Fragmenten basierendes Formular kann auf die gleiche Weise wie nicht fragmentierte Formulare gerendert werden. Das heißt, Sie können das Formular als PDF-, HTML- oder Formular-Guides (veraltet) rendern. Im Beispiel in diesem Abschnitt wird ein Formular, das auf Fragmenten basiert, als interaktives PDF-Formular gerendert. (Weitere Informationen finden Sie unter Rendern interaktiver PDF-Formulare.)

Schreiben des Formulardatentroms in den Client-Webbrowser

Wenn der Forms-Service ein Formular rendert, wird ein Formulardatenstrom zurückgegeben, den Sie in den Client-Webbrowser schreiben müssen. Sobald das Formular in den Client-Webbrowser geschrieben wurde, ist es für den Benutzer sichtbar.

Siehe auch

Rendern von auf Fragmenten basierenden Formularen mithilfe der Java-API

Wiedergabe von Formularen, die auf Fragmenten basieren, mithilfe der Webservice-API

Einbeziehung von AEM Forms Java-Bibliotheksdateien

Verbindungseigenschaften festlegen

Schnellstart mit der Forms Service-API

Rendern interaktiver PDF-Formulare

Erstellen von Web-Programmen, die Formulare wiedergeben

Rendern von auf Fragmenten basierenden Formularen mithilfe der Java-API

Rendern eines auf Fragmenten basierenden Formulars mithilfe der Forms API (Java):

  1. Projektdateien einschließen

    Fügen Sie Client-JAR-Dateien wie „adobe-forms-client.jar“ in den Klassenpfad Ihres Java-Projekts ein.

  2. Erstellen eines Forms Client-API-Objekts

    • Erstellen Sie ein ServiceClientFactory-Objekt, das Verbindungseigenschaften enthält.
    • Erstellen Sie ein FormsServiceClient-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory-Objekt übergeben.
  3. Angeben der URI-Werte

    • Erstellen Sie ein URLSpec-Objekt, das URI-Werte speichert, indem Sie seinen Konstruktor verwenden.
    • Rufen Sie die Methode setApplicationWebRoot des URLSpec-Objekts auf und übergeben Sie einen Zeichenfolgenwert, der den Web-Stamm des Programms darstellt.
    • Rufen Sie die Methode setContentRootURI des URLSpec-Objekts auf und übergeben Sie einen Zeichenfolgenwert, der den URI-Wert des Inhaltsstamms angibt. Stellen Sie sicher, dass sich der Formularentwurf und die Fragmente im URI des Inhaltsstamms befinden. Andernfalls löst der Forms-Service eine Ausnahme aus. Um auf das Repository zu verweisen, geben Sie repository:// an.
    • Rufen Sie die Methode setTargetURL des URLSpec-Objekts auf und übergeben Sie einen Zeichenfolgenwert, der den Ziel-URL-Wert angibt, an den die Formulardaten gesendet werden. Falls Sie die Ziel-URL im Formularentwurf definieren, können Sie auch eine leere Zeichenfolge übergeben. Sie können auch die URL angeben, an die ein Formular gesendet wird, um Berechnungen durchzuführen.
  4. Wiedergeben des Formulars

    Rufen Sie die Methode renderPDFForm des FormsServiceClient-Objekts auf und übergeben Sie die folgenden Werte:

    • Ein Zeichenfolgenwert, der den Namen des Formularentwurfs einschließlich der Dateinamenerweiterung angibt. Wenn Sie auf einen Formularentwurf verweisen, der Teil eines Forms-Programms ist, stellen Sie sicher, dass Sie den vollständigen Pfad angeben, z. B. Applications/FormsApplication/1.0/FormsFolder/Loan.xdp.
    • Ein 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.
    • Ein PDFFormRenderSpec-Objekt, das Laufzeitoptionen speichert.
    • Ein URLSpec-Objekt, das URI-Werte enthält, die der Forms-Service benötigt, um ein Formular basierend auf Fragmenten zu rendern.
    • Ein java.util.HashMap-Objekt, das Dateianlagen speichert. Dies ist ein optionaler Parameter, für den Sie null angeben können, wenn Sie keine Dateien an das Formular anhängen möchten.

    Die Methode renderPDFForm gibt ein FormsResult-Objekt zurück, das einen Formulardaten-Stream enthält, der in den Client-Webbrowser geschrieben werden muss.

  5. Schreiben des Formulardaten-Streams in den Client-Webbrowser

    • Erstellen Sie ein com.adobe.idp.Document-Objekt, indem Sie die Methode getOutputContent des FormsResult-Objekts aufrufen.
    • Ermitteln Sie den Content-Typ des com.adobe.idp.Document-Objekts, indem Sie seine Methode getContentType aufrufen.
    • Legen Sie den Content-Typ des javax.servlet.http.HttpServletResponse-Objekts fest, indem Sie seine Methode setContentType aufrufen und den Content-Typ des com.adobe.idp.Document-Objekts übergeben.
    • Erstellen Sie ein javax.servlet.ServletOutputStream-Objekt, das zum Schreiben des Formulardaten-Streams in den Client-Webbrowser verwendet wird, indem Sie die Methode getOutputStream des javax.servlet.http.HttpServletResponse-Objekts aufrufen.
    • Erstellen Sie ein java.io.InputStream-Objekt, indem Sie die getInputStream-Methode des com.adobe.idp.Document-Objekts aufrufen.
    • Erstellen Sie ein Byte-Array, das mit dem Formulardatenstrom gefüllt wird, indem Sie die read-Methode des InputStream-Objekts aufrufen und ihr das Byte-Array als Argument übergeben.
    • Rufen Sie die write-Methode des javax.servlet.ServletOutputStream-Objekts auf, um den Formulardatenstrom an den Client-Webbrowser zu senden. Übergeben Sie das Byte-Array an die Methode write.