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.
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
- Verifique se você seguiu todas as etapas mencionadas aqui
- 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.
- Criar um formulário adaptável usando a amostra de esquema json
- Configurar o formulário adaptável para enviar para a ação de envio personalizada "customsubmithelpx"
- Preencha o formulário e envie
- Aponte seu navegador para dashboard.html
- Selecione o formulário e execute uma consulta simples