Skapa en anpassad sändningsåtgärd för adaptiva Forms (kärnkomponenter)

Med en skicka-åtgärd kan användarna välja mål för de data som hämtas från ett formulär och definiera ytterligare funktioner som ska utföras när formulär skickas. AEM har stöd för flera färdiga åtgärder (OTB), t.ex. att skicka ett e-postmeddelande eller spara data till SharePoint eller OneDrive.

Du kan också skapa en anpassad skickaåtgärd för att lägga till funktioner som inte ingår i de färdiga alternativen. Integrera till exempel formulärdata med ett program från en annan leverantör eller utlösa ett personanpassat SMS-meddelande baserat på användarens indata.

Krav

Innan du börjar skapa din första anpassade sändningsåtgärd för Adaptive Forms ska du kontrollera att du har följande:

  • Vanlig textredigerare (IDE): En integrerad utvecklingsmiljö (IDE), som Microsoft Visual Studio Code, har avancerade funktioner för enklare redigering, även om en vanlig textredigerare kan fungera.

  • Git: Det här versionskontrollsystemet krävs för att hantera kodändringar. Om du inte har det installerat hämtar du det från https://git-scm.com.

Skapa din första anpassade skickaåtgärd för formulär

I bilden nedan visas stegen för att skapa en anpassad skickaåtgärd för ett anpassat formulär:

Anpassat arbetsflöde för skickaåtgärd {width="50%,"}

Klona AEM as a Cloud Service Git-databasen.

  1. Öppna kommandoraden och välj en katalog där AEM as a Cloud Service-databasen ska lagras, t.ex. /cloud-service-repository/.

  2. Kör följande kommando för att klona databasen:

    code language-none
    git clone https://git.cloudmanager.adobe.com/<organization-name>/<app-id>/
    

    Var hittar du den här informationen?

    Stegvisa instruktioner om hur du hittar dessa uppgifter finns i Adobe Experience League-artikeln Accessing Git.

    Projektet är klart!

    När kommandot har slutförts visas en ny mapp som har skapats i din lokala katalog. Den här mappen namnges efter ditt program (till exempel app-id). Den här mappen innehåller alla filer och all kod som hämtats från din AEM as a Cloud Service Git-databas. Du kan hitta <appid> för ditt AEM projekt i filen archetype.properties.

    Egenskaper för arkitekttyp

    I hela den här guiden ser vi den här mappen som [AEMaaCS project directory].

Lägg till ny skickaåtgärd

  1. Öppna databasmappen i en redigerare.

    Klonad databas

  2. Navigera till följande katalog i din [AEMaaCS project directory]:

    code language-none
    /ui.apps/src/main/content/jcr_root/apps/<app-id>/
    

    Viktigt: Ersätt <app-id> med ditt faktiska program-ID.

  3. Skapa en ny mapp för din anpassade sändningsåtgärd och ge den ett namn du väljer. Ge till exempel mappen namnet customsubmitaction.

    Skapa en anpassad mapp för sändningsåtgärder

  4. Navigera till den tillagda anpassade åtgärdskatalogen för skicka.

    Navigera till följande sökväg i din [AEMaaCS project directory]:

    /ui.apps/src/main/content/jcr_root/apps/<app-id>/customsubmitaction/

    Important: Ersätt <app-id> med ditt faktiska program-ID.

  5. Skapa ny konfigurationsfil.
    Skapa en ny fil med namnet .content.xml i mappen customsubmitaction.

    Skapa konfigurationsfil

  6. Öppna den här filen och klistra in följande innehåll och ersätt [customsubmitaction] med namnet på din sändningsåtgärd

    code language-none
    <?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="[customsubmitaction]"
    jcr:primaryType="sling:Folder"
    
    guideComponentType="fd/af/components/guidesubmittype"
    guideDataModel="basic,xfa,xsd"
    submitService="[customsubmitaction]"/>
    

    Ersätt till exempel [customsubmitaction] med ditt anpassade namn på åtgärden Skicka som Custom Submit Action.

    Skapa anpassad konfigurationsfil för skickaåtgärd

    note note
    NOTE
    Kom ihåg namnet på [anpassad inskickning], eftersom samma namn visas i listrutan Submit action när du redigerar ett formulär.

Inkludera den nya mappen ifilter.xml

  1. Navigera till filen /ui.apps/src/main/content/META-INF/vault/filter.xml i [AEMaaCS-projektkatalogen].

  2. Öppna filen och lägg till följande rad i slutet:

    code language-none
    <filter root="/apps/<app-id>/[customsubmitaction-folder]"/>
    

    Lägg till exempel till följande kodrad för att lägga till mappen customsubmitaction i filen filter.xml:

    code language-none
    <filter root="/apps/wknd/customsubmitaction"/>
    

    Lägg till skapade mappar i filter.xml

  3. Spara ändringarna.

