Frågar skickade data

Nästa steg är att fråga efter inskickade data och visa resultaten i tabellform. För att uppnå detta använder vi följande program:

QueryBuilder - UI-komponent för att skapa frågor

Datatabeller- Om du vill visa frågeresultaten i tabellformat.

Följande användargränssnitt har skapats för att aktivera frågor om skickade data. Endast de element som markerats som obligatoriska i JSON-schemat är tillgängliga för att fråga mot. På skärmbilden nedan frågar vi efter alla sändningar där deliverypref är SMS.

Det exempelgränssnitt som används för att fråga efter skickade data använder inte alla avancerade funktioner som finns i QueryBuilder. Du uppmuntras att prova dem själv.

querybuilder

NOTE
Den aktuella versionen av den här självstudiekursen stöder inte frågor i flera kolumner.

När du väljer ett formulär som ska utföra din fråga görs ett GET-anrop till /bin/getdatakeysfromschema. Det här GET-anropet returnerar de obligatoriska fält som är kopplade till formulärets schema. De obligatoriska fälten fylls sedan i i den nedrullningsbara listan i QueryBuilder så att du kan skapa frågan.

Följande kodfragment gör ett anrop till metoden getRequiredColumnsFromSchema i JSONSchemaOperations-tjänsten. Vi skickar egenskaperna och de nödvändiga elementen i schemat till det här metodanropet. Arrayen som returneras av det här funktionsanropet används sedan för att fylla i listrutan för frågebyggaren

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;

 }

När knappen GetResult klickas anropas Get till "/bin/querydata". Vi skickar frågan som skapats av QueryBuilder-användargränssnittet till servern via frågeparametern. Servern masserar sedan frågan till SQL-fråga som kan användas för att fråga databasen. Om du till exempel söker efter alla produkter med namnet "Mouse" är frågesträngen i Frågebyggaren $.productname = 'Mouse'. Den här frågan konverteras sedan till följande

MARKERA * från aemformswithjson . formsending where JSON_EXTRACT( formsending.formdata,"$.productName ")= 'Mouse'

Resultatet av den här frågan returneras för att fylla i tabellen i användargränssnittet.

Utför följande steg om du vill att exemplet ska köras på ditt lokala system:

  1. Se till att du har följt alla steg som nämns här
  2. Importera Dashboardv2.zip med AEM Package Manager. Det här paketet innehåller alla nödvändiga paket, konfigurationsinställningar, anpassad sändning och exempelsida för att fråga efter data.
  3. Skapa ett adaptivt formulär med exempelschema för json
  4. Konfigurera det adaptiva formuläret att skicka till den anpassade åtgärden för att skicka till"customSubmithelpx"
  5. Fyll i formuläret och skicka in
  6. Peka webbläsaren till dashboard.html
  7. Markera formuläret och gör en enkel fråga
recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e