Los ejemplos y ejemplos de este documento son solo para AEM Forms en un entorno JEE.
El servicio Forms puede calcular los valores que introduce un usuario en un formulario y mostrar los resultados. Para calcular los datos de formulario, debe realizar dos tareas. En primer lugar, se crea una secuencia de comandos de diseño de formulario que calcula los datos del formulario. Un diseño de formulario admite tres tipos de secuencias de comandos. Se ejecuta un tipo de script en el cliente, otro en el servidor y el tercer tipo se ejecuta tanto en el servidor como en el cliente. El tipo de script analizado en este tema se ejecuta en el servidor. Los cálculos del lado del servidor son compatibles con transformaciones HTML, PDF y de la Guía de formularios (obsoletos).
Como parte del proceso de diseño de formularios, puede utilizar cálculos y secuencias de comandos 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 objetos y campos de formulario. Debe crear una secuencia de comandos de diseño de formulario para realizar operaciones de cálculo en los datos que introduce un usuario 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 al usuario calcular datos:
GetLoanForm
.GetLoanForm
procesa un formulario de préstamo. Este formulario contiene una secuencia de comandos, campos interactivos, un botón de cálculo y un botón de envío.CalculateData
donde se ejecuta la secuencia de comandos. El formulario se devuelve al usuario con los resultados de cálculo mostrados en el formulario.ProcessForm
que es responsable de recuperar los datos enviados. (Consulte Gestión de Forms enviado).El diagrama siguiente muestra el flujo lógico de la aplicación.
En la tabla siguiente se describen los pasos de este diagrama.
Etapa |
Descripción |
---|---|
1 |
El servlet Java |
2 |
El |
3 |
El usuario introduce datos en campos interactivos y hace clic en el botón Calcular . El formulario se envía al servlet Java |
4 |
El formulario se vuelve a procesar en el explorador web con los resultados de cálculo mostrados en el formulario. |
5 |
El usuario hace clic en el botón Enviar cuando los valores sean satisfactorios. El formulario se envía a otro servlet Java llamado |
Normalmente, un formulario enviado como contenido PDF contiene secuencias de comandos 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 secuencias de comandos. En este caso, los cálculos no se ejecutan porque el servicio de Forms considera que la interacción ha finalizado.
Para ilustrar el uso de una secuencia de comandos de diseño de formulario, en esta sección se examina un formulario interactivo sencillo 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 el usuario introduce en los dos primeros campos y muestra el resultado en el tercer campo.
A. Un campo llamado NumericField1 B. Un campo llamado NumericField2 C. Un campo llamado NumericField3
La sintaxis de la secuencia de comandos ubicada 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 suceso Click
de este botón. 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 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 una secuencia de comandos 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 de formulario, realice las tareas siguientes:
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.
Creación de 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 objeto FormsServiceClient
. Si utiliza la API de servicio web de Forms, cree un objeto FormsServiceService
.
Recuperar un formulario que contenga una secuencia de comandos de cálculo
La API de cliente del servicio Forms se utiliza para crear una lógica de aplicación que gestione un formulario que contenga 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 enviado).
Compruebe que el estado de procesamiento asociado al formulario enviado sea 1
(Calculate)
, lo que significa que el servicio de Forms está realizando una operación de cálculo en los datos del formulario y que los resultados deben devolverse al usuario. En este caso, se ejecuta automáticamente una secuencia de comandos configurada para ejecutarse en el servidor.
Vuelva a escribir el flujo de datos del formulario en el explorador web del cliente
Después de comprobar que el estado de procesamiento asociado a un formulario enviado es 1
, debe volver a escribir los resultados en el explorador web del cliente. Cuando se muestra el formulario, el valor calculado aparece en los campos correspondientes.
Consulte también
Inclusión de
archivos de biblioteca Java de AEM FormsCalcular datos de formulario con Java
APICCalcular datos de formulario con el servicio web
APIestablecer
propiedades de conexiónAPI de Forms Service Quick
StartsRenderizar
formularios PDF interactivosCrear aplicaciones web que procese Forms
Calcule los datos del formulario utilizando la API de Forms (Java):
Incluir archivos de proyecto
Incluya archivos JAR del cliente, como adobe-forms-client.jar en la ruta de clase de su proyecto Java.
Creación de un objeto de API de cliente de Forms
ServiceClientFactory
que contenga propiedades de conexión.FormsServiceClient
utilizando su constructor y pasando el objeto ServiceClientFactory
.Recuperar un formulario que contenga una secuencia de comandos de cálculo
Para recuperar datos de formulario que contengan una secuencia de comandos de cálculo, cree un objeto com.adobe.idp.Document
utilizando su constructor e invocando el método javax.servlet.http.HttpServletResponse
del objeto getInputStream
desde dentro del constructor.
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 y PDF, especifique el siguiente valor de cadena para este parámetro: CONTENT_TYPE=application/xml&CONTENT_TYPE=application/pdf
HTTP_USER_AGENT
; 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 método processFormSubmission
devuelve un objeto FormsResult
que contiene los resultados del envío del formulario.
Compruebe que el estado de procesamiento asociado a un formulario enviado sea 1
invocando el método FormsResult
del objeto getAction
. Si este método devuelve el valor 1
, el cálculo se realizó y los datos se pueden escribir de nuevo en el explorador web del cliente.
Vuelva a escribir el flujo de datos del formulario en el explorador web del cliente
javax.servlet.ServletOutputStream
que se utilice para enviar una secuencia de datos de formulario al explorador web del cliente.com.adobe.idp.Document
invocando el método FormsResult
del objeto ‘s getOutputContent
.java.io.InputStream
invocando el método com.adobe.idp.Document
del objeto getInputStream
.InputStream
del objeto read
y pasando la matriz de bytes como argumento.javax.servlet.ServletOutputStream
del objeto write
para enviar la secuencia de datos del formulario al explorador web del cliente. Pase la matriz de bytes al método write
.Consulte también
Inclusión de
archivos de biblioteca Java de AEM FormsConfiguración de las propiedades de conexión
Calcule los datos del formulario utilizando la API de Forms (servicio web):
Incluir archivos de proyecto
Creación de un objeto de API de cliente de Forms
Cree un objeto FormsService
y establezca valores de autenticación.
Recuperar un formulario que contenga una secuencia de comandos de cálculo
Para recuperar datos de formulario publicados en un servlet Java, cree un objeto BLOB
utilizando su constructor.
Cree un objeto java.io.InputStream
utilizando el método javax.servlet.http.HttpServletResponse
del objeto getInputStream
.
Cree un objeto java.io.ByteArrayOutputStream
utilizando su constructor y pasando la longitud del objeto java.io.InputStream
.
Copie el contenido del objeto java.io.InputStream
en el objeto java.io.ByteArrayOutputStream
.
Cree una matriz de bytes invocando el método java.io.ByteArrayOutputStream
del objeto toByteArray
.
Rellene el objeto BLOB
invocando su método setBinaryData
y pasando la matriz de bytes como argumento.
Cree un objeto RenderOptionsSpec
utilizando su constructor. Establezca el valor de configuración regional invocando el método RenderOptionsSpec
del objeto setLocale
y pasando un valor de cadena que especifica el valor de configuración regional.
Invoque el método FormsServiceClient
del objeto processFormSubmission
y pase los siguientes valores:
BLOB
que contiene los datos del formulario.HTTP_REFERER=referrer&HTTP_CONNECTION=keep-alive&CONTENT_TYPE=application/xml
HTTP_USER_AGENT
; 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, .BLOBHolder
vacío que se rellena con el método .javax.xml.rpc.holders.StringHolder
vacío que se rellena con el método .BLOBHolder
vacío que se rellena con el método .BLOBHolder
vacío que se rellena con el método .javax.xml.rpc.holders.ShortHolder
vacío que se rellena con el método .MyArrayOf_xsd_anyTypeHolder
vacío que se rellena con el método . Este parámetro se utiliza para almacenar archivos adjuntos enviados junto con el formulario.FormsResultHolder
vacío que el método rellena con el formulario enviado.El método processFormSubmission
rellena el parámetro FormsResultHolder
con los resultados del envío del formulario. El método processFormSubmission
devuelve un objeto FormsResult
que contiene los resultados del envío del formulario.
Compruebe que el estado de procesamiento asociado a un formulario enviado sea 1
invocando el método FormsResult
del objeto getAction
. Si este método devuelve el valor 1
, el cálculo se realizó y los datos se pueden escribir de nuevo en el explorador web del cliente.
Vuelva a escribir el flujo de datos del formulario en el explorador web del cliente
javax.servlet.ServletOutputStream
que se utilice para enviar una secuencia de datos de formulario al explorador web del cliente.BLOB
que contenga datos de formulario invocando el método FormsResult
del objeto getOutputContent
.BLOB
del objeto getBinaryData
. Esta tarea asigna el contenido del objeto FormsResult
a la matriz de bytes.javax.servlet.http.HttpServletResponse
del objeto write
para enviar la secuencia de datos del formulario al explorador web del cliente. Pase la matriz de bytes al método write
.