Abfrage gesendeter Daten

Der nächste Schritt besteht darin, die gesendeten Daten abzufragen und die Ergebnisse tabellarisch anzuzeigen. Dazu werden wir die folgende Software verwenden

QueryBuilder - UI-Komponente zum Erstellen von Abfragen

Datentabellen: Zum Anzeigen der Abfrageergebnisse in tabellarischer Form.

Die folgende Benutzeroberfläche wurde erstellt, um die Abfrage der gesendeten Daten zu ermöglichen. Nur die im JSON-Schema als erforderlich markierten Elemente werden für die Abfrage zur Verfügung gestellt. Im folgenden Screenshot werden alle Übermittlungen abgefragt, bei denen der Versandpref SMS ist.

Die Beispielbenutzeroberfläche zur Abfrage der gesendeten Daten verwendet nicht alle in QueryBuilder verfügbaren erweiterten Funktionen. Es wird empfohlen, sie selbst auszuprobieren.

QueryBuilder

HINWEIS

Die aktuelle Version dieses Tutorials unterstützt nicht die Abfrage mehrerer Spalten.

Wenn Sie ein Formular auswählen, um Ihre Abfrage auszuführen, wird ein GET-Aufruf an /bin/getdatakeysfromschema durchgeführt. Dieser GET-Aufruf gibt die erforderlichen Felder zurück, die mit dem Formularschema verknüpft sind. Die erforderlichen Felder werden dann in der Dropdown-Liste von QueryBuilder ausgefüllt, damit Sie die Abfrage erstellen können.

Das folgende Codefragment führt einen Aufruf der Methode getRequiredColumnsFromSchema des JSONSchemaOperations-Dienstes durch. Wir übergeben die Eigenschaften und erforderlichen Elemente des Schemas an diesen Methodenaufruf. Das Array, das von diesem Funktionsaufruf zurückgegeben wird, wird dann zum Ausfüllen der Dropdown-Liste "Query Builder"verwendet

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;

 }

Wenn auf die Schaltfläche GetResult geklickt wird, wird ein Get-Aufruf an "/bin/querydata" gesendet. Die von der QueryBuilder-Benutzeroberfläche erstellte Abfrage wird über den Abfrageparameter an das Servlet übergeben. Das Servlet massiert diese Abfrage in eine SQL-Abfrage, die zum Abfragen der Datenbank verwendet werden kann. Wenn Sie beispielsweise alle Produkte mit dem Namen "Maus"abrufen möchten, lautet die Abfragezeichenfolge von Query Builder $.productName = 'Maus'. Diese Abfrage wird dann in die folgende

WÄHLEN SIE * aus aemformswithjson . formsubmissions, wobei JSON_EXTRACT( formsubmissions .formdata,"$.productName ")= 'Maus'

Das Ergebnis dieser Abfrage wird dann zurückgegeben, um die Tabelle in der Benutzeroberfläche zu füllen.

Führen Sie die folgenden Schritte aus, um dieses Beispiel auf Ihrem lokalen System auszuführen

  1. Vergewissern Sie sich, dass Sie alle hier genannten Schritte ausgeführt haben
  2. Importieren Sie die Datei "Dashboards v2.zip"mit AEM Package Manager. Dieses Paket enthält alle erforderlichen Bundles, Konfigurationseinstellungen, benutzerdefinierte Übermittlung und Beispielseite zur Abfrage von Daten.
  3. Erstellen eines adaptiven Formulars mit dem JSON-Beispielschema
  4. Konfigurieren des adaptiven Formulars für die Übermittlung an die benutzerdefinierte Sendeaktion "customsubmithelpx"
  5. Formular ausfüllen und senden
  6. Zeigen Sie Ihren Browser auf dashboard.html
  7. Wählen Sie das Formular aus und führen Sie eine einfache Abfrage durch

Auf dieser Seite