Erstellen einer benutzerdefinierten Sendeaktion für adaptive Forms (Kernkomponenten)
Mit einer Übermittlungsaktion können Benutzer das Ziel für die Daten auswählen, die aus einem Formular erfasst werden, und zusätzliche Funktionen definieren, die bei der Formularübermittlung ausgeführt werden. AEM Formular unterstützt mehrere vordefinierte Übermittlungsaktionen (OOTB), z. B. das Senden einer E-Mail oder das Speichern von Daten an SharePoint oder OneDrive.
Sie können auch eine benutzerdefinierte Sendeaktion erstellen, um Funktionen hinzuzufügen, die nicht in den vordefinierten Optionen enthalten sind. Integrieren Sie beispielsweise die Formulardaten in eine Drittanbieteranwendung oder eine personalisierte SMS-Benachrichtigung, die auf der Benutzereingabe basiert.
Voraussetzungen
Bevor Sie mit der Erstellung Ihrer ersten benutzerdefinierten Übermittlungsaktion für Adaptive Forms beginnen, stellen Sie Folgendes sicher:
-
Nur-Text-Editor (IDE): Obwohl jeder Nur-Text-Editor funktionieren kann, bietet eine integrierte Entwicklungsumgebung (IDE) wie Microsoft Visual Studio Code erweiterte Funktionen zur einfacheren Bearbeitung.
-
Git: Dieses Versionskontrollsystem ist für die Verwaltung von Codeänderungen erforderlich. Wenn Sie es nicht installiert haben, laden Sie es von https://git-scm.com herunter.
Erstellen der ersten benutzerdefinierten Sendeaktion für das Formular
Das folgende Diagramm zeigt die Schritte zum Erstellen einer benutzerdefinierten Übermittlungsaktion für ein adaptives Formular:
{width="50%,"}
AEM as a Cloud Service Git-Repository klonen.
-
Öffnen Sie die Befehlszeile und wählen Sie einen Ordner zum Speichern des AEM as a Cloud Service-Repositorys aus, z. B.
/cloud-service-repository/
. -
Führen Sie den folgenden Befehl aus, um das Repository zu klonen:
code language-none git clone https://git.cloudmanager.adobe.com/<organization-name>/<app-id>/
Wo finden Sie diese Informationen?
Eine schrittweise Anleitung zum Auffinden dieser Details finden Sie im Adobe Experience League-Artikel Zugriff auf Git.
Ihr Projekt ist bereit.
Wenn der Befehl erfolgreich abgeschlossen wurde, wird in Ihrem lokalen Verzeichnis ein neuer Ordner erstellt. Dieser Ordner wird nach Ihrer Anwendung benannt (z. B. app-id). Dieser Ordner enthält alle Dateien und den Code, die aus Ihrem AEM as a Cloud Service-Git-Repository heruntergeladen wurden. Sie finden
<appid>
für Ihr AEM-Projekt in der Dateiarchetype.properties
.In diesem Handbuch wird dieser Ordner als
[AEMaaCS project directory]
bezeichnet.
Neue Sendeaktion hinzufügen
-
Öffnen Sie den Repository-Ordner in einem Editor.
-
Navigieren Sie zum folgenden Verzeichnis in Ihrem
[AEMaaCS project directory]
:code language-none /ui.apps/src/main/content/jcr_root/apps/<app-id>/
Wichtig: Ersetzen Sie
<app-id>
durch Ihre tatsächliche Anwendungs-ID. -
Erstellen Sie einen neuen Ordner für Ihre benutzerdefinierte Sendeaktion und geben Sie ihm einen Namen Ihrer Wahl. Benennen Sie den Ordner beispielsweise mit "
customsubmitaction
". -
Navigieren Sie zum Ordner mit der hinzugefügten benutzerdefinierten Übermittlungsaktion .
Navigieren Sie innerhalb Ihres
[AEMaaCS project directory]
zu folgendem Pfad:/ui.apps/src/main/content/jcr_root/apps/<app-id>/customsubmitaction/
Important
: Replace <app-id> mit Ihrer eigentlichen Anwendungs-ID. -
Erstellen Sie eine neue Konfigurationsdatei.
Erstellen Sie im Ordnercustomsubmitaction
eine neue Datei mit dem Namen.content.xml
. -
Öffnen Sie diese Datei und fügen Sie den folgenden Inhalt ein. Ersetzen Sie dabei
[customsubmitaction]
durch den Namen Ihrer Sendeaktion.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]"/>
Ersetzen Sie beispielsweise "
[customsubmitaction]
"durch den Namen Ihrer angepassten Sendeaktion "1".Custom Submit Action
note note NOTE Merken Sie sich den Namen der [customsubmitaction], da derselbe Name in der Dropdownliste Submit action
beim Erstellen eines Formulars angezeigt wird.
Den neuen Ordner infilter.xml
einschließen
-
Navigieren Sie zur Datei
/ui.apps/src/main/content/META-INF/vault/filter.xml
in Ihrem [AEMaaCS-Projektverzeichnis]. -
Öffnen Sie die Datei und fügen Sie die folgende Zeile am Ende ein:
code language-none <filter root="/apps/<app-id>/[customsubmitaction-folder]"/>
Fügen Sie beispielsweise die folgende Codezeile hinzu, um den Ordner "
customsubmitaction
"zur Datei "filter.xml
"hinzuzufügen:code language-none <filter root="/apps/wknd/customsubmitaction"/>
-
Speichern Sie die Änderungen.
Implementieren Sie den Dienst für die hinzugefügte Übermittlungsaktion.
-
Navigieren Sie zum folgenden Verzeichnis in Ihrem
[AEMaaCS project directory]
:/core/src/main/java/com/<app-id>/core/service/
Important
: Replace <app-id> mit Ihrer eigentlichen Anwendungs-ID. -
Erstellen Sie eine neue Java-Datei, um den Dienst für die hinzugefügte Übermittlungsaktion zu implementieren. Fügen Sie beispielsweise die neue Java-Datei als
CustomSubmitService.java
hinzu. -
Öffnen Sie diese Datei und fügen Sie den Code für Ihre Implementierung der benutzerdefinierten Übermittlungsaktion hinzu.
Der folgende Java-Code ist beispielsweise ein OSGi-Dienst, der die Formularübermittlung durch Protokollierung der gesendeten Daten verarbeitet und den Status
OK
zurückgibt. Fügen Sie den folgenden Code in die DateiCustomSubmitService.java
ein: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; } }
-
Speichern Sie die Änderungen.
Stellen Sie den Code bereit.
Bereitstellen von Code für die lokale Entwicklungsumgebung
-
Stellen Sie die AEM as a Cloud Service
[AEMaaCS project directory]
in Ihrer lokalen Entwicklungsumgebung bereit, um die neue Sendeaktion auf Ihrem lokalen Computer auszuführen. Für die Bereitstellung in Ihrer lokalen Entwicklungsumgebung:-
Stellen Sie sicher, dass Ihre lokale Entwicklungsumgebung betriebsbereit ist. Wenn Sie noch keine lokale Entwicklungsumgebung eingerichtet haben, lesen Sie das Handbuch unter Einrichten einer lokalen Entwicklungsumgebung für AEM Forms.
-
Öffnen Sie das Terminal-Fenster oder eine Eingabeaufforderung.
-
Navigieren Sie zu "
[AEMaaCS project directory]
". -
Führen Sie den folgenden Befehl aus:
code language-none mvn -PautoInstallPackage clean install
-
Bereitstellen des Codes für die Cloud Service-Umgebung
-
Stellen Sie die AEM as a Cloud Service
[AEMaaCS project directory]
in Ihrer Cloud Service-Umgebung bereit. So stellen Sie es in Ihrer Cloud Service-Umgebung bereit:-
Übernehmen Sie Ihre Änderungen:
Nachdem Sie die neue benutzerdefinierte Konfiguration für die Übermittlungsaktion hinzugefügt haben, übertragen Sie Ihre Änderungen mit einer klaren Git-Meldung. (Beispiel: "Neue benutzerdefinierte Sendeaktion hinzugefügt").
-
Stellen Sie den aktualisierten Code bereit:
Lösen Sie eine Bereitstellung Ihres Codes durch die vorhandene Full-Stack-Pipeline aus. Der aktualisierte Code wird automatisch erstellt und mit der neuen Unterstützung für die Übermittlungsaktion bereitgestellt.
Wenn Sie noch keine Pipeline eingerichtet haben, lesen Sie das Handbuch zur Einrichtung einer Pipeline für AEM Forms as a Cloud Service.
Wie kann ich die Installation bestätigen?
Sobald das Projekt erfolgreich erstellt wurde, wird die benutzerdefinierte Übermittlungsaktion beim Erstellen eines Formulars in der Dropdown-Liste
Submit action
angezeigt.
Ihre Umgebung kann jetzt die hinzugefügte benutzerdefinierte Übermittlungsaktion beim Erstellen eines Formulars verwenden.
-
Vorschau eines adaptiven Formulars mit einer neu hinzugefügten Übermittlungsaktion
-
Melden Sie sich bei Ihrer AEM Forms as a Cloud Service-Instanz an.
-
Gehen Sie zu Formulare > Formulare und Dokumente.
-
Wählen Sie ein adaptives Formular aus und klicken Sie auf Bearbeiten. Das Formular wird im Bearbeitungsmodus geöffnet.
-
Öffnen Sie den Inhalts-Browser und wählen Sie die Guide-Container-Komponente Ihres adaptiven Formulars aus.
-
Klicken Sie auf das Symbol für die Guide-Container-Eigenschaften . Das Dialogfeld „Container für ein adaptives Formular“ wird geöffnet.
-
Klicken Sie auf die Registerkarte Übermittlung.
-
Wählen Sie aus der Dropdownliste Aktion übermitteln die Sendeaktion aus. Wählen Sie beispielsweise für die Sendeaktion "
Custom Submit Action
"aus. -
Füllen Sie das Formular aus und senden Sie es.
Nachdem das Formular erfolgreich gesendet wurde, können Sie die Adobe Experience Manager Web Console Configuration überprüfen, um die Aktion der benutzerdefinierten Sendeaktion in der lokalen Entwicklungsumgebung zu überprüfen.
-
Rufen Sie
http://<host>:<port>/system/console/configMgr
auf. -
Navigieren Sie zur Adobe Experience Manager Web Console Log Support unter
http://<host>:<port>/system/console/slinglog
. -
Klicken Sie auf die Option
logs/error.log
.
-
Öffnen Sie die Datei "
error.log
", um zu sehen, dass die Daten angehängt wurden.note note NOTE Um Fehlerprotokolle in der AEM as a Cloud Service-Umgebung anzuzeigen, können Sie Splunk verwenden.
Verwandte Artikel
- E-Mail senden
- An SharePoint senden
- Mit Formulardatenmodell senden
- An Azure Blob Storage senden
- An REST-Endpunkt senden
- An OneDrive senden
- AEM-Workflow aufrufen
- An Power Automate senden
- An Workfront Fusion senden
- Verbinden eines adaptiven Formulars mit einer Salesforce-Anwendung
- Verbinden eines adaptiven Formulars mit Microsoft
- Erstellen einer benutzerdefinierten Sendeaktion