Query dei dati inviati

Il passaggio successivo consiste nell’interrogare i dati inviati e visualizzare i risultati in modo tabulare. A questo scopo, utilizziamo il seguente software:

QueryBuilder - Componente dell’interfaccia utente per creare query

Tabelle dati- Per visualizzare i risultati della query in modo tabulare.

È stata creata la seguente interfaccia utente per abilitare la query dei dati inviati. Solo gli elementi contrassegnati come necessari nello schema JSON sono resi disponibili per la query. Nella schermata seguente, stiamo eseguendo una query per tutti gli invii in cui il deliverypref è SMS.

L’interfaccia utente di esempio per eseguire una query sui dati inviati non utilizza tutte le funzionalità avanzate disponibili in QueryBuilder. Siete incoraggiati a provarli da soli.

querybuilder

NOTA

La versione corrente di questa esercitazione non supporta la query su più colonne.

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

Lo snippet di codice seguente 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 compilare l'elenco a discesa del generatore di query

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”. Trasmettiamo la query generata dall’interfaccia utente di QueryBuilder al servlet attraverso il parametro di query. Il servlet quindi massaggia questa query nella 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 Query Builder è $.productname = 'Mouse'. Questa query verrà quindi convertita nel seguente

SELEZIONA * da aemformswithjson . moduli inviati in cui JSON_EXTRACT( moduli inviati .formdata,"$.productName ")= 'Mouse'

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

Per eseguire questo esempio sul sistema locale, esegui i seguenti passaggi

  1. Assicurati di aver seguito tutti i passaggi indicati qui
  2. Importa il file Dashboardv2.zip utilizzando AEM Package Manager. Questo pacchetto contiene tutti i bundle, le impostazioni di configurazione, l'invio personalizzato e la pagina di esempio necessari 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. Posiziona il browser su dashboard.html
  7. Selezionare il modulo ed eseguire query semplici

In questa pagina