AEM 6.4 chegou ao fim do suporte estendido e esta documentação não é mais atualizada. Para obter mais detalhes, consulte nossa períodos de assistência técnica. Encontre as versões compatíveis here.
Os formulários Adobe Experience Manager (AEM) podem ajudar você a transformar transações complexas em experiências digitais simples e deliciosas. No entanto, requer um esforço concertado para implementar, construir, executar e manter um ecossistema AEM Forms eficiente e produtivo.
Este documento fornece diretrizes e recomendações que o administrador, autores e desenvolvedores de formulários podem aproveitar ao trabalhar com o AEM Forms, especialmente o componente de formulários adaptáveis. Ele discute as práticas recomendadas desde a configuração de um projeto de desenvolvimento de formulários até a configuração, personalização, criação e otimização do AEM Forms. Essas práticas recomendadas contribuem coletivamente para o desempenho geral do ecossistema AEM Forms.
Além disso, veja algumas leituras recomendadas para práticas recomendadas gerais de AEM:
Uma estrutura de projeto simplificada e padronizada pode reduzir significativamente os esforços de desenvolvimento e manutenção. O Apache Maven é uma ferramenta de código aberto recomendada para criar projetos AEM.
Usar o Apache Maven aem-project-archetype
para criar e gerenciar a estrutura para AEM projeto. Ele cria a estrutura e os modelos recomendados para o projeto do AEM. Além disso, ele fornece sistemas de automação de compilação e controle de alterações para ajudar a gerenciar o projeto.
archetype:generate
para gerar a estrutura inicial.eclipse:eclipse
para gerar os arquivos de projeto do eclipse e importar o projeto para o eclipse.Para obter mais informações, consulte Como criar projetos AEM usando o Apache Maven.
A ferramenta FileVault ou VLT ajuda a mapear o conteúdo de uma instância CRX ou AEM para seu sistema de arquivos. Ele fornece operações de gerenciamento de controle de alterações, como check-in e check-out do conteúdo AEM projeto. Consulte Como usar a ferramenta VLT.
Se você usar o ambiente de desenvolvimento integrado do Eclipse, poderá usar as ferramentas do Desenvolvedor AEM para integração perfeita do Eclipse IDE com instâncias AEM para criar aplicativos AEM. Para obter detalhes, consulte Ferramentas de desenvolvedor AEM para Eclipse.
Depois de configurar seu AEM projeto, defina a estratégia para criar e personalizar modelos e componentes de formulários adaptáveis.
Um modelo de formulário adaptável é uma página AEM especializada que define a estrutura e as informações do cabeçalho e do rodapé de um formulário adaptável. Um modelo tem layouts, estilos e estrutura básica pré-configurados para um formulário adaptável. O AEM Forms fornece modelos e componentes prontos para uso que podem ser usados para criar formulários adaptáveis. No entanto, você pode criar modelos e componentes personalizados de acordo com suas necessidades. É recomendável reunir os requisitos para modelos e componentes adicionais que você precisará em seus formulários adaptáveis. Para obter detalhes, consulte Personalização de formulários e componentes adaptáveis.
O AEM Forms permite criar formulários adaptáveis com base nos seguintes modelos de formulário. Os modelos de formulário atuam como interface para a troca de dados entre um formulário e um sistema de AEM e fornecem uma estrutura baseada em XML para o fluxo de dados dentro e fora de um formulário adaptável. Além disso, os modelos de formulário impõem regras e restrições em formulários adaptáveis na forma de restrições de esquema e XFA.
É importante escolher cuidadosamente o modelo de dados que não apenas atende aos seus requisitos, como estende seus investimentos existentes em ativos XFA e XSD, se houver. É recomendável usar o Modelo XSD para criar modelos de formulário, pois o XML gerado contém dados de acordo com o XPATH definido pelo esquema. Usar o Modelo XSD como uma opção padrão para o Modelo de dados de formulário também ajuda porque dissocia o design de formulário do sistema de back-end que processa e consome dados e melhora o desempenho do formulário devido a um para um mapeamento do campo de formulário. Além disso, BindRef do campo pode ser transformado em XPATH de seu valor de dados em XML.
Para obter mais informações, consulte Criar um formulário adaptável.
O AEM Forms fornece modelos de formulário adaptáveis prontos para uso que podem ser usados para criar formulários adaptáveis. Você também pode criar seus próprios templates. AEM fornece modelos estáticos e editáveis.
Para criar estilo em um campo ou instância de painel específico, use estilo em linha. Como alternativa, você pode definir uma classe em um arquivo CSS e especificar o nome da classe na propriedade Classe CSS do componente.
Inclua uma biblioteca do cliente em um componente para aplicar estilos de maneira consistente em formulários adaptáveis ou fragmentos que usam esse componente. Para obter mais informações, consulte Criar um componente de página de formulário adaptável.
Aplique estilos definidos em uma biblioteca do cliente para selecionar formulários adaptáveis especificando o caminho para a biblioteca do cliente no campo de caminho do arquivo CSS nas propriedades do contêiner de formulário adaptável.
Para criar uma biblioteca do cliente de seus estilos, você pode configurar o arquivo CSS personalizado na clientlib base do Editor de temas ou nas propriedades do Contêiner de formulários.
Os formulários adaptáveis fornecem layouts de painel, como responsivos, com guias, opções e assistentes, para controlar como os componentes do formulário são posicionados em um painel. Você pode criar layouts de painel personalizados e disponibilizá-los para uso por autores de formulários. Para obter mais informações, consulte Criação de componentes de layout personalizados para formulários adaptáveis.
Você também pode personalizar componentes de formulário adaptáveis específicos, como campos e layout do painel.
Consulte Tratamento de informações pessoais identificáveis para recomendações sobre o tratamento de dados de PII.
Use o navegador Objetos na barra lateral para acessar rapidamente os campos na hierarquia do formulário. Use a caixa de pesquisa para procurar objetos na árvore de formulários ou objetos para navegar de um objeto para outro.
Para exibir e editar as propriedades de um componente no navegador de componentes na barra lateral, selecione o componente e clique em . Você também pode clicar duas vezes em um componente para exibir suas propriedades no navegador de propriedades.
Use atalhos de teclado para realizar ações rápidas em seus formulários. Consulte Atalhos de teclado do AEM Forms.
Os componentes de formulário adaptável são recomendados para uso somente em páginas de formulário adaptáveis. Os componentes têm dependência de sua hierarquia principal. Portanto, não os use em uma página AEM.
Além disso, consulte descrições de componentes e práticas recomendadas em Introdução à criação de formulários adaptáveis.
A AEM Forms fornece uma editor de regras que permite criar regras para adicionar comportamento dinâmico aos componentes de formulário adaptáveis. Usando essas regras, é possível avaliar as condições e acionar ações em componentes, como mostrar ou ocultar campos, calcular valores, alterar dinamicamente a lista suspensa e assim por diante.
O editor de regras fornece um editor visual e um editor de códigos para escrever regras. Considere o seguinte ao gravar regras usando o modo editor de código:
Use nomes significativos e exclusivos para campos e componentes de formulário para evitar possíveis conflitos ao gravar regras.
Use this
para um componente se referir a si mesmo em uma expressão de regra. Ela garante que a regra permaneça válida mesmo se o nome do componente for alterado. Por exemplo, field1.valueCommit script: this.value > 10
.
Use nomes de componentes ao se referir a outros componentes de formulário. Use o value
propriedade para buscar o valor de um campo ou componente. Por exemplo, field1.value
.
Consulte os componentes por hierarquia exclusiva relativa para evitar qualquer conflito. Por exemplo, parentName.fieldName
.
Ao manipular regras complexas ou de uso comum, considere escrever lógica de negócios como funções em uma biblioteca cliente separada que você pode especificar e reutilizar em formulários adaptáveis. A biblioteca do cliente deve ser uma biblioteca independente e não deve ter dependências externas, exceto em jQuery e Underscore.js. Você também pode usar a biblioteca do cliente para impor revalidação do lado do servidor de dados de formulário enviados.
Os formulários adaptáveis fornecem um conjunto de APIs que podem ser usadas para se comunicar e executar ações em formulários adaptáveis. Algumas das principais APIs são as seguintes. Para obter mais informações, consulte Referência da API da biblioteca JavaScript para Adaptive Forms.
guideBridge.reset()
: Redefine um formulário.
guideBridge.submit()
: Envia um formulário.
guideBridge.setFocus(somExp, focusOption, runCompletionExp)
: Define o foco de um campo.
guideBridge.validate(errorList, somExpression, focus)
: Valida um formulário.
guideBridge.getDataXML(options)
: Obtém dados de formulário como XML.
guideBridge.resolveNode(somExpression)
: Obtém um objeto de formulário.
guideBridge.setProperty(somList, propertyName, valueList)
: Define a propriedade de um objeto de formulário.
Além disso, é possível usar as seguintes propriedades de campo:
field.value
para alterar o valor de um campo.ield.enabled
para ativar/desativar um campo.field.visible
para alterar a visibilidade de um campo.Os autores de formulários adaptativos podem precisar gravar o código JavaScript para criar a lógica comercial em um formulário. Embora o JavaScript seja eficiente e eficaz, é provável que possa comprometer as expectativas de segurança. Portanto, é necessário garantir que o autor do formulário seja uma pessoa confiável e que haja processos para revisar e aprovar o código JavaScript antes que um formulário seja colocado em produção. O administrador pode restringir o acesso ao editor de regras para grupos de usuários com base em sua função ou função. Consulte Conceder acesso ao editor de regras para grupos de usuários selecionados.
É possível usar expressões em regras para tornar os formulários adaptáveis dinâmicos. Todas as expressões são expressões JavaScript válidas e usam APIs de modelo de script de formulários adaptáveis. Essas expressões retornam valores de determinados tipos. Para obter mais informações sobre expressões e práticas recomendadas, consulte Expressões de formulário adaptável.
Adaptável para temas permite criar estilos reutilizáveis que podem ser aplicados em formulários para proporcionar aparência e estilo consistentes. É recomendável usar Temas para definir o estilo de componentes e painéis de formulário. Algumas práticas recomendadas em torno de temas são as seguintes:
Para obter mais informações, consulte Temas.
Geralmente, os autores e usuários finais enfrentam problemas de desempenho ao carregar formulários grandes no modo de criação ou no tempo de execução. À medida que o número de objetos (campos e painéis) no formulário aumenta, a criação e a experiência de tempo de execução começam a degradar-se. Também impede que vários autores colaborem e criem um formulário simultaneamente.
Considere as seguintes práticas recomendadas para superar problemas de desempenho com formulários grandes:
É recomendável criar formulários adaptáveis usando o modelo de dados de formulário XSD, mesmo ao converter um XFA em um formulário adaptável, se possível.
Inclua apenas os campos e painéis em formulários adaptáveis que capturam informações do usuário. Considere manter o conteúdo estático mínimo ou use URLs para abri-los em uma janela separada.
Embora cada formulário seja projetado para uma finalidade específica, há alguns segmentos comuns na maioria dos formulários. Por exemplo, detalhes pessoais, endereço, detalhes de emprego e assim por diante. Criar fragmentos de formulário adaptáveis para elementos e seções de formulário comuns e usá-los em formulários. Também é possível salvar um painel em um formulário existente como um fragmento. Qualquer alteração em um fragmento é refletida em todos os formulários adaptáveis associados. Ela promove a criação colaborativa, pois vários autores podem trabalhar simultaneamente em diferentes fragmentos que compõem um formulário.
Use Salvar e retomar com o salvamento automático para salvar o formulário adaptável periodicamente e permitir que os usuários retornem posteriormente para preencher o formulário.
Configure os fragmentos para carregar de maneira lenta. No tempo de execução, o fragmento marcado para carregar lentamente é renderizado somente quando necessário. Reduz significativamente o tempo de carregamento de formulários grandes. Também é compatível com fragmentos com painéis repetíveis. Para obter mais informações, consulte Configurar carregamento lento.
É possível preencher previamente campos de formulário adaptáveis com dados obtidos do backend para ajudar os usuários a preencher rapidamente o formulário e evitar erros de digitação.
O AEM Forms fornece um serviço de preenchimento prévio para ler dados de um arquivo XML de dados predefinido e preencher previamente os campos de um formulário adaptável com o conteúdo no arquivo XML de preenchimento prévio.
O XML de dados de preenchimento prévio deve estar em conformidade com o esquema do modelo de formulário associado ao formulário adaptável.
Incluir afBoundedData
e afUnBoundedData
no XML de preenchimento prévio para preencher os campos vinculados e não vinculados em um formulário adaptável.
Para formulários adaptáveis com base no modelo de dados de formulário, o AEM Forms fornece o Serviço de preenchimento prévio do modelo de dados de formulário pronto para uso. O serviço de preenchimento prévio consulta fontes de dados para objetos de modelo de dados no formulário adaptável e preenche os valores de campo ao renderizar o formulário.
Também é possível usar os protocolos de arquivo, crx, service ou http para preencher formulários adaptáveis.
O AEM Forms oferece suporte a serviços de preenchimento prévio personalizados, que podem ser conectados como um serviço OSGi para preencher previamente formulários adaptáveis.
Para obter mais informações, consulte Preencher previamente campos de formulário adaptáveis.
Formulários adaptáveis exigem ações de envio para processar dados especificados pelo usuário. Uma ação Enviar determina a tarefa executada nos dados enviados por meio de um formulário adaptável.
Você pode aproveitar a experiência de vários sinais do Acrobat Sign em formulários adaptáveis. Considere o seguinte ao configurar o Acrobat Sign em formulários adaptáveis. Para obter detalhes, consulte Uso do Acrobat Sign em um formulário adaptável.
Um documento de registro (DoR) é uma versão PDF nivelada de um formulário adaptável que pode ser impresso, assinado ou arquivado.
Dependendo do modelo de dados de formulário no qual um formulário adaptável é baseado, é possível configurar um modelo para DoR da seguinte maneira:
Configure o cabeçalho, o rodapé, as imagens, a cor, a fonte e assim por diante, diretamente da guia Document of Record do editor de formulário adaptável.
Use DoRService
para gerar o DoR de forma programática.
Excluir campos ocultos do DoR.
Use afAcceptLang
parâmetro de solicitação para exibir DoR em outra localidade.
Plug-in do AEM Chrome é uma extensão de navegador para o Google Chrome que fornece ferramentas para depurar formulários adaptáveis. Os autores e desenvolvedores de formulários podem usar essas ferramentas para:
Para obter mais informações, consulte Plug-in do AEM Chrome - Formulário adaptável.
O SDK do Calvin é uma API de utilitário para os desenvolvedores do Adaptive Forms testarem o Adaptive Forms. O SDK do Calvin é criado sobre Estrutura de teste do Hobbes.js. Você pode usar a estrutura para testar o seguinte:
Para obter mais informações, consulte Automatizar o teste de formulários adaptáveis.
As validações do lado do servidor são necessárias para impedir qualquer tentativa de ignorar validações no cliente e qualquer possível compromisso de envios de dados e violações de regras comerciais. As validações do lado do servidor são executadas no servidor carregando a biblioteca do cliente necessária.
AEM fornece fluxos de trabalho de tradução que podem ser usados para localizar formulários adaptáveis. Para obter mais informações, consulte Uso AEM fluxo de trabalho de tradução para localizar formulários adaptáveis.
Algumas práticas recomendadas ao localizar formulários adaptáveis são as seguintes:
Use fragmentos de formulário adaptáveis para elementos comuns em formulários e localize fragmentos. Isso garante que você localize um fragmento uma vez e ele reflita em todos os formulários, onde o fragmento localizado é usado.
Quaisquer modificações, como adicionar um novo componente ou aplicar um script em um formulário localizado, não são localizadas automaticamente. Portanto, é necessário finalizar um formulário antes de localizá-lo para evitar vários ciclos de localização.
Use afAcceptLang
parâmetro de solicitação para substituir a localidade do navegador e renderizar o formulário na localidade especificada. Por exemplo, o URL a seguir forçará a renderização do formulário no idioma japonês, independentemente do local especificado na configuração do navegador:
https://[*server*]:[*port*]/<*contextPath*>/<*formFolder*>/<*formName*>.html?wcmmode=disabled&afAcceptLang=ja
Atualmente, o AEM Forms suporta a localização de conteúdo de formulários adaptáveis em inglês (en), espanhol (es), francês (fr), italiano (it), alemão (de), japonês (ja), português-brasileiro (pt-BR), chinês (zh-CN), chinês-Taiwan (zh-TW) e coreano (ko-KR). No entanto, é possível adicionar suporte a novas localidades para formulários adaptáveis em tempo de execução. Para obter mais informações, consulte Suporte a novas localidades para localização de formulários adaptáveis.
Você pode configurar uma instância adicional do servidor AEM Forms que fica atrás do firewall em uma zona segura. Você pode usar essa instância para:
Geralmente, é necessário mover seus projetos de AEM de um ambiente para outro. Algumas das coisas-chave a lembrar ao mover-se são as seguintes:
Algumas práticas recomendadas para configurar o AEM para melhorar o desempenho geral são as seguintes:
Ative a compactação da biblioteca do cliente HTML para JavaScript e CSS a partir do Felix Console.
Armazene em cache todas as bibliotecas de clientes em /etc.clientlibs/fd
e quaisquer bibliotecas personalizadas adicionais do cliente no AEM dispatcher para aumentar a capacidade de resposta e a segurança de seus formulários publicados. Para obter mais informações, consulte Dispatcher.
Não armazenar em cache /content/forms/af/
e /content/dam/formsanddocuments/*
caminhos. para obter informações detalhadas sobre como configurar o armazenamento de formulários adaptáveis em cache, consulte Armazenamento em cache de formulários adaptáveis.
Ative o HTML por meio do módulo de compactação do servidor da Web. Para obter mais informações, consulte Ajuste de desempenho do servidor AEM Forms.
Aumente as chamadas por configuração de solicitação para formulários grandes. Consulte Otimização do desempenho de formulários grandes e complexos.
Criar páginas de erro personalizadas mostradas pelo manipulador de erros.
Servidor AEM Forms seguro.
nosamplecontent
modo de execução para garantir que não haja conteúdo de amostra e usuários de amostra implantados no servidor de produção. Consulte Executando AEM no modo Pronto para produção.Mantenha o tamanho do heap até um mínimo de 8 GB. Para outras configurações, consulte Ajuste de desempenho do servidor AEM Forms.
Use sessões de usuário de serviço em vez de sessões de administrador para executar tarefas de nível de serviço. Para obter mais informações, consulte Autenticação de serviço.
Em um ambiente de produção, é recomendável não armazenar os dados de formulário enviados em AEM repositório. A implementação padrão das ações Forms Portal Store, Store Content e Store PDF submit armazenam dados de formulário em AEM repositório. Essas ações de envio destinam-se somente a fins de demonstração. Além disso, os recursos Salvar e Retomar e Salvar automaticamente usam o armazenamento do portal por padrão. Portanto, considere as seguintes recomendações:
Armazenamento de dados de rascunho: Se estiver usando o recurso Rascunho de formulários adaptáveis, você deve implementar uma SPI (Service Provider Interface) personalizada para armazenar dados de rascunho em armazenamento mais seguro, como banco de dados. Para obter mais informações, consulte Amostra para integrar o componente de rascunhos e envios ao banco de dados.
Armazenamento de dados de envio: Se estiver usando o armazenamento de envio do portal de formulários, você deve implementar um SPI personalizado para armazenar dados de envio em um banco de dados. Consulte Amostra para integrar o componente de rascunhos e envios ao banco de dados para obter uma integração de amostra.
Você também pode gravar uma ação de envio personalizada que armazena dados e anexos de formulário em armazenamento seguro. Consulte Gravação da ação de Enviar personalizado para formulários adaptáveis para obter mais informações.
Um dos principais desafios para as organizações é como lidar com dados de identificação pessoal (PII). Algumas práticas recomendadas que ajudarão você a lidar com esses dados são as seguintes: