Hämta data från Azure-lagring
I den här artikeln visas hur du fyller i ett adaptivt formulär med data som lagras i Azure-lagringen.
Du förutsätts ha lagrat de adaptiva formulärdata i Azure-lagringsplatsen och nu vill förifylla ditt adaptiva formulär med dessa data.
Skapa GET-förfrågan
Nästa steg är att skriva koden för att hämta data från Azure Storage med hjälp av blobID. Följande kod skrevs för att hämta data. URL:en konstruerades med ASToken- och storageURI-värden från OSGi-konfigurationen och det blobID som skickades till funktionen getBlobData
@Override
public String getBlobData(String blobID) {
String sasToken = azurePortalConfigurationService.getSASToken();
String storageURI = azurePortalConfigurationService.getStorageURI();
log.debug("The SAS Token is " + sasToken);
log.debug("The Storage URL is " + storageURI);
String httpGetURL = storageURI + blobID;
httpGetURL = httpGetURL + sasToken;
HttpGet httpGet = new HttpGet(httpGetURL);
org.apache.http.impl.client.CloseableHttpClient httpClient = HttpClientBuilder.create().build();
CloseableHttpResponse httpResponse = null;
try {
httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
String blobData = EntityUtils.toString(httpEntity);
log.debug("The blob data I got was " + blobData);
return blobData;
} catch (ClientProtocolException e) {
log.debug("Got Client Protocol Exception " + e.getMessage());
} catch (IOException e) {
log.debug("Got IOEXception " + e.getMessage());
}
return null;
}
När ett adaptivt formulär återges med en guid-parameter i url hämtas och fylls det adaptiva formuläret med data från Azure-lagringen av den anpassade sidkomponenten som är kopplad till mallen.
Här följer koden i jsp för den sidkomponent som är associerad med mallen
com.aemforms.saveandfetchfromazure.StoreAndFetchDataFromAzureStorage azureStorage = sling.getService(com.aemforms.saveandfetchfromazure.StoreAndFetchDataFromAzureStorage.class);
String guid = request.getParameter("guid");
if(guid!=null&&!guid.isEmpty())
{
String dataXml = azureStorage.getBlobData(guid);
slingRequest.setAttribute("data",dataXml);
}
Testa lösningen
-
Importera den anpassade formulärmallen och sidkomponenten som är kopplad till mallen
-
Ange lämpliga värden i Azure Portal Configuration med hjälp av OSGi-konfigurationskonsolen.
-
Verifiera att data lagras i den Azure-lagringsbehållare du väljer. Kopiera blob-ID:t.
-
Förhandsgranska formuläret BankAccount och ange blob-ID som en GUID-parameter i URL:en för formuläret som ska fyllas i i förväg med data från Azure-lagringen