Integrar formulário adaptável ao banco de dados usando o fluxo de trabalho AEM submit-forms-to-database-using-forms-portal

O serviço de automated forms conversion (AFCS) permite converter um formulário de PDF não interativo, um formulário do Acro ou um formulário de PDF baseado em XFA em um formulário adaptável. Ao iniciar o processo de conversão, você tem a opção de gerar um formulário adaptável com ou sem vínculos de dados.

Se você optar por gerar um formulário adaptável sem associações de dados, será possível integrar o formulário adaptável convertido com um modelo de dados de formulário, esquema XML ou esquema JSON após a conversão. Para o modelo de dados de formulário, é necessário vincular campos de formulário adaptáveis manualmente com o modelo de dados de formulário. No entanto, se você gerar um formulário adaptável com vinculações de dados, o serviço de conversão associará automaticamente os formulários adaptáveis a um esquema JSON e criará uma vinculação de dados entre os campos disponíveis no formulário adaptável e no esquema JSON. Em seguida, você pode integrar o formulário adaptável a um banco de dados de sua escolha, preencher dados no formulário e enviá-lo para o banco de dados. Da mesma forma, após a integração bem-sucedida com o banco de dados, é possível configurar campos no formulário adaptável convertido para recuperar valores do banco de dados e preencher previamente os campos de formulário adaptável.

A figura a seguir descreve os diferentes estágios de integração de um formulário adaptável convertido com um banco de dados:

integração do banco de dados

Este artigo descreve as instruções passo a passo para executar com êxito todos esses estágios de integração.

Pré-requisitos pre-requisites

  • Configurar uma instância de autor do AEM 6.4 ou 6.5
  • Instale o service pack mais recente para sua instância do AEM
  • Versão mais recente do pacote complementar do AEM Forms
  • Configurar o serviço do Automated forms conversion
  • Configurar um banco de dados. O banco de dados usado na implementação da amostra é o MySQL 5.6.24. No entanto, é possível integrar o formulário adaptável convertido a qualquer banco de dados de sua escolha.

Exemplo de formulário adaptável sample-adaptive-form

Para executar o caso de uso para integrar formulários adaptáveis convertidos ao banco de dados usando um fluxo de trabalho AEM, baixe o seguinte arquivo de PDF de amostra.

Você pode baixar o exemplo de formulário Fale Conosco usando:

Obter arquivo

O arquivo PDF serve como entrada para o serviço de Automated forms conversion (AFCS). O serviço converte esse arquivo em um formulário adaptável. A imagem a seguir representa o formulário entre em contato conosco de amostra em formato PDF.

formulário de aplicativo de empréstimo de exemplo

Instale o arquivo mysql-connector-java-5.1.39-bin.jar install-mysql-connector-java-file

Execute as seguintes etapas, em todas as instâncias de autor e publicação, para instalar o arquivo mysql-connector-java-5.1.39-bin.jar:

  1. Navegue até http://server:port/system/console/depfinder e procure pelo pacote com.mysql.jdbc.
  2. Na coluna Exportado por, verifique se o pacote foi exportado por algum pacote. Continue se o pacote não for exportado por um pacote.
  3. Navegue até http://server:port/system/console/bundles e clique em Install/Update.
  4. Clique em Choose File e procure o arquivo mysql-connector-java-5.1.39-bin.jar. Marque também as caixas de seleção Start Bundle e Refresh Packages.
  5. Clique em Install ou Update. Após a conclusão, reinicie o servidor.
  6. (Somente para Windows) Desative o firewall do sistema para o seu sistema operacional.

Preparar dados para o modelo de formulário prepare-data-for-form-model

A Integração de dados do AEM Forms permite configurar e conectar-se a diferentes fontes de dados. Depois de gerar um formulário adaptável usando o processo de conversão, você pode definir o modelo de formulário com base em um modelo de dados de formulário, XSD ou um esquema JSON. Você pode usar um banco de dados, o Microsoft Dynamics ou qualquer outro serviço de terceiros para criar um modelo de dados de formulário.

Este tutorial usa o banco de dados MySQL como a fonte para criar um modelo de dados de formulário. Crie um esquema no banco de dados e adicione a tabela contactus ao esquema com base nos campos disponíveis no formulário adaptável.

Dados de exemplo mysql

Você pode usar a seguinte instrução DDL para criar a tabela contactus no banco de dados.

