Übergeben von Dokumenten an den Forms-Service passing-documents-to-the-formsservice
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-Service gibt dann den Formularentwurf wieder, 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 von einem anderen Service-Vorgang erhalten und sie wiedergeben. Nehmen Sie zum Beispiel an, dass eine XDP-Datei in einem Knoten von Content Services (veraltet) mit dem Namen /Company Home/Form Designs
gespeichert ist, wie in der folgenden Abbildung gezeigt.
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.
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:
- Schließen Sie Projektdateien ein.
- Erstellen Sie ein Forms- und ein Document Management Client-API-Objekt.
- Rufen Sie den Formularentwurf aus Content Services ab (veraltet).
- Geben Sie das interaktive PDF-Formular wieder.
- Führen Sie eine Aktion mit dem Formulardaten-Stream aus.
Einschließen von Projektdateien
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 in einer com.adobe.idp.Document
-Instanz zurückgegeben (oder in einer BLOB
-Instanz, wenn Sie Web-Services verwenden). 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.
com.adobe.idp.Document
, das den Formularentwurf enthält, an den Forms-Service übergeben. Zwei neue Methoden namens renderPDFForm2
und renderHTMLForm2
akzeptieren ein 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:
-
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.
-
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 dasServiceClientFactory
-Objekt übergeben. - Erstellen Sie ein
DocumentManagementServiceClientImpl
-Objekt, indem Sie seinen Konstruktor verwenden und dasServiceClientFactory
-Objekt übergeben.
- Erstellen Sie ein
-
Abrufen des Formularentwurfs aus Content Services (nicht mehr unterstützt)
Rufen Sie die Methode
retrieveContent
desDocumentManagementServiceClientImpl
-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 Methode
retrieveContent
gibt einCRCResult
-Objekt zurück, das die XDP-Datei enthält. Sie können einecom.adobe.idp.Document
-Instanz erhalten, indem Sie die MethodegetDocument
desCRCResult
-Objekts aufrufen. - Ein Zeichenfolgewert, der den Speicher angibt, dem der Inhalt hinzugefügt wird. Der Standardspeicherort ist
-
Wiedergeben eines interaktiven PDF-Formulars
Rufen Sie die Methode
renderPDFForm2
desFormsServiceClient
-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 leerescom.adobe.idp.Document
-Objekt. - Ein
PDFFormRenderSpec
-Objekt, das Laufzeitoptionen speichert. Dieser Wert ist ein optionaler Parameter, für den Sienull
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 auchnull
angeben können. - Ein
java.util.HashMap
-Objekt, das Dateianlagen speichert. Dieser Wert ist ein optionaler Parameter, für den Sienull
angeben können, wenn Sie keine Dateien an das Formular anhängen möchten.
Die Methode
renderPDFForm
gibt einFormsResult
-Objekt zurück, das einen Formulardaten-Stream enthält, der in den Client-Webbrowser geschrieben werden muss. - Ein
-
Ausführen einer Aktion mit dem Formulardaten-Stream
- Sie können ein
com.adobe.idp.Document
-Objekt erstellen, indem Sie die MethodegetOutputContent
desFormsResult
-Objekts aufrufen. - Ermitteln Sie den Content-Typ des
com.adobe.idp.Document
-Objekts, indem Sie seine MethodegetContentType
aufrufen. - Legen Sie den Content-Typ des
javax.servlet.http.HttpServletResponse
-Objekts fest, indem Sie seine MethodesetContentType
aufrufen und den Content-Typ descom.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 MethodegetOutputStream
desjavax.servlet.http.HttpServletResponse
-Objekts aufrufen. - Sie können ein
java.io.InputStream
-Objekt erstellen, indem Sie die MethodegetInputStream
descom.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
desInputStream
-Objekts aufrufen. Übergeben Sie das Byte-Array als Argument. - Rufen Sie die Methode
write
desjavax.servlet.ServletOutputStream
-Objekts auf, um den Formulardaten-Stream an den Client-Webbrowser zu senden. Übergeben Sie das Byte-Array an die Methodewrite
.
- Sie können ein
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:
-
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 den Service-Verweis, der mit dem Document Management-Service verknüpft ist:
http://localhost:8080/soap/services/DocumentManagementService?WSDL&lc_version=9.0.1
.Da der
BLOB
-Datentyp für beide Service-Referenzen verwendet wird, müssen Sie denBLOB
-Datentyp vollständig qualifizieren, wenn Sie ihn verwenden. Im entsprechenden Webservice-Schnellstart sind alleBLOB
-Instanzen vollständig qualifiziert.note note NOTE Ersetzen localhost
* mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird. * -
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 einFormsServiceClient.Endpoint.Address
-Objekt. Übergeben Sie einen Zeichenfolgenwert, der die WSDL für den AEM Forms-Service angibt (z. B.http://localhost:8080/soap/services/FormsService?WSDL
). Das Attributlc_version
muss nicht verwendet werden. Dieses Attribut wird verwendet, wenn Sie einen Service-Verweis erstellen.) -
Erstellen Sie ein
System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts des FeldsFormsServiceClient.Endpoint.Binding
. Wandeln Sie den Rückgabewert inBasicHttpBinding
um. -
Legen Sie das
MessageEncoding
-Feld desSystem.ServiceModel.BasicHttpBinding
-Objekts aufWSMessageEncoding.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 WertHttpClientCredentialType.Basic
zu.
- Weisen Sie dem Feld
-
Weisen Sie dem Feld
BasicHttpBindingSecurity.Security.Mode
den konstanten WertBasicHttpSecurityMode.TransportCredentialOnly
zu.
note note NOTE Wiederholen Sie diese Schritte für die DocumentManagementServiceClient
* Service-Client. * -
-
Abrufen des Formularentwurfs aus Content Services (nicht mehr unterstützt)
Rufen Sie den Inhalt ab, indem Sie die
retrieveContent
-Methode desDocumentManagementServiceClient
-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 denBLOB
-Ausgabeparameter zum Abrufen des Inhalts verwenden.
- Ein Zeichenfolgewert, der den Speicher angibt, dem der Inhalt hinzugefügt wird. Der Standardspeicherort ist
-
Wiedergeben eines interaktiven PDF-Formulars
Rufen Sie die Methode
renderPDFForm2
desFormsServiceClient
-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 leeresBLOB
-Objekt. - Ein
PDFFormRenderSpec
-Objekt, das Laufzeitoptionen speichert. Dieser Wert ist ein optionaler Parameter, für den Sienull
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 auchnull
angeben können. - Ein
Map
-Objekt, das Dateianlagen speichert. Dieser Wert ist ein optionaler Parameter und Sie könnennull
angeben, 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 einFormsResult
-Objekt aus, das das interaktive PDF-Formular enthält. - Ein
-
Ausführen einer Aktion mit dem Formulardaten-Stream
- Erstellen Sie ein
BLOB
-Objekt, das Formulardaten enthält, indem Sie den Wert desoutputContent
-Feldes desFormsResult
-Objekts abrufen. - Erstellen Sie ein
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor verwenden. Ü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 demFormsResult
-Objekt abgerufen wurde. Füllen Sie das Byte-Array, indem Sie den Wert des DatenelementsMTOM
desBLOB
-Objekts abrufen. - Erstellen Sie ein
System.IO.BinaryWriter
-Objekt, indem Sie seinen Konstruktor aufrufen und dasSystem.IO.FileStream
-Objekt übergeben. - Schreiben Sie den Inhalt des Byte-Arrays in eine PDF-Datei, indem Sie die Methode
Write
desSystem.IO.BinaryWriter
-Objekts aufrufen und das Byte-Array übergeben.
- Erstellen Sie ein
Siehe auch
AEM Forms mithilfe von MTOM aufrufen