Los ejemplos de este documento solo son para AEM Forms en un entorno JEE.
El servicio Forms puede calcular los valores que un usuario introduce en un formulario y mostrar los resultados. Para calcular los datos del formulario, debe realizar dos tareas. En primer lugar, se crea un script de diseño de formulario que calcula los datos del formulario. Un diseño de formulario admite tres tipos de scripts. Un tipo de script se ejecuta en el cliente, otro se ejecuta en el servidor y el tercer tipo se ejecuta tanto en el servidor como en el cliente. El tipo de script que se describe en este tema se ejecuta en el servidor. Los cálculos del lado del servidor son compatibles con las transformaciones de HTML, PDF y Guía de formularios (obsoletas).
Como parte del proceso de diseño del formulario, puede utilizar cálculos y scripts para proporcionar una experiencia de usuario más rica. Los cálculos y las secuencias de comandos se pueden agregar a la mayoría de los campos y objetos de formulario. Cree una secuencia de comandos de diseño de formulario para realizar operaciones de cálculo con los datos que un usuario introduce en un formulario interactivo.
El usuario introduce valores en el formulario y hace clic en el botón Calcular para ver los resultados. El siguiente proceso describe una aplicación de ejemplo que permite a un usuario calcular datos:
GetLoanForm
.GetLoanForm
servlet procesa un formulario de préstamo. Este formulario contiene un script, campos interactivos, un botón de cálculo y un botón de envío.CalculateData
Servlet Java donde se ejecuta el script. El formulario se devuelve al usuario con los resultados del cálculo mostrados en el formulario.ProcessForm
que es responsable de recuperar los datos enviados. (Consulte Gestión de Forms enviados.)El diagrama siguiente muestra el flujo lógico de la aplicación.
En la tabla siguiente se describen los pasos de este diagrama.
Paso |
Descripción |
---|---|
1 |
El |
2 |
El |
3 |
El usuario introduce datos en campos interactivos y hace clic en el botón Calcular. El formulario se envía a |
4 |
El formulario se vuelve a procesar en el explorador web con los resultados del cálculo mostrados en el formulario. |
5 |
El usuario hace clic en el botón Enviar cuando los valores son satisfactorios. El formulario se enviará a otro servlet Java denominado |
Normalmente, un formulario enviado como contenido de PDF contiene scripts que se ejecutan en el cliente. Sin embargo, también se pueden ejecutar cálculos del lado del servidor. No se puede utilizar un botón Enviar para calcular scripts. En este caso, los cálculos no se ejecutan porque el servicio Forms considera que la interacción ha finalizado.
Para ilustrar el uso de una secuencia de comandos de diseño de formulario, esta sección examina un formulario interactivo simple que contiene una secuencia de comandos configurada para ejecutarse en el servidor. El diagrama siguiente muestra un diseño de formulario que contiene una secuencia de comandos que agrega valores que un usuario introduce en los dos primeros campos y muestra el resultado en el tercer campo.
A. Campo denominado NumericField1 B. Campo denominado NumericField2 C. Campo denominado NumericField3
La sintaxis de la secuencia de comandos en este diseño de formulario es la siguiente:
NumericField3 = NumericField2 + NumericField1
En este diseño de formulario, el botón Calcular es un botón de comando y la secuencia de comandos se encuentra en el Click
evento. Cuando un usuario introduce valores en los dos primeros campos (NumericField1 y NumericField2) y hace clic en el botón Calcular, el formulario se envía al servicio de Forms, donde se ejecuta la secuencia de comandos. El servicio Forms vuelve a procesar el formulario en el dispositivo cliente con los resultados del cálculo mostrados en el campo NumericField3.
Para obtener información sobre la creación de scripts de diseño de formulario, consulte Forms Designer.
Para obtener más información sobre el servicio Forms, consulte Referencia de servicios para AEM Forms.
Para calcular los datos del formulario, 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 un objeto de API de cliente de Forms
Para poder realizar mediante programación una operación de API de cliente de servicio de Forms, debe crear un cliente de servicio de Forms. Si utiliza la API de Java, cree un FormsServiceClient
objeto. Si utiliza la API del servicio web de Forms, cree un FormsServiceService
objeto.
Recuperar un formulario que contiene un script de cálculo
La API de cliente del servicio de Forms se utiliza para crear una lógica de aplicación que administra un formulario que contiene una secuencia de comandos configurada para ejecutarse en el servidor. El proceso es similar a la gestión de un formulario enviado. (Consulte Gestión de Forms enviados.)
Compruebe que el estado de procesamiento asociado al formulario enviado es 1
(Calculate)
, lo que significa que el servicio Forms está realizando una operación de cálculo en los datos del formulario y los resultados deben escribirse en el usuario. En este caso, se ejecuta automáticamente un script configurado para ejecutarse en el servidor.
Escribir el flujo de datos de formulario en el explorador web del cliente
Después de comprobar que el estado de procesamiento asociado a un formulario enviado es 1
, debe escribir los resultados de nuevo en el explorador web del cliente. Cuando se muestra el formulario, el valor calculado aparece en los campos correspondientes.
Consulte también
Incluir archivos de biblioteca Java de AEM Forms
Calcular datos de formulario mediante la API de Java
Calcular datos de formulario mediante la API de servicio web
Estableciendo propiedades de conexión
Inicios rápidos de la API del servicio Forms
Procesamiento de PDF forms interactivos
Crear aplicaciones web que procesen Forms
Calcular datos de formulario mediante la API de Forms (Java):
Incluir archivos de proyecto
Incluya archivos JAR de cliente, como adobe-forms-client.jar en la ruta de clase del proyecto Java.
Crear un objeto de API de cliente de Forms
ServiceClientFactory
que contiene las propiedades de conexión.FormsServiceClient
usando su constructor y pasando el objeto ServiceClientFactory
objeto.Recuperar un formulario que contiene un script de cálculo
Para recuperar datos de formulario que contengan un script de cálculo, cree un com.adobe.idp.Document
mediante su constructor e invocando al objeto javax.servlet.http.HttpServletResponse
del objeto getInputStream
dentro del constructor.
Invoque el FormsServiceClient
del objeto processFormSubmission
y pasar los siguientes valores:
com.adobe.idp.Document
que contiene los datos del formulario.CONTENT_TYPE
variable de entorno. Por ejemplo, para gestionar datos XML y de PDF, especifique el siguiente valor de cadena para este parámetro: CONTENT_TYPE=application/xml&CONTENT_TYPE=application/pdf
HTTP_USER_AGENT
valor del encabezado; por ejemplo, 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 processFormSubmission
El método devuelve un valor FormsResult
que contiene los resultados del envío del formulario.
Compruebe que el estado de procesamiento asociado a un formulario enviado es 1
invocando el método FormsResult
del objeto getAction
método. Si este método devuelve el valor 1
, se realizó el cálculo y los datos se pueden escribir de nuevo en el explorador web del cliente.
Escribir el flujo de datos de formulario en el explorador web del cliente
javax.servlet.ServletOutputStream
objeto utilizado para enviar un flujo de datos de formulario al explorador web del cliente.com.adobe.idp.Document
invocando el objeto de FormsResult
del objeto getOutputContent
método.java.io.InputStream
invocando el objeto de com.adobe.idp.Document
del objeto getInputStream
método.InputStream
del objeto read
y pasando la matriz de bytes como argumento.javax.servlet.ServletOutputStream
del objeto write
para enviar el flujo de datos de formulario al explorador web del cliente. Pase la matriz de bytes a write
método.Consulte también
Incluir archivos de biblioteca Java de AEM Forms
Estableciendo propiedades de conexión
Calcular datos de formulario mediante la API de Forms (servicio web):
Incluir archivos de proyecto
Crear un objeto de API de cliente de Forms
Crear un FormsService
y establezca los valores de autenticación.
Recuperar un formulario que contiene un script de cálculo
Para recuperar datos de formulario publicados en un servlet Java, cree un BLOB
mediante su constructor.
Crear un java.io.InputStream
mediante el uso del objeto javax.servlet.http.HttpServletResponse
del objeto getInputStream
método.
Crear un java.io.ByteArrayOutputStream
utilizando su constructor y pasando la longitud del objeto java.io.InputStream
objeto.
Copie el contenido del java.io.InputStream
en el java.io.ByteArrayOutputStream
objeto.
Cree una matriz de bytes invocando el método java.io.ByteArrayOutputStream
del objeto toByteArray
método.
Rellene el BLOB
invocando su objeto setBinaryData
y pasando la matriz de bytes como argumento.
Crear un RenderOptionsSpec
mediante su constructor. Establezca el valor locale invocando el RenderOptionsSpec
del objeto setLocale
y pasando un valor de cadena que especifica el valor de configuración regional.
Invoque el FormsServiceClient
del objeto processFormSubmission
y pasar los siguientes valores:
BLOB
que contiene los datos del formulario.HTTP_REFERER=referrer&HTTP_CONNECTION=keep-alive&CONTENT_TYPE=application/xml
HTTP_USER_AGENT
valor del encabezado; por ejemplo, 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. Para obtener más información, consulte .BLOBHolder
objeto que rellena el método.javax.xml.rpc.holders.StringHolder
objeto que rellena el método.BLOBHolder
objeto que rellena el método.BLOBHolder
objeto que rellena el método.javax.xml.rpc.holders.ShortHolder
objeto que rellena el método.MyArrayOf_xsd_anyTypeHolder
objeto que rellena el método. Este parámetro se utiliza para almacenar los archivos adjuntos enviados junto con el formulario.FormsResultHolder
que rellena el método con el formulario que se envía.El processFormSubmission
rellena el método FormsResultHolder
con los resultados del envío del formulario. El processFormSubmission
El método devuelve un valor FormsResult
que contiene los resultados del envío del formulario.
Compruebe que el estado de procesamiento asociado a un formulario enviado es 1
invocando el método FormsResult
del objeto getAction
método. Si este método devuelve el valor 1
, se realizó el cálculo y los datos se pueden escribir de nuevo en el explorador web del cliente.
Escribir el flujo de datos de formulario en el explorador web del cliente
javax.servlet.ServletOutputStream
objeto utilizado para enviar un flujo de datos de formulario al explorador web del cliente.BLOB
que contiene datos de formulario invocando el FormsResult
del objeto getOutputContent
método.BLOB
del objeto getBinaryData
método. Esta tarea asigna el contenido del FormsResult
a la matriz de bytes.javax.servlet.http.HttpServletResponse
del objeto write
para enviar el flujo de datos de formulario al explorador web del cliente. Pase la matriz de bytes a write
método.Consulte también
Invocar AEM Forms con codificación Base64