Übergeben von Dokumenten an den Forms-Service passing-documents-to-the-formsservice

Die Beispiele in diesem Dokument gelten nur für eine AEM Forms on JEE-Umgebung.

Der AEM Forms-Service gibt interaktive PDF-Formulare an Client-Geräte aus, in der Regel Webbrowser, um Informationen von Benutzern zu erfassen. Ein interaktives PDF-Formular basiert auf einem Formularentwurf, der normalerweise in Designer erstellt und als XDP-Datei gespeichert wird. Was AEM Forms betrifft, können Sie ein com.adobe.idp.Document-Objekt, das den Formularentwurf enthält, an den Forms-Service übergeben. Der Forms-Dienst rendert dann den Formularentwurf, der sich im com.adobe.idp.Document-Objekt befindet.

Ein Vorteil der Übergabe eines com.adobe.idp.Document-Objekts an den Forms-Service ist, dass andere Service-Vorgänge eine com.adobe.idp.Document-Instanz zurückgeben. Das heißt, Sie können eine com.adobe.idp.Document-Instanz aus einem anderen Service-Vorgang abrufen und rendern. Angenommen, eine XDP-Datei wird in einem Content Services-Knoten (veraltet) gespeichert, der /Company Home/Form Designs heißt, wie in der folgenden Illustration dargestellt.

Sie können Loan.xdp programmgesteuert von Content Services (veraltet) abrufen und die XDP-Datei in einem com.adobe.idp.Document-Objekt an den Forms-Service übergeben.

NOTE
Weitere Informationen über den Forms-Service finden Sie in der Service-Referenz für AEM Forms.

Zusammenfassung der Schritte summary-of-steps

Führen Sie die folgenden Aufgaben aus, um ein Dokument aus Content Services (veraltet) an den Forms-Service zu übergeben:

  1. Schließen Sie Projektdateien ein.
  2. Erstellen Sie ein Forms- und ein Document Management Client-API-Objekt.
  3. Rufen Sie den Formularentwurf aus Content Services ab (veraltet).
  4. Geben Sie das interaktive PDF-Formular wieder.
  5. Führen Sie eine Aktion mit dem Formulardaten-Stream aus.

Projektdateien einbeziehen

Schließen 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 Web-Services verwenden, schließen Sie die Proxy-Dateien ein.

Erstellen eines Forms- und eines Document Management Client-API-Objekts

Bevor Sie einen Forms-Service-API-Vorgang programmgesteuert durchführen können, erstellen Sie ein Forms-Client-API-Objekt. Da mit diesem Workflow eine XDP-Datei aus Content Services (veraltet) abgerufen wird, erstellen Sie ein Document Management-API-Objekt.

Abrufen des Formularentwurfs aus Content Services (veraltet)

Rufen Sie die XDP-Datei aus Content Services (veraltet) ab, indem Sie die Java- oder Webservice-API verwenden. Die XDP-Datei wird innerhalb einer com.adobe.idp.Document-Instanz (oder BLOB-Instanz, wenn Sie Web-Services verwenden) zurückgegeben. Sie können dann die com.adobe.idp.Document-Instanz an den Forms-Service übergeben.

Wiedergeben eines interaktiven PDF-Formulars

Um ein interaktives Formular zu rendern, übergeben Sie die com.adobe.idp.Document-Instanz, die von Content Services (veraltet) an den Forms-Service zurückgegeben wurde.

NOTE
Sie können ein com.adobe.idp.Document, das den Formularentwurf enthält, an den Forms-Service übergeben. Zwei neue Methoden namens renderPDFForm2 und renderHTMLForm2 akzeptieren com.adobe.idp.Document-Objekt, das einen Formularentwurf enthält.

Ausführen einer Aktion mit dem Formulardaten-Stream

Je nach Art des Client-Programms können Sie das Formular in einen Client-Webbrowser schreiben oder das Formular als PDF-Datei speichern. Bei einem Web-basierten Programm wird das Formular normalerweise in den Webbrowser geschrieben. Ein Desktop-Programm hingegen speichert das Formular in der Regel als PDF-Datei.

Siehe auch

Einbeziehung von AEM Forms Java-Bibliotheksdateien

Verbindungseigenschaften festlegen

Schnellstart mit der Forms Service-API

Übergeben von Dokumenten an den Forms-Service mithilfe der Java-API pass-documents-to-the-forms-service-using-the-java-api

