Seus clientes geralmente são obrigados a enviar vários formulários para solicitar um serviço ou benefício. Trata-se de encontrar todas as formas relevantes; e preenchê-los, enviá-los e rastreá-los separadamente. Além disso, é necessário que eles preencham detalhes comuns várias vezes nos formulários. Todo o processo fica 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 start para 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.
A 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 solicitar formulários em uma sequência específica que 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, é possível configurar o formulário de detalhes do cônjuge para que apareça 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 compatíveis com o aplicativo AEM Forms, permitindo que a equipe de campo coloque um conjunto de formulários offline, visite os clientes, insira dados e sincronize posteriormente com o servidor AEM Forms para enviar dados de formulários aos 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 seus perfis.
Use interface de 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 a serem incluídos no conjunto de formulários e clique em Adicionar ao conjunto de formulários. Se necessário, pesquise novamente os formulários a serem adicionados. Depois de adicionar todos os formulários ao conjunto de formulários, clique em Avançar.
Certifique-se de que os nomes de campo nos 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, você pode adicionar um trecho do JavaScript no campo Expressão 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 despesas de viagem, um formulário diferente será renderizado para o usuário final. Para obter mais informações, consulte Expressão de qualificação.
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 '+' direciona o usuário de volta para a etapa anterior do assistente, que foi usada para 'Selecionar formulários'. 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 de usuário do AEM Forms Management, você pode usar o conjunto de formulários em um Ponto de Start ou Atribuir atividade de Tarefa usando o Workbench.
Ao projetar um processo, na seção Apresentação e dados de Atribuir ponto de Start/Tarefa, 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.
As expressões de qualificação em um conjunto de formulários são usadas para definir e controlar dinamicamente os formulários exibidos para um usuário. Por exemplo, para exibir um formulário específico somente se o usuário pertencer a um grupo etário específico. Especifique e edite uma expressão de qualificação usando o gerenciador de formulários.
Uma expressão de qualificação pode ser qualquer instrução JavaScript válida que retorna um valor booliano. A última instrução no trecho de código JavaScript é tratada como um valor booliano 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 verdadeiro, 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 de qualificação para o primeiro formulário no 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 padrão do JavaScript, 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 string.
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 schemas 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é-polulados.
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
formulário1 campo
formulário2
campo
form2field
form3
campo
form3field
Cada formulário tem um campo com nome comum, chamado "field" e um campo com nome exclusivo, chamado "form<i>field".
É possível pré-preencher 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 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/schema de dados semelhante, os campos serão preenchidos com os mesmos valores. Neste exemplo, os três formulários recebem o mesmo valor do campo comum, "field". 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 separar os dados do conjunto de formulários com base no schema 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 schema 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 a hierarquia de elementos de um formulário se sobrepuser à 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 ao XML de preenchimento prévio, mas o XML de envio tem mais tags de invólucro 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 conjunto de formulários XML. É 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 start de HTML5 Form XML. Isso é adicionado no XML de envio se ele 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 é escolhido a partir dos formulários usados no conjunto de formulários. A subárvore que start 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 de seus filhos.
No XML de pré-preenchimento, essa tag é opcional, mas se estiver ausente, o XML inteiro será ignorado.
NOME DA MARCA DE ELEMENTO RAIZ
Se houver um elemento raiz no XML de preenchimento prévio, o nome desse elemento também será obtido 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 dados localmente no dispositivo. Usando recursos de anotação, como fotografias, os trabalhadores de campo podem fornecer informações precisas para integrar-se 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 suportados no Conjunto de formulários:
O padrão não é totalmente compatível com o conjunto de formulários | Exemplo |
Tamanho de entrada e tamanho de padrão incompatíveis | Quando pattern= num{z,zzz} E input= 12 345 ou 1 23 |
Padrões de cláusula de imagem com colchetes "(" ")" | num{(zz,zzz)} |
Vários padrões de dados | num{zz,zzz} | num{z,zzz,zzz} |
Padrões abreviados | num.integer{}, num.decimal{}, num.percent{} ou num.currency{} |