Geralmente, seus clientes precisam enviar vários formulários para se candidatarem a um serviço ou benefício. Implica encontrar todas as formas pertinentes; e preenchê-las, enviá-las e rastreá-las separadamente. Além disso, é necessário que eles preencham detalhes comuns várias vezes em formulários. Todo o processo se torna complicado e sujeito a erros se envolver um grande número de formulários. O recurso de conjunto de formulários do AEM Forms pode ajudar a simplificar a experiência do usuário em tais cenários.
Um conjunto de formulários é uma coleção de formulários HTML5 agrupados e apresentados como um único conjunto de formulários para os usuários finais. Quando os usuários finais começam a preencher um conjunto de formulários, eles são perfeitamente transitados de um formulário para outro. No final, eles podem enviar todos os formulários com apenas um clique.
O AEM Forms fornece aos autores de formulários uma interface de usuário intuitiva para criar, configurar e gerenciar conjuntos de formulários. Como autor, você pode ordenar os formulários em uma sequência específica que você deseja que os usuários finais sigam. Além disso, você pode aplicar condições ou expressões de qualificação em formulários individuais para controlar sua visibilidade com base em entradas do usuário. Por exemplo, você pode configurar o formulário de detalhes do cônjuge para aparecer somente quando o status civil especificar como Casado.
Além disso, é possível configurar campos comuns em diferentes formulários para compartilhar vínculos de dados comuns. Com vínculos de dados adequados em vigor, os usuários finais devem preencher informações comuns somente uma vez que sejam preenchidas automaticamente em formulários subsequentes.
Os conjuntos de formulários também são suportados no aplicativo AEM Forms, permitindo que a força de trabalho de campo assuma um conjunto de formulários offline, visite os clientes, insira dados e sincronize com o servidor AEM Forms posteriormente para enviar dados de formulários a processos comerciais.
É possível associar vários XDPs ou Modelos de formulário, criados usando o Designer, em um conjunto de formulários. Os conjuntos de formulários podem ser usados para renderizar seletivamente os XDPs com base nos valores inseridos pelos usuários nos formulários iniciais e em seus perfis.
Use interface do usuário do AEM Forms para gerenciar todos os formulários, conjuntos de formulários e ativos relacionados.
Para criar um conjunto de formulários, faça o seguinte:
Selecione Forms > Forms e Documentos.
Selecione Criar > Conjunto de formulários.
Na página Adicionar propriedades , adicione os detalhes a seguir e clique em Avançar.
A tela Selecionar formulário(s) exibe os formulários XDP ou arquivos XDP disponíveis. Pesquise e selecione os formulários que serão incluídos no conjunto de formulários e clique em Adicionar ao conjunto de formulários. Se necessário, procure novamente formulários para adicionar. Depois de adicionar todos os formulários ao conjunto de formulários, clique em Avançar.
Certifique-se de que os nomes de campo em formulários XDP não contenham o caractere de ponto. Caso contrário, os scripts que tentam resolver os campos, que têm caracteres de ponto, não poderão resolvê-los.
Na página Configurar formulários, é possível fazer o seguinte:
fs.valueOf(<form Identifier="">, <fieldsom expression="">) > <value>
Por exemplo, se você tiver dois formulários no conjunto de formulários: despesas de negócios e despesas de viagem, é possível adicionar um trecho de JavaScript no campo Expressão de elegibilidade para ambos os formulários para verificar a entrada do usuário quanto ao tipo de despesa em um formulário. Se o usuário escolher Despesa de Negócios, o formulário Despesa de Negócios será renderizado para o usuário final. Ou se o usuário escolher a despesa de viagem, um formulário diferente será renderizado para o usuário final. Para obter mais informações, consulte Expressão de elegibilidade.
Além disso, o Autor também pode optar por remover um formulário do conjunto de formulários usando o ícone Excluir presente no canto direito de cada linha ou adicionar outro conjunto de formulários usando o ícone '+' na barra de ferramentas. Este ícone '+' redireciona o usuário para a etapa anterior no assistente, que foi usada para 'Selecionar formulário(s)'. As seleções existentes são mantidas e qualquer seleção adicional feita deve ser adicionada ao conjunto de formulários usando o ícone Adicionar ao conjunto de formulários nessa página.
Todos os formulários usados no conjunto de formulários são gerenciados pela interface do usuário do AEM Forms.
Depois que um conjunto de formulários é criado, é possível executar as seguintes ações nesse conjunto de formulários:
Para editar um conjunto de formulários, faça o seguinte:
Selecione Forms > Forms e Documentos.
Localize o conjunto de formulários que deseja editar. Passe o mouse sobre ele e selecione Editar ( ).
Na página Configurar formulários, é possível editar o seguinte:
Você também pode clicar no ícone Excluir relevante para excluir o formulário do Conjunto de formulários.
Depois de criar um conjunto de formulários usando a interface do usuário do AEM Forms Management, você pode usar o conjunto de formulários em uma atividade de Ponto de Início ou Atribuir Tarefa usando o Workbench.
Ao projetar um processo, na seção Apresentação e dados de Atribuir tarefa/Ponto de início, selecione usar um ativo CRX. O navegador CRX Asset é exibido.
Selecione o conjunto de formulários para filtrar o conjunto de formulários AEM repositório (CRX).
Seleciona um conjunto de formulários e clique em OK.
Expressões de elegibilidade em um conjunto de formulários são usadas para definir e controlar dinamicamente formulários exibidos para um usuário. Por exemplo, para exibir um determinado formulário somente se o usuário pertencer a um determinado grupo etário. Especifique e edite uma expressão de qualificação usando o gerenciador de formulários.
Uma expressão de elegibilidade pode ser qualquer instrução JavaScript válida que retorne um valor booleano. A última declaração no trecho de código JavaScript é tratada como um valor booleano que determina a elegibilidade do formulário com base no processamento no restante (linhas anteriores) do trecho de código JavaScript. Se o valor da expressão for true, o formulário estará qualificado para ser exibido ao usuário. Esses formulários são conhecidos como formulários elegíveis.
A expressão Eligibility para o primeiro formulário do conjunto de formulários não é executada. O primeiro formulário é sempre exibido, independentemente de sua expressão de qualificação.
Além das funções JavaScript padrão, o conjunto de formulários também expõe a API fs.valueOf que fornece acesso ao valor de um campo de um formulário em um conjunto de formulários. Use essa API para acessar o valor de um campo de formulário em um conjunto de formulários. A sintaxe da API é fs.valueOf (formUid, fieldSOM), onde:
Os parâmetros formUid e fieldSOM devem ser literais de cadeia de caracteres.
Uso válido da API:
fs.valueOf("form1", "xfa.form.form1.subform1.field1")
Uso inválido da API:
var formUid = "form1";
var fieldSOM = “xfa.form.form1.subform1.field1"; fs.valueOf(formUid, fieldSOM);
O conjunto de formulários é uma coleção de vários formulários HTML5 que têm esquemas comuns ou diferentes. O conjunto de formulários suporta o pré-preenchimento de campos de formulário usando um arquivo XML. É possível associar um arquivo XML a um conjunto de formulários para que, ao abrir um formulário no conjunto de formulários, alguns dos campos no formulário sejam pré-poluídos.
O arquivo XML de preenchimento prévio é especificado usando o parâmetro dataRef do URL do conjunto de formulários. O parâmetro dataRef especifica o caminho absoluto do arquivo XML de dados que é unido ao conjunto de formulários.
Por exemplo, você tem três formulários (formulário1, formulário2 e formulário3), no conjunto de formulários com a seguinte estrutura:
form1
campo
form1field
form2
campo
form2field
form3
campo
form3field
Cada formulário tem um campo nomeado comum, chamado "campo" e um campo com nome exclusivo chamado "formulário<i>campo".
Você pode preencher previamente esse conjunto de formulários usando um XML com a seguinte estrutura:
<?xml version="1.0" encoding="UTF-8" ?>
<formSetRootTag>
<field>common field value</field>
<form1field>value1</form1field>
<form2field>value2</form2field>
<form3field>value3</form3field>
</formSetRootTag>
A tag raiz XML pode ter qualquer nome, mas as tags de elemento correspondentes aos campos devem ter o mesmo nome do campo. A hierarquia do XML deve imitar a hierarquia do formulário, o que significa que o XML deve ter as tags correspondentes para o vínculo de subformulários.
O trecho XML acima mostra que o XML de preenchimento prévio para o conjunto de formulários é uma união dos trechos XML de preenchimento prévio dos formulários individuais. Se determinados campos nos diferentes formulários tiverem hierarquia/esquema de dados semelhante um ao outro, os campos serão preenchidos com os mesmos valores. Neste exemplo, os três formulários recebem o mesmo valor para o campo comum, "campo". Essa é uma maneira simples de transmitir dados de um formulário para o seguinte. Isso também pode ser feito vinculando os campos ao mesmo schema ou referência de dados. Se desejar segregar os dados do conjunto de formulários com base no esquema dos formulários. Isso pode ser feito especificando o atributo "raiz de dados" do formulário, durante a criação do conjunto de formulários (o valor padrão é "/", que mapeia para a tag raiz do conjunto de formulários).
No exemplo anterior, se você especificar as raízes de dados: "/form1", "/form2" e "/form3" respectivamente para os três formulários, é necessário usar um XML de preenchimento prévio da seguinte estrutura:
<?xml version="1.0" encoding="UTF-8" ?>
<formSetRootTag>
<form1>
<field>field value1</field>
<form1field>value1</form1field>
</form1>
<form2>
<field>field value2</field>
<form2field>value2</form2field>
</form2>
<form3>
<field>field value3</field>
<form3field>value3</form3field>
</form3>
</formSetRootTag>
Em um conjunto de formulários, o XML definiu um esquema XML com a seguinte sintaxe:
<formset>
<fs_data>
<xdp:xdp xmlns:xdp="https://ns.adobe.com/xdp/">
<xfa:datasets xmlns:xfa="https://www.xfa.org/schema/xfa-data/1.0/">
<xfa:data>
<rootElement>
... data ....
</rootElement>
</xfa:data>
</xfa:datasets>
</xdp:xdp>
</fs_data>
<fs_draft>
... private data...
</fs_draft>
</formset>
Se houver dois formulários com raízes de dados sobrepostas, ou se a hierarquia de elemento de um formulário se sobrepor à hierarquia de raiz de dados de outro formulário, no xml de preenchimento prévio, os valores dos elementos sobrepostos serão unidos. O XML de envio tem estrutura semelhante à do XML de preenchimento prévio, mas o XML de envio tem mais tags wrapper e algumas tags de dados de contexto de conjunto de formulários anexadas no final.
Regras de sintaxe para criar um arquivo XML de preenchimento prévio:
parent elements:
null
cardinality: [0,1]
submitXML: P
prefillXML: O
children: fs_data
O elemento raiz do XML de conjunto de formulários. É recomendável não usar essa palavra como o nome do rootSubform de qualquer formulário no conjunto de formulários.
parent elements:
formset
cardinalidade: [1]
submitXML: P
prefillXML: O
children: xdp:xdp/rootElement
A subárvore indica os dados dos formulários no conjunto de formulários. O elemento é opcional no XML de preenchimento prévio somente se o elemento do conjunto de formulários não estiver presente
parent elements: fs_data/null
cardinality: [0,1]
submitXML: O
prefillXML: O
children: xfa:datasets
Essa tag indica o início do XML do formulário HTML5. Isso é adicionado no XML de envio se estiver presente no XML de preenchimento prévio ou se não houver um XML de preenchimento prévio. Essa tag pode ser removida do XML de preenchimento prévio.
parent elements: xdp:xdp
cardinality: [1]
submitXML: O
prefillXML: O
children: xfa:data
parent elements: xfa:datasets
cardinality: [1]
submitXML: O
prefillXML: O
children: rootElement
parent elements: xfa:datasets/fs_data/null
cardinality: [0,1]
submitXML: P
prefillXML: O
children: controlled by the Forms in Form set
O nome rootElement é apenas um espaço reservado. O nome real é extraído dos formulários usados no conjunto de formulários. A subárvore que começa com rootElement contém os dados dos campos e subformulários dentro do Forms no conjunto de formulários. Há vários fatores que determinam a estrutura do rootElement e seus filhos.
No XML de preenchimento prévio, essa tag é opcional, mas se estiver ausente, o XML inteiro será ignorado.
NOME DA TAG DE ELEMENTO RAIZ
Caso haja um elemento raiz no XML de preenchimento, o nome desse elemento também será usado no XML de envio. Nos casos em que não há um xml de preenchimento prévio, o nome do rootElement é o nome do Subformulário raiz do primeiro formulário no conjunto de formulários que tem uma propriedade dataRoot definida como "/". Se esse formulário não existir, o nome rootElement será fs_dummy_root, que é uma palavra-chave reservada.
O aplicativo AEM Forms permite que trabalhadores de campo sincronizem seus dispositivos móveis com um servidor AEM Forms e trabalhem em suas tarefas. O aplicativo funciona mesmo quando o dispositivo está offline, salvando os dados localmente no dispositivo. Usando recursos de anotação, como fotografias, os trabalhadores de campo podem fornecer informações precisas para se integrar aos processos comerciais.
Para obter mais informações sobre o aplicativo AEM Forms, consulte AEM Forms app.
Os seguintes padrões de dados não são totalmente compatíveis com o Conjunto de formulários:
Padrão não totalmente compatível no conjunto de formulários | Exemplo |
Tamanho de entrada e incompatibilidade de tamanho de padrão | Quando o padrão= num{z,zzz} E input= 12 345 ou 1,23 |
Padrões da Cláusula de Imagem com colchetes "(" ")" | num{(zz,zzz)} |
Vários padrões de dados | num{zz,zzz} | num{z,zzz,zzz} |
Padrões de encurtamento | num.integer{}, num.decimal{}, num.percent{} ou num.currency{} |