Exemplos e exemplos neste documento são apenas para o 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 os dados do formulário, você deve executar duas tarefas. Primeiro, crie um script de design de formulário que calcula os dados do 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 tipo é executado no servidor e no cliente. O tipo de script discutido neste tópico é executado no servidor. Cálculos do lado do servidor são suportados para transformações de HTML, PDF e Guia do formulário (obsoleto).
Como parte do processo de design de formulário, você pode usar cálculos e scripts para fornecer uma experiência do usuário mais rica. Cálculos e scripts podem ser adicionados à maioria dos campos e objetos de formulário. É necessário criar um script de design de formulário para executar operações de cálculo nos dados inseridos por um usuário em um formulário interativo.
O usuário insere valores no formulário e clica no botão Calcular para visualizar os resultados. O processo a seguir descreve um aplicativo de exemplo que permite ao usuário calcular dados:
GetLoanForm
.GetLoanForm
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 neste diagrama.
Etapa |
Descrição |
---|---|
1 |
O |
2 |
O |
3 |
O usuário insere dados em campos interativos e clica no botão Calcular . O formulário é enviado para o |
4 |
O formulário é renderizado de volta ao navegador da Web com os resultados do cálculo exibidos no formulário. |
5 |
O usuário clica no botão Enviar quando os valores são satisfatórios. O formulário é enviado para outro Servlet Java chamado |
Normalmente, um formulário enviado como conteúdo PDF contém scripts que são executados no cliente. No entanto, 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 da Forms considera a interação como 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 que um usuário insere nos dois primeiros campos e exibe o resultado no terceiro campo.
A. Um campo denominado NumericField1 B. Um campo denominado NumericField2 C. Um campo denominado NumericField3
A sintaxe do script localizado neste design de formulário é a seguinte:
NumericField3 = NumericField2 + NumericField1
Nesse design de formulário, o botão Calcular é um botão de comando e o script está localizado no evento Click
desse botão. Quando um usuário insere valores nos dois primeiros campos (NumericField1 e NumericField2) e clica no botão Calculate , o formulário é enviado para o serviço Forms, onde o script é executado. O serviço Forms renderiza o formulário de volta ao 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 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 um aplicativo 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 de API do cliente do Forms
Antes de executar programaticamente uma operação de API do cliente de serviço do Forms, é necessário criar um cliente de serviço do Forms. Se estiver usando a API do Java, crie um objeto FormsServiceClient
. Se estiver usando a API do serviço da Web da Forms, crie um objeto FormsServiceService
.
Recuperar um formulário contendo um script de cálculo
Use a API do cliente de serviço do Forms para criar a lógica do aplicativo que lida com 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.)
Verifique 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 do formulário e os resultados devem ser gravados de volta ao 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 cliente
Depois de verificar se o estado de processamento associado a um formulário enviado é 1
, você deve gravar os resultados de volta no navegador da Web do cliente. Quando o formulário for exibido, o valor calculado aparecerá no(s) campo(s) apropriado(s).
Consulte também:
Inclusão de
arquivos de biblioteca Java do AEM FormsCalcule os dados de formulário usando a
APIC JavaCalcule os dados de formulário usando o serviço da Web
APISdefinindo
propriedades de conexãoAPI do serviço do Forms
Inícios de renderização de
formulários PDF interativosCriando aplicativos da Web que renderizam o Forms
Calcule os dados do 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 seu projeto Java.
Criar um objeto de API do cliente do Forms
ServiceClientFactory
que contenha propriedades de conexão.FormsServiceClient
usando seu construtor e transmitindo o objeto ServiceClientFactory
.Recuperar um formulário contendo um script de cálculo
Para recuperar dados de formulário que contenham um script de cálculo, crie um objeto com.adobe.idp.Document
usando seu construtor e chamando o método javax.servlet.http.HttpServletResponse
do objeto getInputStream
de dentro do construtor.
Chame o método FormsServiceClient
do objeto processFormSubmission
e passe os seguintes valores:
com.adobe.idp.Document
que contém os dados do formulário.CONTENT_TYPE
. 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
; por exemplo, Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
.RenderOptionsSpec
que armazena opções de tempo de execução.O método processFormSubmission
retorna um objeto FormsResult
contendo os resultados do envio do formulário.
Verifique se o estado de processamento associado a um formulário enviado é 1
chamando o método FormsResult
do objeto getAction
. Se esse método retornar o valor 1
, o cálculo foi executado e os dados podem ser gravados de volta no navegador da Web do cliente.
Gravar o fluxo de dados do formulário de volta no navegador da Web cliente
javax.servlet.ServletOutputStream
usado para enviar um fluxo de dados de formulário para o navegador da Web do cliente.com.adobe.idp.Document
chamando o método FormsResult
object 's getOutputContent
.java.io.InputStream
chamando o método com.adobe.idp.Document
getInputStream
do objeto.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 do formulário para o navegador da Web cliente. Passe a matriz de bytes para o método write
.Consulte também:
Inclusão de
arquivos da biblioteca Java AEM FormsDefinição de propriedades de conexão
Calcule os dados do formulário usando a API do Forms (serviço da Web):
Incluir arquivos de projeto
Criar um objeto de API do cliente do Forms
Crie um objeto FormsService
e defina os valores de autenticação.
Recuperar um formulário contendo um script de cálculo
Para recuperar dados de formulário publicados em um Servlet Java, crie um objeto BLOB
usando seu construtor.
Crie um objeto java.io.InputStream
usando o método javax.servlet.http.HttpServletResponse
getInputStream
do objeto.
Crie um objeto java.io.ByteArrayOutputStream
usando seu construtor e passando o comprimento do objeto java.io.InputStream
.
Copie o conteúdo do objeto java.io.InputStream
no objeto java.io.ByteArrayOutputStream
.
Crie uma matriz de bytes chamando o método java.io.ByteArrayOutputStream
do objeto toByteArray
.
Preencha o objeto BLOB
chamando seu método setBinaryData
e passando a matriz de bytes como um argumento.
Crie um objeto RenderOptionsSpec
usando seu construtor. Defina o valor da localidade chamando o método RenderOptionsSpec
do objeto setLocale
e passando um valor de string que especifica o valor da localidade.
Chame o método FormsServiceClient
do objeto processFormSubmission
e passe os seguintes valores:
BLOB
que contém os dados do formulário.HTTP_REFERER=referrer&HTTP_CONNECTION=keep-alive&CONTENT_TYPE=application/xml
HTTP_USER_AGENT
; por exemplo, Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
.RenderOptionsSpec
que armazena opções de tempo de execução. Para obter mais informações, .BLOBHolder
que é preenchido pelo método .javax.xml.rpc.holders.StringHolder
que é preenchido pelo método .BLOBHolder
que é preenchido pelo método .BLOBHolder
que é preenchido pelo método .javax.xml.rpc.holders.ShortHolder
que é preenchido pelo método .MyArrayOf_xsd_anyTypeHolder
que é preenchido pelo método . Esse parâmetro é usado para armazenar anexos de arquivo enviados junto com o formulário.FormsResultHolder
que é preenchido pelo método com o formulário enviado.O método processFormSubmission
preenche o parâmetro FormsResultHolder
com os resultados do envio do formulário. O método processFormSubmission
retorna um objeto FormsResult
contendo os resultados do envio do formulário.
Verifique se o estado de processamento associado a um formulário enviado é 1
chamando o método FormsResult
do objeto getAction
. Se esse método retornar o valor 1
, o cálculo foi executado e os dados podem ser gravados de volta no navegador da Web do cliente.
Gravar o fluxo de dados do formulário de volta no navegador da Web cliente
javax.servlet.ServletOutputStream
usado para enviar um fluxo de dados de formulário para o navegador da Web do cliente.BLOB
que contenha dados de formulário chamando o método FormsResult
do objeto getOutputContent
.BLOB
do objeto getBinaryData
. Essa tarefa atribui o conteúdo do objeto FormsResult
à matriz de bytes.javax.servlet.http.HttpServletResponse
do objeto write
para enviar o fluxo de dados do formulário para o navegador da Web cliente. Passe a matriz de bytes para o método write
.Consulte
tambémChamada de AEM Forms usando codificação Base64