Query dei dati inviati

Il passaggio successivo consiste nell’eseguire una query sui dati inviati e visualizzare i risultati in formato tabulare. A tale scopo, utilizziamo il seguente software:

QueryBuilder - Componente dell’interfaccia utente per la creazione di query

Tabelle dati: per visualizzare i risultati della query in forma di tabella.

La seguente interfaccia utente è stata creata per abilitare l’esecuzione di query sui dati inviati. Solo gli elementi contrassegnati come obbligatori nello schema JSON sono disponibili per le query su. Nella schermata seguente, stiamo eseguendo una query per tutte le richieste in cui deliverypref è SMS.

L’interfaccia utente di esempio per eseguire query sui dati inviati non utilizza tutte le funzionalità avanzate disponibili in QueryBuilder. Ti invitiamo a provarli da solo.

querybuilder

NOTE
La versione corrente di questa esercitazione non supporta l'esecuzione di query su più colonne.

Quando si seleziona un modulo per eseguire la query, viene effettuata una chiamata di GET a /bin/getdatakeysfromschema. Questa chiamata di GET restituisce i campi obbligatori associati allo schema dei moduli. I campi obbligatori vengono quindi inseriti nell'elenco a discesa di QueryBuilder per consentire la creazione della query.

Il seguente frammento di codice effettua una chiamata al metodo getRequiredColumnsFromSchema del servizio JSONSchemaOperations. Trasmettiamo le proprietà e gli elementi richiesti dello schema a questa chiamata del metodo. L’array restituito da questa chiamata di funzione viene quindi utilizzato per popolare l’elenco a discesa Query Builder

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 si fa clic sul pulsante GetResult, viene effettuata una chiamata Get a "/bin/querydata". La query generata dall'interfaccia utente di QueryBuilder viene passata al servlet tramite il parametro query. Il servlet massaggia quindi questa query in una query SQL che può essere utilizzata per eseguire query sul database. Ad esempio, se stai cercando di recuperare tutti i prodotti denominati "Mouse", la stringa di query di Query Builder è $.productname = 'Mouse'. Questa query verrà quindi convertita nel seguente

SELEZIONA * da aemformswithjson . formsubmissions dove JSON_EXTRACT( formsubmissions .formdata,"$.productName ")= 'Mouse'

Il risultato di questa query viene quindi restituito per popolare la tabella nell’interfaccia utente.

Per eseguire questo esempio sul sistema locale, attenersi alla seguente procedura

  1. Assicurati di aver seguito tutti i passaggi indicati qui
  2. Importa il file Dashboardv2.zip utilizzando Gestione pacchetti AEM. Questo pacchetto contiene tutti i bundle necessari, le impostazioni di configurazione, l’invio personalizzato e la pagina di esempio per eseguire query sui dati.
  3. Creare un modulo adattivo utilizzando lo schema json di esempio
  4. Configurare il modulo adattivo per l’invio all’azione di invio personalizzata "customsubmithelpx"
  5. Compila il modulo e invia
  6. Puntare il browser a dashboard.html
  7. Selezionare il modulo ed eseguire una query semplice
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e