Show Menu
THEMEN×

Schulung: Formulardatenmodell erstellen

Erstellen Sie ein Formulardatenmodell für interaktive Kommunikation
This tutorial is a step in the Create your first Interactive Communication series. Es wird empfohlen, der Serie in chronologischer Reihenfolge zu folgen, um den vollständigen Anwendungsfall zu verstehen, auszuführen und zu demonstrieren.

Über die Schulung

Mit dem AEM Forms-Datenintegrationsmodul können Sie ein Formulardatenmodell aus unterschiedlichen Back-End-Datenquellen wie AEM-Profil, RESTful-Webdiensten, SOAP-basierten Webdiensten, OData-Diensten 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 dieser Schulung können Sie Folgendes:
Das Formulardatenmodell sieht etwa wie folgt aus:
A. Konfigurierte Datenquellen B. Datenquellen-Schema C. Verfügbare Dienste D. Datenmodellobjekte E. Konfigurierte Dienste

Voraussetzungen

Bevor Sie beginnen, stellen Sie Folgendes sicher:

Schritt 1: Richten Sie die Datenbank ein

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 mit Tabellen für Kunden, Rechnungen und Aufrufe ein. Die folgende Abbildung zeigt Beispieldaten für die Kundentabelle:
Use the following DDL statement to create the customer table in database.
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

Use the following DDL statement to create the bills table in database.
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

Use the following DDL statement to create the calls table in database.
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

The calls table includes the call details such as call date, call time, call number, call duration, and call charges. The customer table is linked to the calls table using the Mobile Number (mobilenum) field. For each mobile number listed in the customer table, there are multiple records in the calls table. Sie können beispielsweise die Anrufdetails für die Mobilfunknummer 1457892541 abrufen, indem Sie sich auf die Anruftabelle beziehen.
The bills table includes the bill details such as bill date, bill period, monthly charges, and call charges. The customer table is linked to the bills table using the Bill Plan field. There is a plan associated to each customer in the customer table. The bills table includes the pricing details for all the existing plans. Sie können beispielsweise die Plandetails für Sarah aus der Kundentabelle abrufen und diese Details verwenden, um Preisdetails aus der Rechnungstabelle abzurufen.

Schritt 2: Konfigurieren der MySQL-Datenbank als Datenquelle

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:
  1. Installieren Sie den JDBC-Treiber für die MySQL-Datenbank als OSGi-Bundle:
    1. Melden Sie sich bei der AEM Forms-Autoreninstanz als Administrator an und wechseln Sie zu den AEM-Webkonsolen-Paketen. Die Standard-URL lautet http://localhost:4502/system/console/bundles .
    2. Tap Install/Update . Ein Dialogfeld Pakete hochladen/installieren wird angezeigt.
    3. Tippen Sie auf Datei auswählen , um das OSBi-Paket für den MySQL-JDBC-Treiber auszuwählen. Select Start Bundle and Refresh Packages , and tap Install or Update . Stellen Sie sicher, dass der JDBC-Treiber der Oracle Corporation für MySQL aktiv ist. Der Treiber wird installiert.
  2. Konfigurieren der MySQL-Datenbank als Datenquelle:
    1. Wechseln zur AEM-Webkonsole unter http://localhost:4502/system/console/configMgr .
    2. Suchen Sie die Konfiguration Apache Sling Connection Pooled DataSource . Tippen Sie, um die Konfiguration im Bearbeitungsmodus zu öffnen.
    3. Geben Sie im Konfigurationsdialog die folgenden Details an:
      • Datenquellenname: Sie können einen beliebigen Namen angeben, For example, specify MySQL .
      • 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. For MySQL database, specify com.mysql.jdbc.Driver .
      • JDBC-Verbindungs-URI : Geben Sie die Verbindungs-URL der Datenbank an. For MySQL database running on port 3306 and schema teleca, the URL is: 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 auf Borge: 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. Beispiel: Wählen Sie * vom Kunden .
      • Transaktions-Isolierung : Setzen Sie den Wert auf READ_COMMITTED .
    Leave other properties with default values and tap Save .
    Eine Konfiguration ähnlich der folgenden wird erstellt.

Schritt 3: Erstellen eines Formulardatenmodells