Übergeben Sie ein Dokument, das von Content Services (veraltet) mithilfe der Forms-Service- und Content Services-API (veraltet) erhalten wurde:

  1. Projektdateien einschließen

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

  2. Erstellen eines Forms- und eines Document Management Client-API-Objekts

    • Erstellen Sie ein ServiceClientFactory-Objekt, das Verbindungseigenschaften enthält. (Siehe Einstellung von Verbindungseigenschaften.)
    • Erstellen Sie ein FormsServiceClient-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory-Objekt übergeben.
    • Erstellen Sie ein DocumentManagementServiceClientImpl-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory-Objekt übergeben.
  3. Abrufen des Formularentwurfs aus Content Services (nicht mehr unterstützt)

    Rufen Sie die Methode retrieveContent des DocumentManagementServiceClientImpl-Objekts auf und übergeben Sie die folgenden Werte:

    • Ein Zeichenfolgewert, der den Speicher angibt, dem der Inhalt hinzugefügt wird. Der Standardspeicherort ist SpacesStore. Dieser Wert ist ein obligatorischer Parameter.
    • Ein Zeichenfolgenwert, der den vollständig qualifizierten Pfad des abzurufenden Inhalts angibt (z. B. /Company Home/Form Designs/Loan.xdp). Dieser Wert ist ein obligatorischer Parameter.
    • Ein Zeichenfolgenwert, der die Version angibt. Dieser Wert ist ein optionaler Parameter, und Sie können auch eine leere Zeichenfolge übergeben. In diesem Fall wird die neueste Version abgerufen.

    Die retrieveContent-Methode gibt ein CRCResult-Objekt zurück, das die XDP-Datei enthält. Sie können eine com.adobe.idp.Document-Instanz erhalten, indem Sie die Methode getDocument des CRCResult-Objekts aufrufen.

  4. Wiedergeben eines interaktiven PDF-Formulars

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

    • Ein com.adobe.idp.Document-Objekt, das den Formularentwurf enthält, der von Content Services (veraltet) abgerufen wurde.
    • 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. Dieser Wert ist ein optionaler Parameter, für den Sie null angeben können, wenn Sie keine Laufzeitoptionen angeben möchten.
    • Ein URLSpec-Objekt, das URI-Werte enthält. Dieser Wert ist ein optionaler Parameter, für den Sie auch null angeben können.
    • Ein java.util.HashMap-Objekt, das Dateianlagen speichert. Dieser Wert 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. Ausführen einer Aktion mit dem Formulardaten-Stream

    • 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.
    • Sie können ein Byte-Array erstellen und es mit dem Formulardaten-Stream füllen, indem Sie die Methode read des InputStream-Objekts aufrufen. Übergeben Sie das Byte-Array als Argument.
    • Rufen Sie die Methode write des javax.servlet.ServletOutputStream-Objekts auf, um den Formulardaten-Stream an den Client-Webbrowser zu senden. Übergeben Sie das Byte-Array an die Methode write.

Siehe auch

Kurzanleitung (SOAP-Modus): Übergeben von Dokumenten an den Forms-Service mithilfe der Java-API

Einbeziehung von AEM Forms Java-Bibliotheksdateien

Verbindungseigenschaften festlegen

Übergeben von Dokumenten an den Forms-Service mithilfe der Webservice-API pass-documents-to-the-forms-service-using-the-web-service-api

