Ü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.
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.
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.
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
Ü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
retrieveContentdesDocumentManagementServiceClientImpl-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 einCRCResult-Objekt zurück, das die XDP-Datei enthält. Sie können einecom.adobe.idp.Document-Instanz erhalten, indem Sie die MethodegetDocumentdesCRCResult-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
renderPDFForm2desFormsServiceClient-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 Sienullangeben 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 auchnullangeben können. - Ein
java.util.HashMap-Objekt, das Dateianlagen speichert. Dieser Wert ist ein optionaler Parameter, für den Sienullangeben können, wenn Sie keine Dateien an das Formular anhängen möchten.
Die Methode
renderPDFFormgibt 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
- Erstellen Sie ein
com.adobe.idp.Document-Objekt, indem Sie die MethodegetOutputContentdesFormsResult-Objekts aufrufen. - Ermitteln Sie den Content-Typ des
com.adobe.idp.Document-Objekts, indem Sie seine MethodegetContentTypeaufrufen. - Legen Sie den Content-Typ des
javax.servlet.http.HttpServletResponse-Objekts fest, indem Sie seine MethodesetContentTypeaufrufen 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 MethodegetOutputStreamdesjavax.servlet.http.HttpServletResponse-Objekts aufrufen. - Erstellen Sie ein
java.io.InputStream-Objekt, indem Sie diegetInputStream-Methode 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
readdesInputStream-Objekts aufrufen. Übergeben Sie das Byte-Array als Argument. - Rufen Sie die Methode
writedesjavax.servlet.ServletOutputStream-Objekts auf, um den Formulardaten-Stream an den Client-Webbrowser zu senden. Übergeben Sie das Byte-Array an die Methodewrite.
- Erstellen Sie ein
Siehe auch
Kurzanleitung (SOAP-Modus): Übergeben von Dokumenten an den Forms-Service mithilfe der Java-API
Ü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 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
BLOBfür beide Service-Verweise verwendet wird, müssen Sie den DatentypBLOBqualifizieren, wenn Sie ihn verwenden. Im entsprechenden Webservice-Schnellstart sind alleBLOB-Instanzen vollständig qualifiziert.note note NOTE Ersetzen Sie localhostdurch die IP-Adresse des Servers, der AEM Forms hostet. -
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 mit der WSDL an den AEM Forms-Service (z. B.http://localhost:8080/soap/services/FormsService?WSDL). Sie müssen daslc_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 desFormsServiceClient.Endpoint.Binding-Felds abrufen. Wandeln Sie den Rückgabewert inBasicHttpBindingum. -
Legen Sie das
MessageEncoding-Feld desSystem.ServiceModel.BasicHttpBinding-Objekts aufWSMessageEncoding.Mtomfest. 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.UserNameden AEM Forms-Benutzernamen zu. - Weisen Sie dem Feld
FormsServiceClient.ClientCredentials.UserName.Passwordden entsprechenden Passwortwert zu. - Weisen Sie dem Feld
BasicHttpBindingSecurity.Transport.ClientCredentialTypeden konstanten WertHttpClientCredentialType.Basiczu.
- Weisen Sie dem Feld
-
Weisen Sie den konstanten Wert
BasicHttpSecurityMode.TransportCredentialOnlydem FeldBasicHttpBindingSecurity.Security.Modezu.
note note NOTE Wiederholen Sie diese Schritte für den DocumentManagementServiceClientService-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
renderPDFForm2desFormsServiceClient-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 Sienullangeben 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 auchnullangeben können. - Ein
Map-Objekt, das Dateianlagen speichert. Dieser Wert ist ein optionaler Parameter, für den Sienullangeben 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 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 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 demFormsResult-Objekt abgerufen wurde. Füllen Sie das Byte-Array, indem Sie den Wert desBLOB-Datenelements des ObjektsMTOMabrufen. - 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
WritedesSystem.IO.BinaryWriter-Objekts aufrufen und das Byte-Array übergeben.
- Erstellen Sie ein
Siehe auch
AEM Forms mithilfe von MTOM aufrufen