Abfragen gesendeter Daten

Der nächste Schritt besteht in der Abfrage der gesendeten Daten und der Tabellenanzeige. Dazu verwenden wir die folgende Software

QueryBuilder - UI-Komponente zum Erstellen von Abfragen

Datentabellen: Die Anzeige der Abfrage erfolgt tabellarisch.

Die folgende Benutzeroberfläche wurde erstellt, um die Abfrage der gesendeten Daten zu ermöglichen. Nur die im JSON-Schema als erforderlich markierten Elemente stehen der Abfrage zur Verfügung. Im folgenden Screenshot fragen wir nach allen Übermittlungen, bei denen die Auslieferung 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 Lernprogramms unterstützt nicht die Abfrage mehrerer Spalten.

Wenn Sie ein Formular zur Durchführung Ihrer Abfrage auswählen, wird ein GET an /bin/getdatakeysform gesendet. Dieser GET-Aufruf gibt die erforderlichen Felder zurück, die mit dem Schema des Formulars verknüpft sind. Die erforderlichen Felder werden dann in der Dropdown-Liste von QueryBuilder ausgefüllt, damit Sie die Abfrage erstellen können.

Im folgenden Codefragment wird die Methode getRequiredColumnsFromSchema des JSONSchemaOperations-Dienstes aufgerufen. Wir übergeben die Eigenschaften und erforderlichen Elemente des Schemas an diesen Methodenaufruf. Das Array, das von diesem Funktionsaufruf zurückgegeben wird, wird dann verwendet, um die Dropdown-Liste Abfrage Builder zu füllen

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, erfolgt ein Get-Aufruf an "/bin/querydata". Die von der Benutzeroberfläche von QueryBuilder erstellte Abfrage wird über den Parameter "Abfrage"an das Servlet übergeben. Das Servlet massiert dann diese Abfrage in eine SQL-Abfrage, die zur Abfrage der Datenbank verwendet werden kann. Wenn Sie z. B. alle Produkte mit dem Namen "Maus"abrufen möchten, lautet die Abfrage der Abfrage Builder $.productName = 'Maus'. Diese Abfrage wird dann in die folgende

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

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

So führen Sie dieses Beispiel auf Ihrem lokalen System aus

  1. Vergewissern Sie sich, dass Sie alle hier genannten Schritte ausgeführt haben
  2. Importieren Sie die Datei "Dashboard2.zip"mit AEM Package Manager. Dieses Paket enthält alle erforderlichen Bundles, Konfigurationseinstellungen, benutzerdefinierte Senden- und Beispieldaten zur Abfrage.
  3. Erstellen eines adaptiven Formulars mit dem JSON-Schema
  4. Konfigurieren Sie das adaptive Formular für die Übermittlung an die benutzerdefinierte Übermittlungsaktion "customsubmithelpx"
  5. Ausfüllen des Formulars und Senden
  6. Verweisen Sie auf Dashboard.html
  7. Wählen Sie das Formular aus und führen Sie eine einfache Abfrage durch

Auf dieser Seite

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now