Übergeben Sie ein Dokument, das von Content Services (veraltet) mithilfe der Forms-Service- und Content Services-API (veraltet) abgerufen wurde:

  1. Projektdateien einschließen

    Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Da dieses Client-Programm zwei AEM Forms-Services aufruft, erstellen Sie zwei Service-Verweise. Verwenden Sie die folgende WSDL-Definition für den Service-Verweis, der mit dem Forms-Service verknüpft ist: http://localhost:8080/soap/services/FormsService?WSDL&lc_version=9.0.1.

    Verwenden Sie die folgende WSDL-Definition für die Service-Referenz, die mit dem Document Management-Service verknüpft ist: http://localhost:8080/soap/services/DocumentManagementService?WSDL&lc_version=9.0.1.

    Da der Datentyp BLOB für beide Service-Verweise verwendet wird, müssen Sie den Datentyp BLOB qualifizieren, wenn Sie ihn verwenden. Im entsprechenden Webservice-Schnellstart sind alle BLOB-Instanzen vollständig qualifiziert.

    note note
    NOTE
    Ersetzen Sie localhost durch die IP-Adresse des Servers, der AEM Forms hostet.
  2. Erstellen eines Forms- und eines Document Management Client-API-Objekts

    • Erstellen Sie ein FormsServiceClient-Objekt, indem Sie seinen Standardkonstruktor verwenden.

    • Erstellen Sie mithilfe des System.ServiceModel.EndpointAddress-Konstruktors ein FormsServiceClient.Endpoint.Address-Objekt. Übergeben Sie einen Zeichenfolgenwert mit der WSDL an den AEM Forms-Service (z. B. http://localhost:8080/soap/services/FormsService?WSDL). Sie müssen das lc_version-Attribut nicht verwenden. Dieses Attribut wird verwendet, wenn Sie einen Service-Verweis erstellen.)

    • Erstellen Sie ein System.ServiceModel.BasicHttpBinding-Objekt, indem Sie den Wert des FormsServiceClient.Endpoint.Binding-Felds abrufen. Wandeln Sie den Rückgabewert in BasicHttpBinding um.

    • Legen Sie das MessageEncoding-Feld des System.ServiceModel.BasicHttpBinding-Objekts auf WSMessageEncoding.Mtom fest. Dieser Wert stellt sicher, dass MTOM verwendet wird.

    • Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Schritte ausführen:

      • Weisen Sie dem Feld FormsServiceClient.ClientCredentials.UserName.UserName den AEM Forms-Benutzernamen zu.
      • Weisen Sie dem Feld FormsServiceClient.ClientCredentials.UserName.Password den entsprechenden Passwortwert zu.
      • Weisen Sie dem Feld BasicHttpBindingSecurity.Transport.ClientCredentialType den konstanten Wert HttpClientCredentialType.Basic zu.
    • Weisen Sie den konstanten Wert BasicHttpSecurityMode.TransportCredentialOnly dem Feld BasicHttpBindingSecurity.Security.Mode zu.

    note note
    NOTE
    Wiederholen Sie diese Schritte für den DocumentManagementServiceClientService-Client.
  3. Abrufen des Formularentwurfs aus Content Services (nicht mehr unterstützt)

    Rufen Sie den Inhalt ab, indem Sie die retrieveContent-Methode des DocumentManagementServiceClient-Objekts aufrufen und die folgenden Werte übergeben:

    • Ein Zeichenfolgewert, der den Speicher angibt, dem der Inhalt hinzugefügt wird. Der Standardspeicherort ist SpacesStore. Dieser Wert ist ein obligatorischer Parameter.
    • Ein Zeichenfolgenwert, der den vollständig qualifizierten Pfad des abzurufenden Inhalts angibt (z. B. /Company Home/Form Designs/Loan.xdp). Dieser Wert ist ein obligatorischer Parameter.
    • Ein Zeichenfolgenwert, der die Version angibt. Dieser Wert ist ein optionaler Parameter, und Sie können auch eine leere Zeichenfolge übergeben. In diesem Fall wird die neueste Version abgerufen.
    • Der Ausgabeparameter einer Kennzeichenfolge, der den Wert des Browse-Links speichert.
    • Ein BLOB-Ausgabeparameter, der den Inhalt speichert. Sie können diesen Ausgabeparameter verwenden, um den Inhalt abzurufen.
    • Ein ServiceReference1.MyMapOf_xsd_string_To_xsd_anyType-Ausgabeparameter, der Inhaltsattribute speichert.
    • Ein CRCResult-Ausgabeparameter. Anstatt dieses Objekt zu verwenden, können Sie den BLOB-Ausgabeparameter zum Abrufen des Inhalts verwenden.
  4. Wiedergeben eines interaktiven PDF-Formulars

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

    • Ein BLOB-Objekt, das den Formularentwurf enthält, der von Content Services (veraltet) abgerufen wurde.
    • Ein BLOB-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 BLOB-Objekt.
    • Ein PDFFormRenderSpec-Objekt, das Laufzeitoptionen speichert. Dieser Wert ist ein optionaler Parameter, für den Sie null angeben können, wenn Sie keine Laufzeitoptionen angeben möchten.
    • Ein URLSpec-Objekt, das URI-Werte enthält. Dieser Wert ist ein optionaler Parameter, für den Sie auch null angeben können.
    • Ein Map-Objekt, das Dateianlagen speichert. Dieser Wert ist ein optionaler Parameter, für den Sie null angeben können, wenn Sie keine Dateien an das Formular anhängen möchten.
    • Ein langer Ausgabeparameter, der zum Speichern der Seitenzahl verwendet wird.
    • Ein Ausgabeparameter der Kennzeichenfolge, der zum Speichern des Gebietsschemawerts verwendet wird.
    • Ein FormsResult-Ausgabeparameter, der zum Speichern des interaktiven PDF-Formulars verwendet wird .

    Die renderPDFForm2-Methode gibt ein FormsResult-Objekt aus, das das interaktive PDF-Formular enthält.

  5. Ausführen einer Aktion mit dem Formulardaten-Stream

    • Erstellen Sie ein BLOB-Objekt, das Formulardaten enthält, indem Sie den Wert des outputContent-Feldes des FormsResult-Objekts abrufen.
    • Erstellen Sie ein System.IO.FileStream-Objekt, indem Sie seinen Konstruktor aufrufen. Übergeben Sie einen Kennzeichenfolgewert, der den Dateispeicherort des interaktiven PDF-Dokuments und den Modus angibt, in dem die Datei geöffnet werden soll.
    • Erstellen Sie ein Byte-Array, das den Inhalt des BLOB-Objekts speichert, das aus dem FormsResult-Objekt abgerufen wurde. Füllen Sie das Byte-Array, indem Sie den Wert des BLOB-Datenelements des Objekts MTOM abrufen.
    • Erstellen Sie ein System.IO.BinaryWriter-Objekt, indem Sie seinen Konstruktor aufrufen und das System.IO.FileStream-Objekt übergeben.
    • Schreiben Sie den Inhalt des Byte-Arrays in eine PDF-Datei, indem Sie die Methode Write des System.IO.BinaryWriter-Objekts aufrufen und das Byte-Array übergeben.

Siehe auch

AEM Forms mithilfe von MTOM aufrufen

recommendation-more-help
51c6a92d-a39d-46d7-8e3e-2db9a31c06a2