Aangepaste verzending maken

AEM Forms bevat een aantal verzendopties uit het vak die voldoen aan de meeste gebruiksgevallen. Naast deze vooraf gedefinieerde verzendacties kunt u in AEM Forms uw eigen aangepaste verzendhandler schrijven om het verzenden van het formulier naar wens te verwerken.

Om een douane te schrijven verzend de dienst, werden de volgende stappen gevolgd

AEM project maken

Als u reeds een bestaand project van de Cloud Service van AEM Forms hebt kunt u springen aan het schrijven van douane voorlegt dienst

  • Maak een map met de naam cloudmanager op het station C.
  • Naar deze nieuwe map navigeren
  • Kopieer en kleef de inhoud van dit tekstdossierin uw bevel snelle venster.U kunt DarchetypeVersion=41 afhankelijk van de recentste versiemoeten veranderen. De meest recente versie was 41 op het moment dat dit artikel werd geschreven.
  • Voer het bevel uit door op Enter te drukken.Als alles correct gaat zou u het bericht van het bouwstijlsucces moeten zien.

De aangepaste verzendservice schrijven Write-the-custom-submit-service

Start IntelliJ en open AEM project. Creeer een nieuwe klasse java genoemd HandleRegistrationFormSubmission zoals aangetoond in het hieronder ontsproten scherm
douane-voorlegt-dienst

De volgende code is geschreven om de service te implementeren

package com.aem.bankingapplication.core;
import java.util.HashMap;
import java.util.Map;
import com.google.gson.Gson;
import org.osgi.service.component.annotations.Component;
import com.adobe.aemds.guide.model.FormSubmitInfo;
import com.adobe.aemds.guide.service.FormSubmitActionService;
import com.adobe.aemds.guide.utils.GuideConstants;
import com.google.gson.JsonObject;
import org.slf4j.*;

@Component(
        service=FormSubmitActionService.class,
        immediate = true
)
public class HandleRegistrationFormSubmission implements FormSubmitActionService {
    private static final String serviceName = "Core Custom AF Submit";
    private static Logger logger = LoggerFactory.getLogger(HandleRegistrationFormSubmission.class);



    @Override
    public String getServiceName() {
        return serviceName;
    }

    @Override
    public Map<String, Object> submit(FormSubmitInfo formSubmitInfo) {
        logger.error("in my custom submit service");
        Map<String, Object> result = new HashMap<>();
        logger.error("in my custom submit service");
        String data = formSubmitInfo.getData();
        JsonObject formData = new Gson().fromJson(data,JsonObject.class);
        logger.error("The form data is "+formData);
        JsonObject jsonObject = new JsonObject();
        jsonObject.addProperty("firstName",formData.get("firstName").getAsString());
        jsonObject.addProperty("lastName",formData.get("lastName").getAsString());
        result.put(GuideConstants.FORM_SUBMISSION_COMPLETE, Boolean.TRUE);
        result.put("json",jsonObject.toString());
        return result;
    }

}

Een crx-knooppunt maken onder apps

Breid de knoop ui.apps uit creeert een nieuw pakket genoemd HandleRegistrationFormSubmission onder de appelknoop zoals aangetoond in hieronder scherm-schot
crx-node
Creeer een dossier genoemd .content.xml onder HandleRegistrationFormSubmission. Kopieer en plak de volgende code in de .content.xml

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:sling="http://sling.apache.org/jcr/sling/1.0"
    jcr:description="Handle Registration Form Submission"
    jcr:primaryType="sling:Folder"
    guideComponentType="fd/af/components/guidesubmittype"
    guideDataModel="xfa,xsd,basic"
    submitService="Core Custom AF Submit"/>

De waarde van het submitService element moet serviceName = "Eigen AF van de Kern voorleggen" in de implementatie aanpassen FormSubmitActionService.

De code naar uw lokale AEM Forms-instantie implementeren

Voordat u de wijzigingen doorvoert naar de gegevensopslagruimte voor cloudbeheer, wordt aanbevolen de code te implementeren in de ontwerpinstantie van uw lokale cloud om de code te testen. Zorg ervoor dat de instantie van de auteur wordt uitgevoerd.
Als u de code wilt implementeren naar de ontwerpinstantie in de cloud, navigeert u naar de hoofdmap van uw AEM project en voert u de volgende opdracht uit

mvn clean install -PautoInstallSinglePackage

Hiermee wordt de code als één pakket geïmplementeerd op uw auteurinstantie

Push the code to cloud manager and Deploy the code

Nadat u de code op uw lokale instantie hebt gecontroleerd, drukt u op de code naar uw cloudinstantie.
Breng de wijzigingen aan in uw lokale opslagplaats voor it en vervolgens aan het cloudbeheerprogramma. U kunt naar de opstelling van het Gitverwijzen, duwend AEM project in de bewaarplaats van de wolkenmanageren plaatsend aan de artikelen van het ontwikkelomgeving.

Zodra de pijplijn met succes is uitgevoerd, zou u de verzendactie van uw vorm aan de douane moeten kunnen associëren voorlegt manager zoals aangetoond in het hieronder ontsproten scherm.
voorleggen-actie

Volgende stappen

Aangepaste reactie weergeven in uw reactie-app

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69