Consulta de dados enviados

A próxima etapa é consultar os dados enviados e exibir os resultados em forma de tabela. Para isso, estamos usando o seguinte software:

QueryBuilder - Componente da interface do usuário para criar consultas

Tabelas de dados- Para exibir os resultados da consulta em forma de tabela.

A interface de usuário a seguir foi criada para permitir a consulta dos dados enviados. Somente os elementos marcados como obrigatórios no esquema JSON são disponibilizados para consulta. Na captura de tela abaixo, estamos consultando todos os envios em que a pref de entrega é SMS.

A interface de exemplo para consultar os dados enviados não usa todos os recursos avançados disponíveis no QueryBuilder. Você é incentivado a experimentá-los por conta própria.

querybuilder

NOTE
A versão atual deste tutorial não oferece suporte à consulta de várias colunas.

Quando você seleciona um formulário para executar o query, é feita uma chamada GET para /bin/getdatakeysfromschema. Essa chamada GET retorna os campos obrigatórios associados ao esquema dos formulários. Os campos obrigatórios são preenchidos na lista suspensa do QueryBuilder para que você crie a consulta.

O trecho de código a seguir faz uma chamada para o método getRequiredColumnsFromSchema do serviço JSONSchemaOperations. Passamos as propriedades e os elementos necessários do esquema para essa chamada de método. A matriz retornada por essa chamada de função é usada para preencher a lista suspensa do construtor de consultas

public JSONArray getData(String formName) throws SQLException, IOException {

  org.json.JSONArray arrayOfDataKeys = new org.json.JSONArray();
  JSONObject jsonSchema = jsonSchemaOperations.getJSONSchemaFromDataBase(formName);
  Map<String, String> refKeys = new HashMap<String, String>();

  try {
   JSONObject properties = jsonSchema.getJSONObject("properties");
   JSONArray requiredFields = jsonSchema.has("required") ? jsonSchema.getJSONArray("required") : null;
   jsonSchemaOperations.getRequiredColumnsFromSchema(properties, arrayOfDataKeys, "", jsonSchema, refKeys,
     requiredFields);
  } catch (JSONException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return arrayOfDataKeys;

 }

Quando o botão GetResult é clicado, uma chamada Get é feita para "/bin/querydata". Passamos a consulta criada pela interface do usuário do QueryBuilder para o servlet por meio do parâmetro de consulta. O servlet então faz uma massa dessa consulta na consulta SQL que pode ser usada para consultar o banco de dados. Por exemplo, se você estiver procurando para recuperar todos os produtos chamados "Mouse", a sequência de consulta do Construtor de consultas será $.productname = 'Mouse'. Esta query será convertida no seguinte

SELECIONE * do aemformswithjson. formsubmissions onde JSON_EXTRACT( formsubmissions .formdata,"$.productName ")= 'Mouse'

O resultado dessa consulta é retornado para preencher a tabela na interface do usuário.

Para executar esse exemplo em seu sistema local, execute as seguintes etapas

  1. Verifique se você seguiu todas as etapas mencionadas aqui
  2. Importe o Dashboardv2.zip usando o Gerenciador de pacotes do AEM. Este pacote contém todos os pacotes necessários, definições de configuração, envio personalizado e página de exemplo para consultar dados.
  3. Criar um formulário adaptável usando a amostra de esquema json
  4. Configurar o formulário adaptável para enviar para a ação de envio personalizada "customsubmithelpx"
  5. Preencha o formulário e envie
  6. Aponte seu navegador para dashboard.html
  7. Selecione o formulário e execute uma consulta simples
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e