CREATE TABLE `contactus` (
   `name` varchar(45) NOT NULL,
   `email` varchar(45) NOT NULL,
   `phonenumber` varchar(10) DEFAULT NULL,
   `issuedesc` varchar(1000) DEFAULT NULL,
   PRIMARY KEY (`email`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

Configurar conexão entre a instância do AEM e o banco de dados configure-connection-between-aem-instance-and-database

Execute as seguintes etapas de configuração para criar uma conexão entre a instância do AEM e o banco de dados MYSQL:

  1. Vá para a página Configuração do Console da Web AEM em http://server:port/system/console/configMgr.

  2. Localize e clique para abrir Apache Sling Connection Pooled DataSource no modo de edição, na Configuração do Console da Web. Especifique os valores das propriedades conforme descrito na tabela a seguir:

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 10-row-2 11-row-2 12-row-2 13-row-2 14-row-2 15-row-2 html-authored
    Propriedade Valor
    Nome da fonte de dados Um nome de fonte de dados para filtrar drivers do pool de fonte de dados.
    Classe de driver JDBC com.mysql.jdbc.Driver
    URI da conexão JDBC jdbc//[host]:[port]/[schema_name]
    Nome de usuário Um nome de usuário para autenticar e executar ações em tabelas do banco de dados
    Senha Senha associada ao nome de usuário
    Isolamento de transação READ_COMMITTED
    Máximo de conexões ativas 1000
    Máximo de Conexões Ociosas 100
    Mínimo de conexões ociosas 10
    Tamanho inicial 10
    Espera Máxima 100000
    Teste ao tomar emprestado Marcado
    Teste enquanto ocioso Marcado
    Consulta de validação Os valores de exemplo são SELECT 1(mysql), select 1 from dual(oracle), SELECT 1(MS Sql Server) (validationQuery)
    Tempo limite de consulta de validação 10000

Criar modelo de dados de formulário create-form-data-model

Depois de configurar o MYSQL como a fonte de dados, execute as seguintes etapas para criar um modelo de dados de formulário:

  1. Na instância do autor AEM, navegue até Forms > Data Integrations.

  2. Toque em Create > Form Data Model.

  3. No assistente Create Form Data Model, especifique workflow_submit como o nome do modelo de dados de formulário. Toque em Next.

  4. Selecione a fonte de dados MYSQL que você configurou na seção anterior e toque em Create.

  5. Toque em Edit e expanda a fonte de dados listada no painel esquerdo para selecionar a tabela contatos, os serviços get e insert e toque em Add Selected.

    Dados de exemplo mysql

  6. Selecione o objeto de modelo de dados no painel direito e toque em Edit Properties. Selecione get e insert nas listas suspensas Read Service e Write Service. Especifique os argumentos para o serviço de leitura e toque em Done.

  7. Na guia Services, selecione o serviço get e toque em Edit Properties. Selecione o Output Model Object, desabilite o botão Return array e toque em Done.

  8. Selecione o serviço Insert e toque em Edit Properties. Selecione o Input Model Object e toque em Done.

  9. Toque em Save para salvar o modelo de dados de formulário.

Você pode baixar o modelo de dados de formulário de amostra usando:

Obter arquivo

Gerar formulários adaptáveis com vinculação JSON generate-adaptive-forms-with-json-binding

Use o serviço do Automated forms conversion (AFCS) para converter o formulário Fale Conosco em um formulário adaptável com associação de dados. Certifique-se de não marcar a caixa de seleção Generate adaptive form(s) without data bindings ao gerar o formulário adaptável.

Formulário adaptável com associação JSON

Selecione o Formulário Fale Conosco convertido, disponível na pasta output em Forms & Documents, e toque em Edit. Toque em Preview, insira valores nos campos de formulário adaptável e toque em Submit.

Faça logon em crx-repository e navegue até /content/forms/fp/admin/submit/data para exibir os valores enviados no formato JSON. A seguir estão exemplos de dados no formato JSON quando você envia o formulário adaptável Fale Conosco convertido:

{
  "afData": {
    "afUnboundData": {
      "data": {}
    },
    "afBoundData": {
      "data": {
        "name1": "Gloria",
        "email": "abc@xyz.com",
        "phone_number": "2346578965",
        "issue_description": "Test message"
      }
    },
    "afSubmissionInfo": {
      "computedMetaInfo": {},
      "stateOverrides": {},
      "signers": {},
      "afPath": "/content/dam/formsanddocuments/docs_conversion/output/sample_form_json",
      "afSubmissionTime": "20191204014007"
    }
  }
}

Agora é necessário criar um modelo de fluxo de trabalho que possa processar esses dados e enviá-los ao banco de dados MYSQL usando o modelo de dados de formulário criado nas seções anteriores.

Criar um modelo de fluxo de trabalho para processar dados JSON create-workflow-model

Execute as seguintes etapas para criar um modelo de fluxo de trabalho e enviar os dados do formulário adaptável para o banco de dados:

  1. Abra o console Modelos de fluxo de trabalho. A URL padrão é https://server:port/libs/cq/workflow/admin/console/content/models.html/etc/workflow/models.

  2. Selecione Create, depois Create Model. A caixa de diálogo Add Workflow Model é exibida.

  3. Insira o Title e Name (opcional). Por exemplo, workflow_json_submit. Toque em Done para criar o modelo.

  4. Selecione o modelo de fluxo de trabalho e toque em Edit para abrir o modelo no modo de edição. Toque em + e adicione a etapa Invoke Form Data Model Service ao modelo de fluxo de trabalho.

  5. Toque na etapa Invoke Form Data Model Service e em Configurar .

  6. Na guia Form Data Model, selecione o modelo de dados de formulário criado no campo Form Data Model path e selecione insert na lista suspensa Service.

  7. Na guia Input for Service, selecione Provide input data using literal, variable, or a workflow metadata, and a JSON file na lista suspensa, marque a caixa de seleção Map input fields from input JSON, selecione Relative to payload e forneça data.xml como o valor para o campo Select input JSON document using.

  8. Na seção Service Arguments, forneça os seguintes valores para os argumentos do modelo de dados de formulário:

    Invocar Serviço de Modelo de Dados de Formulário

    Observe que os campos de modelo de dados de formulário, por exemplo, nome do ponto do contato, são mapeados para afData.afBoundData.data.name1, que se refere às associações de esquema JSON para o formulário adaptável enviado.

Configurar envio de formulário adaptável configure-adaptive-form-submission

Execute as seguintes etapas para enviar o formulário adaptável para o modelo de fluxo de trabalho criado na seção anterior:

  1. Selecione o formulário Fale Conosco convertido disponível na pasta output em Forms & Documents e toque em Edit.

  2. Abra as propriedades do formulário adaptável tocando em Form Container e em Configurar .

  3. Na seção Submission, selecione Invoke an AEM workflow na lista suspensa Submit Action, selecione o modelo de fluxo de trabalho criado na seção anterior e especifique data.xml no campo Data File Path.

  4. Toque em Salvar para salvar as propriedades.

  5. Toque em Preview, insira valores nos campos de formulário adaptável e toque em Submit. Os valores enviados agora são exibidos na tabela do banco de dados MYSQL em vez de crx-repository.

Configurar formulário adaptável para preencher previamente os valores do banco de dados

Execute as seguintes etapas para configurar o formulário adaptável para preencher previamente os valores do banco de dados MYSQL com base na chave primária definida na tabela (Email neste caso):

  1. Toque no campo Email do formulário adaptável e toque em Editar regra .

  2. Toque em Create e selecione is changed na lista suspensa Select State na seção When.

  3. Na seção Then, selecione Invoke Service e get como o serviço para o modelo de dados de formulário criado em uma seção anterior deste artigo.

  4. Selecione o Email na seção Input e os três campos restantes do modelo de dados de formulário, Nome, Número de Telefone e Descrição do Problema na seção Output. Toque em Done para salvar as configurações.

    Definir Configurações de Preenchimento Prévio de Email

    Como resultado, com base nas entradas de Email existentes no banco de dados MYSQL, você pode preencher previamente os valores dos três campos restantes no modo Preview do formulário adaptável. Por exemplo, se você especificar aya.tan@xyz.com no campo Email (com base nos dados existentes na seção Preparar modelo de dados de formulário deste artigo) e sair do campo, os três campos restantes, Nome, Número de Telefone e Descrição do Problema serão exibidos automaticamente no formulário adaptável.

Você pode baixar a amostra de formulário adaptável convertido usando:

Obter arquivo

recommendation-more-help
c40c2ccf-3d1b-4b47-b158-c4646051b46c