Gegevens ophalen uit Azure-opslag
- Van toepassing op:
- Experience Manager 6.5
- Onderwerpen:
- Adaptieve formulieren
Gemaakt voor:
- Beginner
- Ontwikkelaar
In dit artikel wordt uitgelegd hoe u een adaptief formulier kunt vullen met de gegevens die in Azure-opslag zijn opgeslagen.
Aangenomen wordt dat u de adaptieve formuliergegevens in Azure-opslag hebt opgeslagen en nu uw adaptieve formulier met die gegevens wilt vooraf invullen.
GET-aanvraag maken
De volgende stap bestaat uit het schrijven van de code om de gegevens van de Azure Storage op te halen met behulp van de blobID. De volgende code is geschreven om de gegevens op te halen. De url werd geconstrueerd gebruikend de waarden sasToken en storageURI van de configuratie OSGi en blobID die tot de functie getBlobData wordt overgegaan
@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;
}
Wanneer een adaptief formulier wordt weergegeven met een hulplijnparameter in de URL, haalt de aangepaste pagina-component die aan de sjabloon is gekoppeld het adaptieve formulier op en vult deze met de gegevens van Azure-opslag.
Hier volgt de code in de jsp van de pagina-component die aan de sjabloon is gekoppeld
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);
}
De oplossing testen
-
Controleer of de gegevens zijn opgeslagen in de Azure-opslagcontainer van uw keuze. Kopieer de blob-id.
-
Voorproef de vorm BankAccounten specificeer identiteitskaart van de Blob als begeleide parameter in URL voor de vorm die met de gegevens van Azure opslag moet worden vooraf bevolkt