AEM Forms provide an intuitive user interface to create a form data mode l from configured data sources. 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:
  1. Navigieren Sie in der AEM-Autoreninstanz zu Formulare Datenintegration .
  2. Tippen Sie auf  Erstellen Formulardatenmodell .
  3. In the Create Form Data Model wizard, specify a name for the form data model. For example, FDM_Create_First_IC . Tippen Sie auf Weiter .
  4. Im Bildschirm „Datenquelle auswählen“ werden alle konfigurierten Datenquellen angezeigt. Select MySQL data source and tap Create .
  5. Klicken Sie auf Fertig . The FDM_Create_First_IC form data model is created.

Schritt 4: Konfigurieren eines Formulardatenmodells

Konfigurieren eines Formulardatenmodells umfasst Folgendes:

Datenmodellobjekte und Dienste hinzufügen

  1. On AEM author instance, navigate to Forms > Data Integrations . Die Standard-URL lautet http://localhost:4502/aem/forms.html/content/dam/formsanddocuments-fdm .
  2. The FDM_Create_First_IC form data model you created earlier is listed here. Wählen Sie es aus und tippen Sie auf Bearbeiten .
    The selected data source MySQL is displayed in the Data Sources pane.
  3. Erweitern Sie die Datenquellstruktur MySQL . Select the following data model objects and services from teleca schema:
    • Datenmodellobjekte :
      • Rechnungen
      • abrufe
      • Kunde
    • Dienste:
      • get
      • Aktualisieren
    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.

Erstellen Sie berechnete untergeordnete Eigenschaften für das Datenmodellobjekt

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:
  • Nutzungsentgelte = Anrufgebühren + Konferenzgebühren + SMS-Gebühren + Mobilfunk-Internetgebühren + Roaming auf nationaler Ebene + Roaming auf internationaler Ebene + VAS (alle diese Eigenschaften befinden sich im Bills-Datenmodellobjekt)
    Weitere Informationen zu den Benutzungsgebühren für untergeordnete Objekte finden Sie unter Interaktive Kommunikation planen .
Führen Sie die folgenden Schritte durch, um untergeordnete berechnete Eigenschaften für das Datenmodellobjekt „Rechnungen“ zu erstellen:
  1. Select the check box at the top of the bills data model object to select it and tap Create Child Property .
  2. Im Bereich Untergeordnete Eigenschaft erstellen :
    1. Geben Sie als Namen der untergeordneten Eigenschaft usagecharges ein.
    2. Aktivieren Sie Berechnete .
    3. Select Float as the type and tap Done to add the child property to the bills data model object.
  3. Tap Edit Rule to open the Rule Editor.
  4. Tippen Sie auf Erstellen . The Set Value rule window opens.
  5. Wählen Sie in der Dropdown-Liste die Mathematischer Ausdruck .
  6. In the mathematical expression, select callcharges and confcallcharges as first and second objects, respectively. Wählen Sie plus als Bediener. 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:
  7. Tippen Sie auf Fertig . Die Regel wird im Regeleditor erstellt.
  8. Tap Close to close the Rule Editor window.

Hinzufügen von Assoziationen zwischen Datenmodellobjekten

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 zu einem Formulardatenmodell hinzufügen, werden deren Verknüpfungen beibehalten und als durch Pfeilzeilen verbundene Elemente 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:
  1. Select the check box at the top of the customer data model object to select it and tap Add Association . The Add Association property pane opens.
  2. 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 .
    • Tap Add to link the customer data model object to calls data model object using a property. Basierend auf dem Anwendungsfall muss das Datenmodellobjekt „call“ mit der Eigenschaft der Mobilfunknummer im Datenmodellobjekt „customer“ verknüpft sein. The Add Argument dialog box opens.
  3. 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.
  4. Tap Done to create a 1:n association between customer and calls data model objects.
    Nachdem Sie eine Zuordnung zwischen Kunden- und Anrufdatenmodellobjekten erstellt haben, erstellen Sie eine 1:1-Verknüpfung zwischen den Datenmodellobjekten „customer“ und „bills“.
  5. Select the check box at the top of the customer data model object to select it and tap Add Association . The Add Association property pane opens.
  6. Im Bereich Verknüpfung hinzufügen :
    • Geben Sie einen Titel für die Verknüpfung an. Dies ist ein optionales Feld.
    • Select One to One from the Type drop-down list.
    • Select bills from the Model Object drop-down list.
    • Wählen Sie get aus der Dropdown-Liste Service. The billplan property, which is the primary key for the bills table, is already available in the Arguments section.
      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 .
    • Tap Done to create a binding between the billplan and customerplan properties.
    Das folgende Bild zeigt die Zuordnungen zwischen den Datenmodellobjekten und den Eigenschaften, die zum Erstellen von Zuordnungen zwischen ihnen verwendet werden:

