Skapa anpassad sändning
AEM Forms tillhandahåller ett antal inskickningsalternativ som uppfyller de flesta användningsområdena.Förutom de här fördefinierade inskickningsåtgärderna kan du med AEM Forms skriva en egen anpassad inskickningshanterare som bearbetar inskickandet av formuläret efter dina behov.
Så här skriver du en anpassad skicka-tjänst:
Skapa AEM
Om du redan har ett AEM Forms as a Cloud Service-projekt kan du gå till att skriva en anpassad skicka-tjänst
- Skapa en mapp som kallas molnhanterare på din c-enhet.
- Navigera till den nya mappen
- Kopiera och klistra in innehållet i den här textfilen i kommandotolken.Du kan behöva ändra DarchetypeVersion=41 beroende på den senaste versionen. Den senaste versionen var 41 när den här artikeln skrevs.
- Kör kommandot genom att trycka på tangenten enter.Om allt är rätt ska du se meddelandet om att det lyckades.
Skriv den anpassade skicka-tjänsten Write-the-custom-submit-service
Starta IntelliJ och öppna AEM. Skapa en ny java-klass med namnet HandleRegistrationFormSubmission som visas på skärmbilden nedan
Följande kod skrevs för att implementera tjänsten
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;
}
}
Skapa en crx-nod under appar
Expandera noden ui.apps och skapa ett nytt paket med namnet HandleRegistrationFormSubmission under noden apps, som visas på skärmbilden nedan
Skapa en fil med namnet .content.xml under HandleRegistrationFormSubmission . Kopiera och klistra in följande kod i .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"/>
Värdet för elementet submitService måste matcha serviceName = "Core Custom AF Submit" i FormSubmitActionService-implementeringen.
Distribuera koden till din lokala AEM Forms-instans
Innan du skickar ändringarna till molnhanterardatabasen bör du distribuera koden till den lokala molnförberedda författarinstansen för att testa koden. Kontrollera att författarinstansen körs.
Om du vill distribuera koden till den molnförberedda författarinstansen går du till rotmappen för ditt AEM projekt och kör följande kommando
mvn clean install -PautoInstallSinglePackage
Detta distribuerar koden som ett enda paket till författarinstansen
Skicka koden till molnhanteraren och distribuera koden
När du har verifierat koden på din lokala instans skickar du koden till din molninstans.
Skicka ändringarna till din lokala Git-databas och sedan till molnhanterardatabasen. Du kan referera till artiklarna Git-konfiguration, AEM projekt i molnhanterardatabasen och distribuering till utvecklingsmiljön.
När piplexin har körts korrekt bör du kunna koppla formulärskickaåtgärden till den anpassade överföringshanteraren, som visas på skärmbilden nedan