Gegevens ophalen uit Azure-opslag

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.

NOTE
De code in dit artikel werkt niet met op kerncomponenten gebaseerde adaptieve formulieren.​ het gelijkwaardige artikel voor kern op component gebaseerde adaptieve vorm is hier beschikbaar ​

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

recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e