Las aplicaciones basadas en la Web que permiten a los usuarios rellenar formularios interactivos requieren que los datos se envíen de nuevo al servidor. Con el servicio Forms, puede recuperar los datos de formulario que el usuario introdujo en un formulario interactivo. A continuación, puede pasar los datos del formulario a otra operación del servicio AEM Forms y crear un documento PDF utilizando los datos.
Antes de leer este contenido, se recomienda tener una comprensión sólida de la gestión de los formularios enviados. Los conceptos como la relación entre un diseño de formulario y los datos XML enviados se tratan en Gestión de Forms enviados.
Considere el siguiente flujo de trabajo que incluye tres servicios de AEM Forms:
El diagrama siguiente proporciona una representación visual de este flujo de trabajo.
Una vez que el usuario envía el formulario desde el explorador web del cliente, el documento PDF no interactivo se almacena en Content Services (obsoleto). La siguiente ilustración muestra un documento PDF almacenado en Content Services (obsoleto).
Para crear un documento PDF no interactivo con datos XML enviados y almacenarlos en el documento PDF en Content Services (obsoleto), realice las siguientes tareas:
Incluir archivos de proyecto
Incluya los archivos necesarios en el proyecto de desarrollo. Si está creando una aplicación cliente mediante Java, incluya los archivos JAR necesarios. Si utiliza servicios web, asegúrese de incluir los archivos proxy.
Crear objetos de Forms, Output y Document Management
Antes de realizar una operación de API de servicio de Forms mediante programación, cree un objeto de API de cliente de Forms. Del mismo modo, como este flujo de trabajo invoca los servicios de Output y Document Management, cree un objeto de API de cliente de salida y un objeto de API de cliente de Document Management.
Recuperación de datos de formulario mediante el servicio Forms
Recupere los datos de formulario enviados al servicio Forms. Puede procesar los datos enviados para satisfacer los requisitos empresariales. Por ejemplo, puede almacenar datos de formulario en una base de datos de empresa. Sin embargo, para crear un documento PDF no interactivo, los datos del formulario se pasan al servicio Output .
Cree un documento PDF no interactivo mediante el servicio Output .
Utilice el servicio Output para crear un documento PDF no interactivo basado en un diseño de formulario y en datos de formulario XML. En el flujo de trabajo, los datos del formulario se recuperan del servicio Forms.
Guarde el formulario PDF en Content Services (desaprobada) mediante el servicio de gestión de documentos
Utilice la API de servicio de gestión de documentos para almacenar un documento PDF en Content Services (obsoleto).
Consulte también
Inclusión de archivos de biblioteca Java de AEM Forms
Configuración de las propiedades de conexión
Inicio rápido de la API del servicio de Forms
Cree un documento PDF con los datos XML enviados mediante la API de Forms, salida y gestión de documentos (Java):
Incluir archivos de proyecto
Incluya archivos JAR del cliente, como adobe-forms-client.jar, adobe-output-client.jar y adobe-contentservices-client.jar en la ruta de clase de su proyecto Java.
Crear objetos de Forms, Output y Document Management
ServiceClientFactory
que contenga propiedades de conexión.FormsServiceClient
utilizando su constructor y pasando el objeto ServiceClientFactory
.OutputClient
utilizando su constructor y pasando el objeto ServiceClientFactory
.DocumentManagementServiceClientImpl
utilizando su constructor y pasando el objeto ServiceClientFactory
.Recuperación de datos de formulario mediante el servicio Forms
Invoque el método FormsServiceClient
del objeto processFormSubmission
y pase los siguientes valores:
com.adobe.idp.Document
que contiene los datos del formulario.CONTENT_TYPE
. Por ejemplo, para gestionar datos XML, especifique el siguiente valor de cadena para este parámetro: CONTENT_TYPE=text/xml
.HTTP_USER_AGENT
, como Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
.RenderOptionsSpec
que almacena opciones en tiempo de ejecución.El método processFormSubmission
devuelve un objeto FormsResult
que contiene los resultados del envío del formulario.
Determine si el servicio Forms ha terminado de procesar los datos del formulario invocando el método FormsResult
del objeto getAction
. Si este método devuelve el valor 0
, los datos están listos para procesarse.
Recupere los datos del formulario creando un objeto com.adobe.idp.Document
invocando el método FormsResult
del objeto getOutputContent
. (Este objeto contiene datos de formulario que se pueden enviar al servicio Output ).
Cree un objeto java.io.InputStream
invocando el constructor java.io.DataInputStream
y pasando el objeto com.adobe.idp.Document
.
Cree un objeto org.w3c.dom.DocumentBuilderFactory
llamando al método estático org.w3c.dom.DocumentBuilderFactory
del objeto newInstance
.
Cree un objeto org.w3c.dom.DocumentBuilder
invocando el método org.w3c.dom.DocumentBuilderFactory
del objeto newDocumentBuilder
.
Cree un objeto org.w3c.dom.Document
invocando el método org.w3c.dom.DocumentBuilder
del objeto parse
y pasando el objeto java.io.InputStream
.
Recupere el valor de cada nodo dentro del documento XML. Una forma de realizar esta tarea es crear un método personalizado que acepte dos parámetros: el objeto org.w3c.dom.Document
y el nombre del nodo cuyo valor desea recuperar. Este método devuelve un valor de cadena que representa el valor del nodo . En el ejemplo de código que sigue este proceso, este método personalizado se llama getNodeText
. Se muestra el cuerpo de este método.
Cree un documento PDF no interactivo mediante el servicio Output .
Cree un documento PDF invocando el método OutputClient
del objeto generatePDFOutput
y pasando los siguientes valores:
TransformationFormat
. Para generar un documento PDF, especifique TransformationFormat.PDF
.PDFOutputOptionsSpec
que contiene opciones de tiempo de ejecución de PDF.RenderOptionsSpec
que contiene opciones de procesamiento en tiempo de ejecución.com.adobe.idp.Document
que contiene el origen de datos XML que contiene los datos que se van a combinar con el diseño de formulario. Asegúrese de que el método getOutputContent
del objeto FormsResult
ha devuelto este objeto.generatePDFOutput
devuelve un objeto OutputResult
que contiene los resultados de la operación.OutputResult
del objeto getGeneratedDoc
. Este método devuelve una instancia com.adobe.idp.Document
que representa el documento PDF no interactivo.Guarde el formulario PDF en Content Services (desaprobada) mediante el servicio de gestión de documentos
Añada el contenido invocando el método DocumentManagementServiceClientImpl
del objeto storeContent
y pasando los siguientes valores:
SpacesStore
. Este valor es un parámetro obligatorio./Company Home/Test Directory
). Este valor es un parámetro obligatorio.MortgageForm.pdf
). Este valor es un parámetro obligatorio.{https://www.alfresco.org/model/content/1.0}content
. Este valor es un parámetro obligatorio.com.adobe.idp.Document
que representa el contenido. Este valor es un parámetro obligatorio.UTF-8
). Este valor es un parámetro obligatorio.UpdateVersionType
que especifica cómo administrar la información de versión (por ejemplo, UpdateVersionType.INCREMENT_MAJOR_VERSION
para incrementar la versión del contenido. ) Este valor es un parámetro obligatorio.java.util.List
que especifica aspectos relacionados con el contenido. Este valor es un parámetro opcional y puede especificar null
.java.util.Map
que almacena atributos de contenido.El método storeContent
devuelve un objeto CRCResult
que describe el contenido. Con un objeto CRCResult
, puede, por ejemplo, obtener el valor de identificador único del contenido. Para realizar esta tarea, invoque el método CRCResult
del objeto getNodeUuid
.
Consulte también
Inclusión de archivos de biblioteca Java de AEM Forms
Configuración de las propiedades de conexión