Schulung: Formulardatenmodell erstellen tutorial-create-form-data-model
Dieses Tutorial ist ein Teil der Serie Erstellen Ihres ersten adaptives Formulars. Adobe empfiehlt, der Reihe chronologisch zu folgen, um den gesamten Anwendungsfall des Tutorials zu verstehen, auszuführen und praktisch zu erleben.
Über das Tutorial about-the-tutorial
Mit dem Datenintegrationsmodul von AEM Forms können Sie ein Formulardatenmodell aus verschiedenen Backend-Datenquellen wie AEM-Benutzerprofil, RESTful-Web-Services, SOAP-basierten Web-Services, OData-Services und relationalen Datenbanken erstellen. Sie können Datenmodellobjekte und -dienste in einem Formulardatenmodell konfigurieren und einem adaptiven Formular zuordnen. Adaptive Formularfelder sind an Datenmodellobjekt-Eigenschaften gebunden. Mit den Diensten können Sie das adaptive Formular vorab befüllen und gesendete Formulardaten zurück an das Datenmodellobjekt schreiben.
Weitere Informationen zum Formulardatenmodell und zur Formulardatenintegration finden Sie unter Datenintegration für AEM Forms.
Dieses Tutorial führt Sie durch die Schritte zum Vorbereiten, Erstellen, Konfigurieren und Verknüpfen eines Formulardatenmodells mit einem adaptiven Formular. Am Ende dieses Tutorials können Sie Folgendes:
Das Formulardatenmodell sieht etwa wie folgt aus:
A. Konfigurierte Datenquellen B. Datenquellenschemata C. Verfügbare Services D. Datenmodellobjekte E. Konfigurierte Services
Voraussetzungen prerequisites
Bevor Sie beginnen, stellen Sie Folgendes sicher:
- MySQL-Datenbank mit Beispieldaten, wie im Abschnitt „Voraussetzungen“ von So erstellen Sie Ihr erstes adaptives Formular beschrieben
- OSGi-Paket für MySQL-JDBC-Treiber, wie unter Bündeln der JDBC-Datenbanktreiber erläutert
- Adaptives Formular, wie in der ersten Schulung Erstellen eines adaptives Formulars erläutert
Schritt 1: Konfigurieren der MySQL-Datenbank als Datenquelle config-database
Sie können verschiedene Arten von Datenquellen konfigurieren, um ein Formulardatenmodell zu erstellen. Für dieses Tutorial konfigurieren wir die MySQL-Datenbank, die Sie konfiguriert und mit Beispieldaten befüllt haben. Informationen zu anderen unterstützten Datenquellen und deren Konfiguration finden Sie unter AEM Forms-Datenintegration.
Gehen Sie folgendermaßen vor, um Ihre MySQL-Datenbank zu konfigurieren:
-
Installieren Sie den JDBC-Treiber für die MySQL-Datenbank als OSGi-Bundle:
-
Laden Sie das MySQL JDBC-Treiber-OSGi-Bundle von
http://www.java2s.com/ref/jar/download-orgosgiservicejdbc100jar-file.html
herunter. -
Melden Sie sich bei der AEM Forms-Autoreninstanz als Administrator an und wechseln Sie zu den AEM-Web-Konsole-Bundles. Die Standard-URL lautet http://localhost:4502/system/console/bundles.
-
Wählen Sie Installieren/Aktualisieren aus. Ein Dialogfeld Bundles hochladen/installieren wird angezeigt.
-
Wählen Sie Datei auswählen, um das OSGi-Bundle für den MySQL-JDBC-Treiber zu suchen und auszuwählen. Wählen Sie Bundle starten und Pakete aktualisieren und dann Installieren oder aktualisieren aus. Stellen Sie sicher, dass der JDBC-Treiber der Oracle Corporation’s für MySQL aktiv ist. Der Treiber wird installiert.
-
-
Konfigurieren Sie die MySQL-Datenbank als Datenquelle:
-
Wechseln Sie zu AEM-Web-Konsole unter http://localhost:4502/system/console/configMgr.
-
Suchen Sie die Konfiguration Apache Sling Connection Pooled DataSource. Wählen Sie die Konfiguration aus, um sie im Bearbeitungsmodus zu öffnen.
-
Geben Sie im Konfigurationsdialog die folgenden Details an:
- Datenquellenname: Sie können einen beliebigen Namen angeben. beispielsweise WeRetailMySQL.
- Name der DataSource-Diensteigenschaft: Geben Sie den Namen der Diensteigenschaft an, die den DataSource-Namen enthält. Er wird beim Registrieren der Datenquelleninstanz als OSGi-Dienst angegeben. Zum Beispiel: datasource.name.
- JDBC-Treiberklasse: Geben Sie den Java™-Klassennamen des JDBC-Treibers an. Geben Sie für die MySQL-Datenbank com.mysql.jdbc.Driver an.
- JDBC-Verbindungs-URI: Geben Sie die Verbindungs-URL der Datenbank an. Für eine MySQL-Datenbank, die auf Port 3306 und nach dem Schema
weretail
ausgeführt wird, lautet die URL:jdbc:mysql://'server':3306/weretail?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
note note NOTE Wenn sich die MySQL-Datenbank hinter einer Firewall befindet, ist der Datenbank-Host-Name kein öffentliches DNS. Die IP-Adresse der Datenbank muss der /etc/hosts-Datei des AEM-Host-Computers hinzugefügt werden. - Benutzername: Benutzername der Datenbank. Es ist erforderlich, den JDBC-Treiber zu aktivieren, um eine Verbindung mit der Datenbank herzustellen.
- Kennwort: Kennwort für die Datenbank. Es ist erforderlich, den JDBC-Treiber zu aktivieren, um eine Verbindung mit der Datenbank herzustellen.
note note NOTE AEM Forms unterstützt keine NT-Authentifizierung für MySQL. Wechseln Sie zur AEM-Web-Konsole unter https://localhost:4502/system/console/configMgr und suchen Sie nach „Apache Sling Connection Pooled Datasource“. Legen Sie für die Eigenschaft „JDBC-Verbindungs-URI“ den Wert von „integratedSecurity“ auf „False“ fest und verwenden Sie den erstellten Benutzernamen und das erstellte Kennwort für die Verbindung mit der MySQL-Datenbank. -
Test on Borrow: Aktivieren Sie die Option Test on Borrow.
-
Test on Return: Aktivieren Sie die Option Test on Return.
-
Validierungsabfrage: Geben Sie eine SQL SELECT-Abfrage an, damit Verbindungen aus dem Pool validiert werden. Die Abfrage muss mindestens eine Zeile zurückgeben. Zum Beispiel select * from customerdetails.
-
Transaktions-Isolierung: Setzen Sie den Wert auf READ_COMMITTED.
Belassen Sie für andere Eigenschaften die standardmäßigen Werte und wählen Sie Speichern aus.
Eine Konfiguration ähnlich der folgenden wird erstellt.
-
Schritt 2: Erstellen eines Formulardatenmodells create-fdm
AEM Forms bietet eine intuitive Benutzeroberfläche zum Erstellen eines Formulardatenmodells aus konfigurierten Datenquellen. Sie können mehrere Datenquellen in einem Formulardatenmodell verwenden. Für diesen Anwendungsfall können Sie die konfigurierte MySQL-Datenquelle verwenden.
Gehen Sie folgendermaßen vor, um ein Formulardatenmodell zu erstellen:
-
Navigieren Sie in der AEM-Autoreninstanz zu Formulare > Datenintegration.
-
Wählen Sie Erstellen >Formulardatenmodell aus.
-
Geben Sie im Dialogfeld „Formulardatenmodell erstellen“ einen Namen für das Formulardatenmodell ein. Zum Beispiel customer-shipping-billing-details. Wählen Sie Weiter aus.
-
Im Bildschirm „Datenquelle auswählen“ werden alle konfigurierten Datenquellen angezeigt. Wählen Sie als Datenquelle WeRetailMySQL und dann Erstellen aus.
Das Formulardatenmodell customer-shipping-billing-details wird erstellt.
Schritt 3: Konfigurieren des Formulardatenmodells config-fdm
Das Konfigurieren des Formulardatenmodells umfasst Folgendes:
- Hinzufügen von Datenmodellobjekten und Diensten
- Konfigurieren von Lese- und Schreibdiensten für Datenmodellobjekte
Gehen Sie wie folgt vor, um das Formulardatenmodell zu konfigurieren:
-
Navigieren Sie in der AEM-Autoreninstanz zu Formulare > Datenintegrationen. Die Standard-URL lautet https://localhost:4502/aem/forms.html/content/dam/formsanddocuments-fdm.
-
Das Formulardatenmodell customer-shipping-billing-details, dass Sie zuvor erstellt haben, ist hier aufgeführt. Öffnen Sie es im Bearbeitungsmodus.
Die ausgewählte Datenquelle WeRetailMySQL wird im Formulardatenmodell konfiguriert.
-
Erweitern Sie den WeRailMySQL-Datenquellenbaum. Wählen Sie die folgenden Datenmodellobjekte und -dienste aus dem Schema weretail > customerdetails aus, um das Datenmodell zu bilden:
-
Datenmodellobjekte:
- id
- name
- shippingAddress
- city
- state
- Postleitzahl
-
Dienste:
- Abrufen
- Aktualisieren
Wählen Sie Ausgewählte hinzufügen, um dem Formulardatenmodell ausgewählte Datenmodellobjekte und Dienste hinzuzufügen.
note note NOTE Die Standard-Services zum Abrufen, Aktualisieren und Einfügen von JDBC-Datenquellen werden standardmäßig mit dem Formulardatenmodell bereitgestellt. -
-
Konfigurieren Sie die Lese- und Schreibdienste für das Datenmodellobjekt.
-
Wählen Sie das Datenmodellobjekt customerdetails und dann Eigenschaften bearbeiten aus.
-
Wählen Sie aus dem Dropdown-Menü „Lesedienst“ get. Das Argument id, das der Primärschlüssel im Datenmodellobjekt des „customerdetails“ ist, wird automatisch hinzugefügt. Wählen Sie aus und konfigurieren Sie das Argument wie folgt.
-
Wählen Sie auf ähnliche Weise Aktualisieren als Schreibdienst. Das Objekt customerdetails wird automatisch als Argument hinzugefügt. Das Argument wird wie folgt konfiguriert.
Fügen Sie das Argument id hinzu und konfigurieren Sie es wie folgt.
-
Wählen Sie Fertig aus, um die Eigenschaften des Datenmodellobjekts zu speichern. Wählen Sie anschließend Speichern aus, um das Formulardatenmodell zu speichern.
Die Dienste get und update werden als Standarddienste für das Datenmodellobjekt hinzugefügt.
-
-
Wechseln Sie zur Registerkarte Dienste und konfigurieren Sie die Dienste get und update.
-
Wählen Sie den Dienst get und dann Eigenschaften bearbeiten aus. Das Dialogfeld „Eigenschaften“ wird geöffnet.
-
Geben Sie im Dialogfeld „Eigenschaften bearbeiten“ Folgendes an:
-
Titel: Geben Sie den Titel des Dienstes an. Zum Beispiel: Versandadresse abrufen.
-
Beschreibung: Geben Sie eine Beschreibung an, die eine detaillierte Funktionsweise des Dienstes enthält. Beispiel:
Dieser Dienst ruft die Lieferadresse und andere Kundendaten aus der MySQL-Datenbank ab.
-
Ausgabemodellobjekt: Wählen Sie ein Schema mit Kundendaten. Beispiel:
customerdetail schema
-
Array zurückgeben: Deaktivieren Sie die Option Array zurückgeben.
-
Argumente: Wählen Sie das Argument mit dem Namen ID aus.
Klicken Sie auf Fertig. Der Dienst zum Abrufen von Kundendaten aus der MySQL-Datenbank ist konfiguriert.
-
-
Wählen Sie den Dienst Aktualisieren und dann Eigenschaften bearbeiten aus. Das Dialogfeld „Eigenschaften“ wird geöffnet.
-
Geben Sie im Dialogfeld Eigenschaften bearbeiten Folgendes an:
-
Titel: Geben Sie den Titel des Dienstes an. Beispiel: Versandadresse aktualisieren.
-
Beschreibung: Geben Sie eine Beschreibung an, die eine detaillierte Funktionsweise des Dienstes enthält. Beispiel:
Dieser Service aktualisiert die Lieferadresse und die zugehörigen Felder in der MySQL-Datenbank
-
Eingabemodellobjekt: Wählen Sie ein Schema mit Kundendaten. Beispiel:
customerdetail schema
-
Ausgabetyp: Wählen Sie BOOLEAN.
-
Argumente: Wählen Sie als Argumentnamen ID und dann customerdetails aus.
Klicken Sie auf Fertig. Der Service update zur Aktualisierung der Kundendaten in der MySQL-Datenbank ist konfiguriert.
-
-
Das Datenmodellobjekt und die Dienste im Formulardatenmodell sind konfiguriert. Sie können das Formulardatenmodell jetzt testen.
Schritt 4: Testen des Formulardatenmodells test-fdm
Sie können das Datenmodellobjekt und die Services testen, um zu überprüfen, ob das Formulardatenmodell ordnungsgemäß konfiguriert ist.
Führen Sie folgende Schritte aus, um den Test durchzuführen:
-
Gehen Sie zur Registerkarte Modell und wählen Sie das Datenmodellobjekt customerdetails und dann Testmodellobjekt aus.
-
Wählen Sie im Fenster Modell/Dienst testen die Option Modellobjekt lesen aus der Dropdown-Liste Modell/Dienst auswählen aus.
-
Geben Sie im Abschnitt customerdetails einen Wert für das Argument id an, der in der konfigurierten MySQL-Datenbank vorhanden ist, und wählen Sie Testen aus.
Die Kundendetails, die der angegebenen ID zugeordnet sind, werden abgerufen und im Abschnitt Ausgabe angezeigt, wie unten gezeigt.
-
Auf ähnliche Weise können Sie das Schreib-Modellobjekt und die Dienste testen.
Im folgenden Beispiel ändert der Aktualisierungsdienst erfolgreich die Adressdetails für die ID 7102715 in der Datenbank.
Wenn Sie nun den Lesemodelldienst für die ID 7107215 erneut testen, werden die aktualisierten Kundendetails abgerufen und angezeigt (siehe unten).