Implementera tjänsten för den tillagda skicka-åtgärden.

  1. Navigera till följande katalog i din [AEMaaCS project directory]:
    /core/src/main/java/com/<app-id>/core/service/
    Important: Ersätt <app-id> med ditt faktiska program-ID.

  2. Skapa en ny Java-fil för att implementera tjänsten för den tillagda sändningsåtgärden. Lägg till exempel till en ny Java-fil som CustomSubmitService.java.

    Anpassad mapp för överföringsåtgärd

  3. Öppna den här filen och lägg till koden för den anpassade implementeringen av åtgärden skicka.

    Java-koden nedan är till exempel en OSGi-tjänst som hanterar formuläröverföringen genom att logga skickade data och returnerar statusen OK. Lägg till följande kod i filen CustomSubmitService.java:

    code language-none
    package com.wknd.core.service;
    
    import com.adobe.aemds.guide.model.FormSubmitInfo;
    import com.adobe.aemds.guide.service.FormSubmitActionService;
    import java.util.HashMap;
    import java.util.Map;
    import org.osgi.service.component.annotations.Component;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
        @Component(
        service = FormSubmitActionService.class,
        immediate = true
            )
        public class CustomSubmitService implements FormSubmitActionService {
    
        private static final String serviceName = "Custom Submit Action";
    
        private static Logger log = LoggerFactory.getLogger(CustomSubmitService.class);
    
        @Override
        public String getServiceName() {
        return serviceName;
        }
    
        @Override
        public Map<String, Object> submit(FormSubmitInfo formSubmitInfo) {
        String data = formSubmitInfo.getData();
        log.info("Using custom submit action service, [data] --> " + data);
        Map<String, Object> result = new HashMap<>();
        result.put("status", "OK");
        return result;
         }
        }
    

    Anpassad skickaåtgärd

  4. Spara ändringarna.

Distribuera koden.

Distribuera kod för lokal utvecklingsmiljö

  • Distribuera AEM as a Cloud Service, [AEMaaCS project directory], till din lokala utvecklingsmiljö för att testa den nya skicka-åtgärden på din lokala dator. Så här distribuerar du till din lokala utvecklingsmiljö:

    1. Kontrollera att den lokala utvecklingsmiljön är igång och körs. Om du inte redan har konfigurerat en lokal utvecklingsmiljö läser du i guiden Konfigurera en lokal utvecklingsmiljö för AEM Forms.

    2. Öppna terminalfönstret eller kommandotolken.

    3. Navigera till [AEMaaCS project directory].

    4. Kör följande kommando:

      code language-none
      mvn -PautoInstallPackage clean install
      

      Lokal distribution

Distribuera koden för Cloud Servicen

  • Distribuera AEM as a Cloud Service, [AEMaaCS project directory], till din Cloud Service. Så här distribuerar du till din Cloud Service:

    1. Genomför ändringarna:

      När du har lagt till den nya anpassade konfigurationen för åtgärden Skicka verkställer du ändringarna med ett tydligt Git-meddelande. (Exempel:"En ny anpassad sändningsåtgärd har lagts till").

    2. Distribuera den uppdaterade koden:

      Utlös en distribution av koden via den befintliga pipelinen för hela stacken. Den genererar och distribuerar automatiskt den uppdaterade koden med det nya stödet för åtgärden Skicka.

      Om du inte redan har konfigurerat en pipeline kan du läsa guiden Konfigurera en pipeline för AEM Forms as a Cloud Service.

      Molndistribution

      Hur bekräftar jag installationen?

      När projektet har skapats visas den anpassade åtgärden för att skicka i listrutan Submit action när du redigerar ett formulär.

      Listruta för anpassad sändningsåtgärd

    Miljön är nu klar att använda den nya anpassade skicka-åtgärden när du redigerar ett formulär.

Förhandsgranska ett anpassat formulär med en nyligen tillagd åtgärd för att skicka

  1. Logga in på din AEM Forms as a Cloud Service-instans.

  2. Gå till Forms > Forms och dokument.

    Forms och dokument

  3. Markera ett anpassat formulär och klicka på Redigera. Formuläret öppnas i redigeringsläge.

    Redigera formulär

  4. Öppna innehållsläsaren och markera komponenten Guide Container i det adaptiva formuläret.

  5. Klicka på ikonen för egenskaper för stödlinjebehållaren Egenskaper för stödlinje . Dialogrutan Adaptiv formulärbehållare öppnas.

  6. Klicka på fliken Submission.

  7. Välj åtgärden Skicka i listrutan Submit Action. Välj till exempel åtgärden Skicka som Custom Submit Action.

    Anpassat skickningsformulär

  8. Fyll i formuläret och skicka det.

    Skicka formulär

    Tack

    När formuläret har skickats kan du kontrollera Adobe Experience Manager Web Console-konfigurationen för att verifiera åtgärden för den anpassade skicka-åtgärden i den lokala utvecklingsmiljön.

  9. Gå till http://<host>:<port>/system/console/configMgr.

  10. Gå till Adobe Experience Manager Web Console Log Supporthttp://<host>:<port>/system/console/slinglog.

    ConfigMgr

  11. Klicka på alternativet logs/error.log.
    Öppna fel.loggfil

  12. Öppna filen error.log för att se att data har lagts till i den.

    error.log-fil

    note note
    NOTE
    Om du vill visa felloggar i AEM as a Cloud Service-miljön kan du använda Splunk.

Relaterade artiklar

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab