Dieses Tutorial ist ein Schritt in der Reihe Erstellen Sie Ihre erste interaktive Kommunikation. Es wird empfohlen, der Serie in chronologischer Reihenfolge zu folgen, um den vollständigen Anwendungsfall zu verstehen, auszuführen und zu demonstrieren.
Mit dem AEM Forms-Datenintegrationsmodul können Sie ein Formulardatenmodell aus verschiedenen Backend-Datenquellen wie AEM-Benutzerprofil, RESTful-Webservices, 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 Datenmodellobjekteigenschaften 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 Zuordnen 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
Bevor Sie beginnen, stellen Sie Folgendes sicher:
Eine Datenbank ist für die Erstellung einer interaktiven Kommunikation unerlässlich. In diesem Tutorial wird eine Datenbank zur Demonstration der Formulardatenmodell- und Persistenzfunktionen von AEM Forms verwendet. Richten Sie eine Datenbank ein, die Kunden-, Rechnungs- und Anruftabellen enthält.
Die folgende Abbildung zeigt Beispieldaten für die Kundentabelle:
Mit der folgenden DDL-Anweisung können Sie die Tabelle customer in der Datenbank erstellen.
CREATE TABLE `customer` (
`mobilenum` int(11) NOT NULL,
`name` varchar(45) NOT NULL,
`address` varchar(45) NOT NULL,
`alternatemobilenumber` int(11) DEFAULT NULL,
`relationshipnumber` int(11) DEFAULT NULL,
`customerplan` varchar(45) DEFAULT NULL,
PRIMARY KEY (`mobilenum`),
UNIQUE KEY `mobilenum_UNIQUE` (`mobilenum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Mit der folgenden DDL-Anweisung können Sie die Tabelle bills in der Datenbank erstellen.
CREATE TABLE `bills` (
`billplan` varchar(45) NOT NULL,
`latepayment` decimal(4,2) NOT NULL,
`monthlycharges` decimal(4,2) NOT NULL,
`billdate` date NOT NULL,
`billperiod` varchar(45) NOT NULL,
`prevbal` decimal(4,2) NOT NULL,
`callcharges` decimal(4,2) NOT NULL,
`confcallcharges` decimal(4,2) NOT NULL,
`smscharges` decimal(4,2) NOT NULL,
`internetcharges` decimal(4,2) NOT NULL,
`roamingnational` decimal(4,2) NOT NULL,
`roamingintnl` decimal(4,2) NOT NULL,
`vas` decimal(4,2) NOT NULL,
`discounts` decimal(4,2) NOT NULL,
`tax` decimal(4,2) NOT NULL,
PRIMARY KEY (`billplan`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Mit der folgenden DDL-Anweisung können Sie die Tabelle calls in der Datenbank erstellen.
CREATE TABLE `calls` (
`mobilenum` int(11) DEFAULT NULL,
`calldate` date DEFAULT NULL,
`calltime` varchar(45) DEFAULT NULL,
`callnumber` int(11) DEFAULT NULL,
`callduration` varchar(45) DEFAULT NULL,
`callcharges` decimal(4,2) DEFAULT NULL,
`calltype` varchar(45) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Die Tabelle calls enthält die Anrufdetails wie Anrufdatum, Anrufzeit, Anrufnummer, Anrufdauer und Anrufkosten. Die Tabelle customer ist mit der Anruftabelle über das Feld „Mobilfunknummer (mobilenum)“ verknüpft. Für jede in der Tabelle customer aufgeführte Mobilfunknummer gibt es mehrere Datensätze in der Tabelle calls. Sie können beispielsweise die Anrufdetails für die Mobilfunknummer 1457892541 abrufen, indem Sie sich auf die Anruftabelle beziehen.
Die Tabelle bills enthält die Rechnungsdetails wie Rechnungsdatum, Rechnungszeitraum, monatliche Gebühren und Gesprächsgebühren. Die Tabelle customer ist mit der Tabelle bills über das Feld „Rechnungsplan“ verknüpft. Jedem Kunden ist in der Tabelle customer ein Plan zugeordnet. Die Tabelle bills enthält die Preisangaben für alle vorhandenen Pläne. Sie können beispielsweise die Plandetails für Sarah aus der Kundentabelle abrufen und diese Details verwenden, um Preisdetails aus der Rec hnungstabelle abzurufen.
Sie können verschiedene Arten von Datenquellen konfigurieren, um ein Formulardatenmodell zu erstellen. Für dieses Tutorial werden wir die MySQL-Datenbank, die Sie konfiguriert und mit Beispieldaten befüllt haben, konfigurieren. 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:
Melden Sie sich bei der AEM Forms-Autoreninstanz als Administrator an und wechseln Sie zu den AEM-Webkonsolen-Paketen. Die Standard-URL lautet https://localhost:4502/system/console/bundles.
Tippen Sie auf Installieren/Aktualisieren. Ein Dialogfeld Pakete hochladen/installieren wird angezeigt.
Tippen Sie auf Datei auswählen, um das OSBi-Paket für den MySQL-JDBC-Treiber auszuwählen. Wählen Sie Bundle starten und Pakete aktualisieren, und tippen Sie auf Installieren oder Aktualisieren. Stellen Sie sicher, dass der JDBC-Treiber der Oracle Corporation für MySQL aktiv ist. Der Treiber wird installiert.
Konfigurieren der MySQL-Datenbank als Datenquelle:
Wechseln zur AEM-Web-Konsole unter http://localhost:4502/system/console/configMgr.
Suchen Sie die Konfiguration Apache Sling Connection Pooled DataSource. Tippen Sie, um die Konfiguration im Bearbeitungsmodus zu öffnen.
Geben Sie im Konfigurationsdialog die folgenden Details an:
Datenquellenname: Sie können einen beliebigen Namen angeben, Geben Sie beispielsweise MySQL an.
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 MySQL-Datenbanken, die auf Port 3306 und Schema Teleca ausgeführt werden, lautet die URL jdbc:mysql://'server':3306/teleca?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
.
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.
Test on Borrow: Aktivieren Sie die Option Test on Borrow.
Test on Return: Aktivieren Sie die Option Test on Return.
Validation Query: Geben Sie eine SQL SELECT-Abfrage ein, damit Verbindungen aus dem Pool validiert werden. Die Abfrage muss mindestens eine Zeile zurückgeben. Zum Beispiel select * from customer.
Transaktions-Isolierung: Setzen Sie den Wert auf READ_COMMITTED.
Belassen Sie die anderen Eigenschaften auf den Standardwerten und tippen Sie auf Speichern.
Eine Konfiguration ähnlich der folgenden wird erstellt.
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 den Anwendungsfall in diesem Tutorial verwenden Sie MySQL als Datenquelle.
Gehen Sie folgendermaßen vor, um ein Formulardatenmodell zu erstellen:
Navigieren Sie in der AEM-Autoreninstanz zu Formulare > Datenintegration.
Tippen Sie auf Erstellen > Formulardatenmodell.
Geben Sie im Dialogfeld „Formulardatenmodell erstellen“ einen Namen für das Formulardatenmodell ein. Zum Beispiel FDM_Create_First_IC. Tippen Sie auf Weiter.
Im Bildschirm „Datenquelle auswählen“ werden alle konfigurierten Datenquellen angezeigt. Wählen Sie MySQL als Datenquelle und tippen Sie auf Erstellen.
Klicken Sie auf Fertig. Das Formulardatenmodell FDM_Create_First_IC wird erstellt.
Konfigurieren eines Formulardatenmodells umfasst Folgendes:
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 FDM_Create_First_IC, dass Sie zuvor erstellt haben, ist hier aufgeführt. Wählen Sie es aus und tippen Sie auf Bearbeiten.
Die ausgewählte Datenquelle MySQL wird im Bereich Datenquellen angezeigt.
Erweitern Sie die Datenquellstruktur MySQL. Wählen Sie die folgenden Datenmodellobjekte und -Services aus dem Schema teleca aus:
Datenmodellobjekte:
Dienste:
Tippen Sie auf Ausgewählte hinzufügen, um dem Formulardatenmodell ausgewählte Datenmodellobjekte und Dienste hinzuzufügen.
Die Rechnungen, Anrufe und Kundendatenmodellobjekte werden im rechten Bereich auf der Registerkarte Modell angezeigt. Die Abruf- und Aktualisierungsdienste werden auf der Registerkarte Dienste angezeigt.
Eine berechnete Eigenschaft ist diejenige, deren Wert basierend auf einer Regel oder einem Ausdruck berechnet wird. Mithilfe einer Regel können Sie den Wert einer berechneten Eigenschaft auf eine Literalzeichenfolge, eine Zahl, das Ergebnis eines mathematischen Ausdrucks oder den Wert einer anderen Eigenschaft im Formulardatenmodell festlegen.
Basierend auf dem Anwendungsfall, erstellen Sie die untergeordnete berechnete Eigenschaft usagecharges im Datenmodellobjekt Rechnungen mit folgendem mathematischem Ausdruck:
Führen Sie die folgenden Schritte durch, um untergeordnete berechnete Eigenschaften für das Datenmodellobjekt „Rechnungen“ zu erstellen:
Aktivieren Sie das Kontrollkästchen oben in dem Datenmodellobjekt bills und tippen Sie auf Untergeordnete Eigenschaft erstellen.
Im Bereich Untergeordnete Eigenschaft erstellen:
Tippen Sie auf Regel bearbeiten, um den Regel-Editor zu öffnen.
Tippen Sie auf Erstellen. Ein Regelfenster Wert festlegen wird geöffnet.
Wählen Sie in der Dropdownliste Mathematischer Ausdruck.
Wählen Sie in dem mathematischen Ausdruck callcharges und confcallcharges als erstes bzw. zweites Objekt aus. Wählen Sie plus als Operator. Tippen Sie innerhalb des mathematischen Ausdrucks auf Ausdruck erweitern, um die Objekte smscharges, internetcharges, roamingnational, roamingintnl und vas hinzuzufügen.
Das folgende Bild zeigt den mathematischen Ausdruck im Regeleditor:
Tippen Sie auf Fertig. Die Regel wird im Regel-Editor erstellt.
Tippen Sie auf Schließen, um das Fenster des Regel-Editors zu schließen.
Nachdem die Datenmodellobjekte definiert wurden, können Sie Verknüpfungen zwischen ihnen erstellen. Dies können Eins-zu-Eins- oder Eins-zu-Viele-Verknüpfungen sein. So könnten mehrere Angehörige mit einem Mitarbeiter verknüpft sein. Dies wird als Eins-zu-Viele-Verknüpfung bezeichnet und in der Form 1:n auf der Linie dargestellt, die die zugeordneten Datenmodellobjekte verbindet. Wenn jedoch eine Verknüpfung einen eindeutigen Mitarbeiternamen für eine gegebene Mitarbeiter-ID zurückgibt, wird dies als Eins-zu-Eins-Verknüpfung bezeichnet.
Wenn Sie verknüpfte Datenmodellobjekte in einer Datenquelle einem Formulardatenmodell hinzufügen, werden ihre Verknüpfungen beibehalten und mit Pfeillinien verbunden angezeigt.
Erstellen Sie basierend auf dem Anwendungsfall die folgenden Verknüpfungen zwischen den Datenmodellobjekten:
Verknüpfungen | Datenmodellobjekte |
---|---|
1:n | Kunde:Anrufe (in einer monatlichen Rechnung können einem Kunden mehrere Anrufe zugeordnet werden) |
1:1 | Kunde:Rechnungen (Eine Rechnung ist einem Kunden für einen bestimmten Monat zugeordnet.) |
Führen Sie die folgenden Schritte aus, um Verknüpfungen zwischen Datenmodellobjekten zu erstellen:
Aktivieren Sie das Kontrollkästchen oben in einem Datenmodellobjekt customer, um dieses auszuwählen, und tippen Sie auf Verknüpfung hinzufügen. Der Eigenschaftsbereich Verknüpfung hinzufügen wird geöffnet.
Im Bereich Verknüpfung hinzufügen:
Geben Sie einen Titel für die Verknüpfung an. Dies ist ein optionales Feld.
Wählen Sie 1:n aus der Typ Dropdown-Liste.
Wählen Sie Anrufe aus der Dropdown-Liste Modellobjekt.
Wählen Sie get aus der Dropdown-Liste Service.
Tippen Sie auf Hinzufügen, um das Datenmodellobjekt customer mit dem Datenmodellobjekt calls mithilfe einer Eigenschaft zu verknüpfen. Basierend auf dem Anwendungsfall muss das Datenmodellobjekt „call“ mit der Eigenschaft der Mobilfunknummer im Datenmodellobjekt „customer“ verknüpft sein. Das Dialogfeld Argument hinzufügen wird geöffnet.
Im Dialogfeld Argument hinzufügen:
Wählen Sie mobilenum aus der Dropdown-Liste Name aus. Die Mobilfunknummer ist eine allgemeine Eigenschaft, die in Datenmodellobjekten „customer“ und „calls“ verfügbar ist. Infolgedessen wird eine Verbindung zwischen Datenmodellobjekten „customer“ und „calls“ erstellt.
Für jede im Datenmodellobjekt „customer“ verfügbare Mobilfunknummer stehen mehrere „call“-Datensätze in der Anruftabelle zur Verfügung.
Geben Sie einen optionalen Titel und eine Beschreibung für das Argument an.
Wählen Sie customer aus der Dropdown-Liste Bindung an aus.
Wählen Sie mobilenum aus der Dropdown-Liste Bindungswert aus.
Tippen Sie auf Hinzufügen.
Die Eigenschaft „mobilenum“ wird im Abschnitt Argumente angezeigt.
Tippen Sie auf Fertig, um eine 1:n-Verknüpfung zwischen Datenmodellobjekten „customer“ und „calls“ zu erstellen.
Nachdem Sie eine Zuordnung zwischen Kunden- und Anrufdatenmodellobjekten erstellt haben, erstellen Sie eine 1:1-Verknüpfung zwischen den Datenmodellobjekten „customer“ und „bills“.
Aktivieren Sie das Kontrollkästchen am oberen Rand des Datenmodellobjekts customer, um es auszuwählen, und tippen Sie auf Verknüpfung hinzufügen. Der Eigenschaftsbereich Verknüpfung hinzufügen wird geöffnet.
Im Bereich Verknüpfung hinzufügen:
Geben Sie einen Titel für die Verknüpfung an. Dies ist ein optionales Feld.
Wählen Sie 1:1 aus der Dropdown-Liste Typ aus.
Wählen Sie bills aus der Dropdown-Liste Modellobjekt aus.
Wählen Sie get aus der Dropdown-Liste Service. Die Eigenschaft billplan, die den Primärschlüssel für die Rechnungstabelle darstellt, ist bereits im Abschnitt Argumente verfügbar.
Die Datenmodellobjekte „bills“ und „customer“ werden jeweils mit den Eigenschaften „billplan“ Rechnungen und „customerplan“ (Kunde) verknüpft. Erstellen Sie eine Bindung zwischen diesen Eigenschaften, um die Plandetails für jeden in der MySQL-Datenbank verfügbaren Kunden abzurufen.
Wählen Sie customer aus der Dropdown-Liste Bindung an aus.
Wählen Sie customerplan aus der Dropdown-Liste Bindungswert.
Tippen Sie auf Fertig, um eine Verbindung zwischen den Eigenschaften „billplan“ und „customerplan“ herzustellen.
Das folgende Bild zeigt die Zuordnungen zwischen den Datenmodellobjekten und den Eigenschaften, die zum Erstellen von Zuordnungen zwischen ihnen verwendet werden:
Bearbeiten Sie nach dem Erstellen von Zuordnungen zwischen den Datenmodellobjekten „customer“ und anderen Datenmodellobjekten die Kundeneigenschaften, um die Eigenschaft zu definieren, auf deren Grundlage die Daten aus dem Datenmodellobjekt abgerufen werden. Basierend auf dem Anwendungsfall wird die Mobilfunknummer als Eigenschaft zum Abrufen von Daten aus dem Datenmodellobjekt „customer“ verwendet.
Aktivieren Sie das Kontrollkästchen am oberen Rand des Datenmodellobjekts customer, um es auszuwählen, und tippen Sie auf Eigenschaften bearbeiten. Der Bereich Eigenschaften bearbeiten wird geöffnet.
Geben Sie customer als Modellobjekt der obersten Ebene an.
Wählen Sie get aus der Dropdown-Liste Lese-Service.
Im Abschnitt Argumente:
Wählen Sie Anforderungsattribut aus der Dropdown-Liste Bindung an.
Geben Sie mobilenum als Bindungswert an.
Wählen Sie Update aus der Dropdown-Liste Schreib-Service.
Im Abschnitt Argumente:
Wählen Sie die Eigenschaft mobilenum, wählen Sie customer aus der Dropdown-Liste Bindung an aus.
Wählen Sie mobilenum aus der Dropdown-Liste Bindungswert aus.
Tippen Sie auf Fertig, um die Eigenschaften zu speichern.
Aktivieren Sie das Kontrollkästchen am oberen Rand des Datenmodellobjekts calls, um es auszuwählen, und tippen Sie auf Eigenschaften bearbeiten. Der Bereich Eigenschaften bearbeiten wird geöffnet.
Deaktivieren Sie das Modellobjekt der obersten Ebene für das Datenmodellobjekt calls.
Tippen Sie auf Fertig.
Wiederholen Sie die Schritte 8 bis 10, um die Eigenschaften für das Datenmodellobjekt bills zu konfigurieren.
Wechseln Sie zur Registerkarte Services.
Wählen Sie den Service get aus und tippen Sie auf Eigenschaften bearbeiten. Der Bereich Eigenschaften bearbeiten wird geöffnet.
Im Bereich Eigenschaften bearbeiten:
Geben Sie optional einen Titel und eine Beschreibung ein.
Wählen Sie customer aus der Dropdown-Liste Ausgabemodellobjekt.
Tippen Sie auf Fertig, um die Eigenschaften zu speichern.
Wählen Sie den Service Aktualisierung aus und tippen Sie auf Eigenschaften bearbeiten. Der Bereich Eigenschaften bearbeiten wird geöffnet.
Im Bereich Eigenschaften bearbeiten:
Geben Sie optional einen Titel und eine Beschreibung ein.
Wählen Sie customer aus der Dropdown-Liste Eingabemodellobjekt aus.
Tippen Sie auf Fertig.
Tippen Sie auf Speichern, um das Formulardatenmodell zu speichern.
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:
Wechseln Sie zur Registerkarte Modell, wählen Sie das Datenmodellobjekt customer und tippen Sie auf Modellobjekt testen.
Wählen Sie im Fenster Formulardatenmodellobjekt testen Lese-Modellobjekt aus der Dropdown-Liste Modell/Service auswählen.
Geben Sie im Abschnitt Eingabe einen Wert für die Eigenschaft mobilenum ein, die in der konfigurierten MySQL-Datenbank existiert, und tippen Sie auf Testen.
Die Kundendetails, die der angegebenen Eigenschaft „mobilenum“ zugeordnet sind, werden abgerufen und im Ausgabeabschnitt angezeigt, wie unten gezeigt. Schließen Sie das Dialogfeld.
Wechseln Sie zur Registerkarte Services.
Wählen Sie den Service get aus und tippen Sie auf Service testen.
Geben Sie im Abschnitt Eingabe einen Wert für die Eigenschaft mobilenum ein, die in der konfigurierten MySQL-Datenbank existiert, und tippen Sie auf Testen.
Die Kundendetails, die der angegebenen Eigenschaft „mobilenum“ zugeordnet sind, werden abgerufen und im Ausgabeabschnitt angezeigt, wie unten gezeigt. Schließen Sie das Dialogfeld.
Mit dem Formulardatenmodell-Editor können Sie Beispieldaten für alle Datenmodellobjekteigenschaften, einschließlich berechneter Eigenschaften, in einem Formulardatenmodell generieren. Es ist eine Gruppe von zufälligen Werten, die dem für jede Eigenschaft konfigurierten Datentyp entsprechen. Sie können auch Daten bearbeiten und speichern, die auch dann beibehalten werden, wenn Sie die Beispieldaten neu generieren.
Gehen Sie folgendermaßen vor, um Beispieldaten zu generieren, zu bearbeiten und zu speichern:
Tippen Sie auf der Seite des Formulardatenmodells auf Beispieldaten bearbeiten. Es werden Beispieldaten im Fenster „Beispieldaten bearbeiten“ generiert und angezeigt.
Bearbeiten Sie im Fenster Beispieldaten bearbeiten die Daten nach Bedarf und tippen Sie auf Speichern. Schließen Sie das Fenster.