Os exemplos e amostras neste documento são somente para AEM Forms no ambiente JEE.
O serviço Forms pode calcular os valores que um usuário insere em um formulário e exibir os resultados. Para calcular dados de formulário, você deve executar duas tarefas. Primeiro, crie um script de design de formulário que calcula os dados de formulário. Um design de formulário é compatível com três tipos de scripts. Um tipo de script é executado no cliente, outro é executado no servidor e o terceiro é executado no servidor e no cliente. O tipo de script discutido neste tópico é executado no servidor. Os cálculos do lado do servidor são compatíveis com as transformações de HTML, PDF e Guia de forma (obsoleto).
Como parte do processo de design do formulário, você pode usar cálculos e scripts para fornecer uma experiência do usuário mais avançada. Cálculos e scripts podem ser adicionados à maioria dos campos e objetos de formulário. Você deve criar um script de design de formulário para executar operações de cálculo nos dados que um usuário insere em um formulário interativo.
O usuário insere valores no formulário e clica no botão Calculate para exibir os resultados. O processo a seguir descreve um aplicativo de exemplo que permite ao usuário calcular dados:
GetLoanForm
.GetLoanForm
O servlet renderiza um formulário de empréstimo. Este formulário contém um script, campos interativos, um botão calcular e um botão enviar.CalculateData
Java Servlet onde o script é executado. O formulário é enviado de volta ao usuário com os resultados do cálculo exibidos no formulário.ProcessForm
que é responsável pela recuperação dos dados enviados. (Consulte Manuseio de Forms enviado.)O diagrama a seguir mostra o fluxo lógico do aplicativo.
A tabela a seguir descreve as etapas deste diagrama.
Etapa |
Descrição |
---|---|
1 |
A variável |
2 |
A variável |
3 |
O usuário insere os dados em campos interativos e clica no botão Calcular. O formulário é enviado para o |
4 |
O formulário é renderizado no navegador da web com os resultados do cálculo exibidos no formulário. |
5 |
O usuário clica no botão Submit quando os valores forem satisfatórios. O formulário é enviado para outro Java Servlet chamado |
Normalmente, um formulário enviado como conteúdo de PDF contém scripts que são executados no cliente. No entanto, os cálculos do lado do servidor também podem ser executados. Um botão Enviar não pode ser usado para calcular scripts. Nessa situação, os cálculos não são executados porque o serviço do Forms considera a interação concluída.
Para ilustrar o uso de um script de design de formulário, esta seção examina um formulário interativo simples que contém um script configurado para execução no servidor. O diagrama a seguir mostra um design de formulário contendo um script que adiciona valores inseridos por um usuário nos dois primeiros campos e exibe o resultado no terceiro campo.
A. Um campo chamado NumericField1 B. Um campo chamado NumericField2 C Um campo chamado NumericField3
A sintaxe do script localizado nesse design de formulário é a seguinte:
NumericField3 = NumericField2 + NumericField1
Neste design de formulário, o botão Calcular é um botão de comando e o script está localizado no Click
evento. Quando um usuário insere valores nos dois primeiros campos (NumericField1 e NumericField2) e clica no botão Calcular, o formulário é enviado ao serviço do Forms, onde o script é executado. O serviço Forms renderiza o formulário de volta para o dispositivo cliente com os resultados do cálculo exibidos no campo NumericField3.
Para obter informações sobre como criar um script de design de formulário, consulte Forms Designer.
Para obter mais informações sobre o serviço Forms, consulte Referência de serviços para o AEM Forms.
Para calcular dados de formulário, execute as seguintes tarefas:
Incluir arquivos de projeto
Inclua os arquivos necessários no projeto de desenvolvimento. Se você estiver criando uma aplicação cliente usando Java, inclua os arquivos JAR necessários. Se você estiver usando serviços da Web, certifique-se de incluir os arquivos proxy.
Criar um objeto da API do cliente do Forms
Antes de executar programaticamente uma operação da API do cliente de serviço do Forms, você deve criar um cliente de serviço do Forms. Se estiver usando a API Java, crie uma FormsServiceClient
objeto. Se estiver usando a API do serviço Web Forms, crie uma FormsServiceService
objeto.
Recuperar um formulário que contenha um script de cálculo
Use a API do cliente de serviço do Forms para criar uma lógica de aplicativo que manipula um formulário que contém um script configurado para execução no servidor. O processo é semelhante ao manuseio de um formulário enviado. (Consulte Manuseio de Forms enviado.)
Verificar se o estado de processamento associado ao formulário enviado é 1
(Calculate)
, o que significa que o serviço Forms está executando uma operação de cálculo nos dados de formulário e os resultados devem ser gravados de volta para o usuário. Nessa situação, um script configurado para ser executado no servidor é executado automaticamente.
Gravar o fluxo de dados do formulário de volta no navegador da Web do cliente
Depois de verificar se o estado de processamento associado a um formulário enviado é 1
, você deve gravar os resultados no navegador da Web do cliente. Quando o formulário for exibido, o valor calculado será exibido nos campos apropriados.
Consulte também
Inclusão de arquivos da biblioteca Java do AEM Forms
Calcular dados do formulário usando a API Java
Calcular dados do formulário usando a API do serviço Web
Definindo propriedades de conexão
Início rápido da API de serviço do Forms
Renderização de PDF forms interativos
Criação de aplicações Web que renderizam o Forms
Calcule dados de formulário usando a API do Forms (Java):
Incluir arquivos de projeto
Inclua arquivos JAR do cliente, como adobe-forms-client.jar, no caminho de classe do projeto Java.
Criar um objeto da API do cliente do Forms
ServiceClientFactory
objeto que contém propriedades de conexão.FormsServiceClient
usando seu construtor e transmitindo o ServiceClientFactory
objeto.Recuperar um formulário que contenha um script de cálculo
Para recuperar dados de formulário que contenham um script de cálculo, crie um com.adobe.idp.Document
usando seu construtor e chamando o javax.servlet.http.HttpServletResponse
do objeto getInputStream
no construtor.
Chame o FormsServiceClient
do objeto processFormSubmission
e passe os seguintes valores:
com.adobe.idp.Document
objeto que contém os dados de formulário.CONTENT_TYPE
variável de ambiente. Por exemplo, para manipular dados XML e PDF, especifique o seguinte valor de string para esse parâmetro: CONTENT_TYPE=application/xml&CONTENT_TYPE=application/pdf
HTTP_USER_AGENT
valor do cabeçalho; por exemplo, Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
.RenderOptionsSpec
objeto que armazena opções de tempo de execução.A variável processFormSubmission
o método retorna um FormsResult
objeto que contém os resultados do envio do formulário.
Verificar se o estado de processamento associado a um formulário enviado é 1
ao invocar o FormsResult
do objeto getAction
método. Se esse método retornar o valor 1
, o cálculo foi executado e os dados podem ser gravados no navegador da web do cliente.
Gravar o fluxo de dados do formulário de volta no navegador da Web do cliente
javax.servlet.ServletOutputStream
objeto usado para enviar um fluxo de dados de formulário para o navegador da web cliente.com.adobe.idp.Document
ao invocar o FormsResult
object's getOutputContent
método.java.io.InputStream
ao invocar o com.adobe.idp.Document
do objeto getInputStream
método.InputStream
do objeto read
e transmitindo a matriz de bytes como um argumento.javax.servlet.ServletOutputStream
do objeto write
para enviar o fluxo de dados de formulário para o navegador web cliente. Passe a matriz de bytes para o write
método.Consulte também
Inclusão de arquivos da biblioteca Java do AEM Forms
Definindo propriedades de conexão
Calcule dados de formulário usando a API do Forms (serviço da Web):
Incluir arquivos de projeto
Criar um objeto da API do cliente do Forms
Criar um FormsService
objeto e definir valores de autenticação.
Recuperar um formulário que contenha um script de cálculo
Para recuperar dados de formulário publicados em um Servlet Java, crie um BLOB
usando seu construtor.
Criar um java.io.InputStream
usando o javax.servlet.http.HttpServletResponse
do objeto getInputStream
método.
Criar um java.io.ByteArrayOutputStream
usando seu construtor e transmitindo o comprimento do objeto java.io.InputStream
objeto.
Copie o conteúdo de java.io.InputStream
objeto na java.io.ByteArrayOutputStream
objeto.
Crie uma matriz de bytes chamando o java.io.ByteArrayOutputStream
do objeto toByteArray
método.
Preencha o BLOB
ao invocar seu setBinaryData
e transmitindo a matriz de bytes como um argumento.
Criar um RenderOptionsSpec
usando seu construtor. Defina o valor do local chamando o RenderOptionsSpec
do objeto setLocale
e transmitindo um valor de string que especifica o valor do local.
Chame o FormsServiceClient
do objeto processFormSubmission
e passe os seguintes valores:
BLOB
objeto que contém os dados de formulário.HTTP_REFERER=referrer&HTTP_CONNECTION=keep-alive&CONTENT_TYPE=application/xml
HTTP_USER_AGENT
valor do cabeçalho; por exemplo, Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
.RenderOptionsSpec
objeto que armazena opções de tempo de execução. Para obter mais informações, .BLOBHolder
objeto preenchido pelo método.javax.xml.rpc.holders.StringHolder
objeto preenchido pelo método.BLOBHolder
objeto preenchido pelo método.BLOBHolder
objeto preenchido pelo método.javax.xml.rpc.holders.ShortHolder
objeto preenchido pelo método.MyArrayOf_xsd_anyTypeHolder
objeto preenchido pelo método. Esse parâmetro é usado para armazenar anexos de arquivo enviados junto com o formulário.FormsResultHolder
objeto que é preenchido pelo método com o formulário enviado.A variável processFormSubmission
O método preenche o FormsResultHolder
com os resultados do envio do formulário. A variável processFormSubmission
o método retorna um FormsResult
objeto que contém os resultados do envio do formulário.
Verificar se o estado de processamento associado a um formulário enviado é 1
ao invocar o FormsResult
do objeto getAction
método. Se esse método retornar o valor 1
, o cálculo foi executado e os dados podem ser gravados no navegador da web do cliente.
Gravar o fluxo de dados do formulário de volta no navegador da Web do cliente
javax.servlet.ServletOutputStream
objeto usado para enviar um fluxo de dados de formulário para o navegador da web cliente.BLOB
objeto que contém dados de formulário chamando o FormsResult
do objeto getOutputContent
método.BLOB
do objeto getBinaryData
método. Esta tarefa atribui o conteúdo do FormsResult
à matriz de bytes.javax.servlet.http.HttpServletResponse
do objeto write
para enviar o fluxo de dados de formulário para o navegador web cliente. Passe a matriz de bytes para o write
método.Consulte também
Chamada de AEM Forms usando codificação Base64