Eigenschaften des Datenmodellobjekts bearbeiten

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.
  1. Select the check box at the top of the customer data model object to select it and tap Edit Properties . Der Bereich Eigenschaften bearbeiten wird geöffnet.
  2. Geben Sie customer als Modellobjekt der obersten Ebene an.
  3. Wählen Sie get aus der Dropdown-Liste Lese-Service .
  4. Im Abschnitt Argumente :
    • Wählen Sie Anforderungsattribut aus der Dropdown-Liste Bindung an .
    • Geben Sie mobilenum als Bindungswert an.
  5. Wählen Sie Update aus der Dropdown-Liste Schreib-Service.
  6. 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.
  7. Tap Done to save the properties.
  8. Select the check box at the top of the calls data model object to select it and tap Edit Properties . Der Bereich Eigenschaften bearbeiten wird geöffnet.
  9. Deaktivieren Sie das Modellobjekt der obersten Ebene für das Datenmodellobjekt calls .
  10. Tippen Sie auf Fertig .
    Wiederholen Sie die Schritte 8 bis 10, um die Eigenschaften für das Datenmodellobjekt bills zu konfigurieren.

Dienste konfigurieren

  1. Wechseln Sie zur Registerkarte Services .
  2. Select the get service and tap Edit Properties . Der Bereich Eigenschaften bearbeiten wird geöffnet.
  3. Im Bereich Eigenschaften bearbeiten :
    • Geben Sie optional einen Titel und eine Beschreibung ein.
    • Wählen Sie customer aus der Dropdown-Liste Ausgabemodellobjekt .
    • Tap Done to save the properties.
  4. Select the update service and tap Edit Properties . Der Bereich Eigenschaften bearbeiten wird geöffnet.
  5. Im Bereich Eigenschaften bearbeiten :
    • Geben Sie optional einen Titel und eine Beschreibung ein.
    • Select customer from the Input Model Object drop-down list.
    • Tippen Sie auf Fertig .
    • Tippen Sie auf Speichern , um das Formulardatenmodell zu speichern.

Schritt 5: Testen von Formulardatenmodellen und Services

Sie können das Datenmodellobjekt und die Datendienste testen, um sicherzustellen, dass das Formulardatenmodell ordnungsgemäß konfiguriert ist.
Führen Sie folgende Schritte aus, um den Test durchzuführen:
  1. Go to the Model tab, select the customer data model object, and tap Test Model Object .
  2. In the Test Form Data Model window, select Read model object from the Select Model/Service drop-down list.
  3. In the Input section, specify a value for the mobilenum property that exists in the configured MySQL database and tap Test .
    Die mit der angegebenen mobilenum-Eigenschaft verknüpften Kundendetails werden abgerufen und im Abschnitt "Ausgabe"angezeigt, wie unten dargestellt. Schließen Sie das Dialogfeld.
  4. Wechseln Sie zur Registerkarte Services .
  5. Select the get service and tap Test Service.
  6. In the Input section, specify a value for the mobilenum property that exists in the configured MySQL database and tap Test .
    Die mit der angegebenen mobilenum-Eigenschaft verknüpften Kundendetails werden abgerufen und im Abschnitt "Ausgabe"angezeigt, wie unten dargestellt. Schließen Sie das Dialogfeld.

Bearbeiten und speichern Sie Beispieldaten

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:
  1. On the form data model page, tap Edit Sample Data . Es werden Beispieldaten im Fenster „Beispieldaten bearbeiten“ generiert und angezeigt.
  2. Bearbeiten Sie im Fenster Beispieldaten bearbeiten Daten je nach Bedarf und tippen Sie auf Speichern . Schließen Sie das Fenster.