Der Formulardatenmodelleditor bietet eine intuitive Benutzeroberfläche sowie Tools zum Bearbeiten und Konfigurieren eines Formulardatenmodells. Mithilfe des Editors können Sie Datenmodellobjekte, Eigenschaften und Services aus verknüpften Datenquellen im Formulardatenmodell hinzufügen und konfigurieren. Darüber hinaus können Sie Datenmodellobjekte und -eigenschaften ohne Datenquellen erstellen und später mit entsprechenden Datenmodellobjekten und -eigenschaften verbinden. Sie können auch Beispieldaten für Datenmodellobjekteigenschaften generieren und bearbeiten, die Sie zum Vorbefüllen adaptiver Formulare und interaktiver Kommunikation während der Vorschau verwenden können. Sie können Datenmodellobjekte und Services testen, die in einem Formulardatenmodell konfiguriert sind, um sicherzustellen, dass sie ordnungsgemäß in Datenquellen integriert sind.
Wenn Sie mit der Forms-Datenintegration noch nicht vertraut sind und keine Datenquelle konfiguriert oder kein Formulardatenmodell erstellt haben, lesen Sie folgende Themen:
Weitere Details zu verschiedenen Aufgaben und Konfigurationen, die Sie mit dem Formulardatenmodelleditor durchführen können, finden Sie im Folgenden.
Sie müssen Mitglied der beiden Gruppen fdm-author und forms-user sein, um Formulardatenmodelle erstellen und verwenden zu können. Wenden Sie sich an Ihren Experience Manager-Administrator, um Mitglied der Gruppen zu werden.
Nachdem Sie ein Formulardatenmodell mit Datenquellen erstellt haben, können Sie mit dem Formulardatenmodelleditor Datenmodellobjekte und Services hinzufügen, deren Eigenschaften konfigurieren, Verknüpfungen zwischen Datenmodellobjekten erstellen und das Formulardatenmodell sowie die Services testen.
Sie können Datenmodellobjekte und Services aus verfügbaren Datenquellen zum Formulardatenmodell hinzufügen. Dabei werden hinzugefügte Datenmodellobjekte auf der Registerkarte „Modell“ und hinzugefügte Services auf der Registerkarte „Services“ angezeigt.
Hinzufügen von Datenmodellobjekten und Services:
Melden Sie sich bei der Experience Manager-Autorinstanz an, navigieren Sie zu Formulare > Datenintegrationen und öffnen Sie das Formulardatenmodell, zu dem Sie Datenmodellobjekte hinzufügen möchten.
Erweitern Sie im Bereich „Data Sources“ die Datenquellen, um verfügbare Datenmodellobjekte und Services anzuzeigen.
Wählen Sie Datenmodellobjekte und Services aus, die Sie zum Formulardatenmodell hinzufügen möchten, und tippen Sie auf Ausgewählte hinzufügen.
Ausgewählte Datenmodellobjekte und Services
Auf der Registerkarte Modell wird eine grafische Darstellung aller Datenmodellobjekte und ihrer Eigenschaften angezeigt, die zum Formulardatenmodell hinzugefügt wurden. Jedes Datenmodellobjekt wird durch ein Feld im Formulardatenmodell dargestellt.
Registerkarte Modell mit hinzugefügten Datenmodellobjekten
Sie können die Datenmodellobjektfelder durch Ziehen im Inhaltsbereich anordnen. Alle im Formulardatenmodell hinzugefügten Datenmodellobjekte sind im Bedienfeld „Data Sources“ ausgegraut.
Auf der Registerkarte Services wird eine Liste der hinzugefügten Services angezeigt.
Registerkarte Services mit Datenmodell-Services
Das OData-Service-Metadatendokument enthält außer den Datenmodellobjekten und Services Navigationseigenschaften, die die Verknüpfung zwischen zwei Datenmodellobjekten definieren. Weitere Informationen finden Sie unter Arbeiten mit Navigationseigenschaften von OData-Services.
Tippen Sie auf Speichern, um das Formularmodellobjekt zu speichern.
Sie können die auf der Registerkarte „Services“ eines Formulardatenmodells konfigurierten Services mithilfe von Regeln für adaptive Formulare aufrufen. Die konfigurierten Services sind in der Aktion zum Aufrufen von Services im Regeleditor verfügbar. Weitere Informationen zum Verwenden dieser Services in Regeln für adaptive Formulare finden Sie unter „Aufrufen von Services und Festlegen von Werten für Regeln“ im Regeleditor.
Während Sie Datenmodellobjekte aus konfigurierten Datenquellen hinzufügen können, können Sie auch Datenmodellobjekte oder -entitäten ohne Datenquellen erstellen. Dies ist besonders hilfreich, wenn Sie keine Datenquellen im Formulardatenmodell konfiguriert haben.
Erstellen eines Datenmodellobjekts ohne Datenquellen:
Melden Sie sich bei der Experience Manager-Autorinstanz an, navigieren Sie zu Formulare > Datenintegrationen und öffnen Sie das Formulardatenmodell, zu dem Sie ein Datenmodellobjekt oder eine Entität hinzufügen möchten.
Tippen Sie auf Entität erstellen.
Geben Sie im Dialog Datenmodell erstellen einen Namen für das Datenmodell ein und tippen Sie auf Hinzufügen. Ein Datenmodellobjekt wird dem Formulardatenmodell hinzugefügt. Das neu hinzugefügte Datenmodellobjekt ist nicht an eine Datenquelle gebunden und weist keine Eigenschaften auf, wie in folgender Abbildung dargestellt.
Als Nächstes können Sie untergeordnete Objekte in nicht gebundenen Datenmodellobjekten hinzufügen.
Mit dem Formulardatenmodelleditor können Sie untergeordnete Eigenschaften in einem Datenmodellobjekt erstellen. Die Eigenschaft ist beim Erstellen nicht an eine Eigenschaft in einer Datenquelle gebunden. Sie können die untergeordnete Eigenschaft später mit einer anderen Eigenschaft im enthaltenden Datenmodellobjekt verknüpfen.
Erstellen einer untergeordneten Eigenschaft:
Wählen Sie in einem Formulardatenmodell ein Datenmodellobjekt aus und tippen Sie auf Untergeordnete Eigenschaft erstellen.
Geben Sie im Dialogfeld Untergeordnete Eigenschaft erstellen einen Namen und einen Datentyp für die Eigenschaft in den Feldern Name und Typ ein. Sie können optional einen Titel und eine Beschreibung für die Eigenschaft angeben.
Aktivieren Sie „Berechnet“, wenn die Eigenschaft eine berechnete Eigenschaft ist. Der Wert einer berechneten Eigenschaft wird basierend auf einer Regel oder einem Ausdruck ausgewertet. Weitere Informationen finden Sie unter Eigenschaften bearbeiten.
Wenn das Datenmodellobjekt an eine Datenquelle gebunden ist, wird die hinzugefügte untergeordnete Eigenschaft automatisch an die Eigenschaft des übergeordneten Datenmodellobjekts mit demselben Namen und Datentyp gebunden.
Um eine untergeordnete Eigenschaft manuell mit einer Datenmodellobjekteigenschaft zu verknüpfen, tippen Sie auf das Symbol zum Durchsuchen neben dem Feld Bindungsverweis. Im Dialogfeld Objekt auswählen werden alle Eigenschaften des übergeordneten Datenmodellobjekts aufgelistet. Wählen Sie eine Eigenschaft zum Binden aus und tippen Sie auf das Häkchensymbol. Beachten Sie, dass Sie nur eine Eigenschaft desselben Datentyps wie die untergeordnete Eigenschaft auswählen können.
Tippen Sie auf Fertig, um die untergeordnete Eigenschaft zu speichern, und dann auf Speichern, um das Formulardatenmodell zu speichern. Die untergeordnete Eigenschaft wird jetzt zum Datenmodellobjekt hinzugefügt.
Nachdem Sie Datenmodellobjekte und -eigenschaften erstellt haben, können Sie weiterhin adaptive Formulare auf Grundlage des Formulardatenmodells erstellen. Wenn später Datenquellen verfügbar und konfiguriert sind, können Sie das Formulardatenmodell mit Datenquellen verknüpfen. Die Bindung wird in zugehörigen adaptiven Formularen automatisch aktualisiert . Weitere Informationen zum Erstellen adaptiver Formulare mithilfe des Formulardatenmodells finden Sie unter Verwenden eines Formulardatenmodells.
Wenn die Datenquellen, die Sie in das Formulardatenmodell integrieren möchten, verfügbar sind, können Sie sie zum Formulardatenmodell hinzufügen, wie in Aktualisieren von Datenquellen beschrieben. Führen Sie anschließend folgende Schritte durch, um die ungebundenen Datenmodellobjekte und -eigenschaften zu binden:
Wählen Sie im Formulardatenmodell die ungebundene Datenquelle aus, die Sie mit einer Datenquelle binden möchten.
Tippen Sie auf Eigenschaften bearbeiten.
Tippen Sie im Bedienfeld Eigenschaften bearbeiten auf das Suchsymbol neben dem Feld Bindung. Es öffnet sich das Dialogfeld Objekt auswählen, in dem Datenquellen aufgelistet sind, die im Formulardatenmodell hinzugefügt wurden.
Erweitern Sie den Datenquellenbaum, und wählen Sie ein Datenmodellobjekt aus, mit dem eine Bindung hergestellt werden soll, und tippen Sie auf das Häkchensymbol.
Tippen Sie auf Fertig, um die Eigenschaften zu speichern, und dann auf Speichern, um das Formulardatenmodell zu speichern. Das Datenmodellobjekt ist jetzt an eine Datenquelle gebunden. Beachten Sie, dass das Datenmodellobjekt nicht mehr als ungebunden markiert ist.
Um Daten für ein Datenmodellobjekt zu lesen und zu schreiben, gehen Sie folgendermaßen vor, um Lese- und Schreib-Services zu konfigurieren:
Aktivieren Sie das Kontrollkästchen am oberen Rand eines Datenmodellobjekts, um es auszuwählen, und tippen Sie auf Eigenschaften bearbeiten.
Bearbeiten von Eigenschaften, um Lese- und Schreib-Services für Datenmodellobjekte zu konfigurieren
Der Dialog Eigenschaften bearbeiten wird geöffnet.
Dialog „Eigenschaften bearbeiten“
Das OData-Service-Metadatendokument enthält außer den Datenmodellobjekten und Services Navigationseigenschaften, die die Verknüpfung zwischen zwei Datenmodellobjekten definieren. Wenn Sie eine OData-Service-Datenquelle zu einem Formulardatenmodell hinzufügen, steht im Formulardatenmodell ein Service für alle Navigationseigenschaften in einem Datenmodellobjekt zur Verfügung. Mithilfe dieses Service können Sie die Navigationseigenschaften des entsprechenden Datenmodellobjekts lesen.
Weitere Informationen zur Verwendung des Service finden Sie unter Arbeiten mit Navigationseigenschaften von OData-Services.
Durch Aktivieren oder Deaktivieren von Top Level Object legen Sie fest, ob das Datenmodellobjekt ein Modellobjekt der obersten Ebene ist.
Datenmodellobjekte, die in einem Formulardatenmodell konfiguriert sind, stehen auf der Registerkarte „Datenmodellobjekte“ im Inhaltsbrowser adaptiver Formulare zur Verfügung, die auf dem Formulardatenmodell basieren. Wenn Sie eine Verknüpfung zwischen zwei Datenmodellobjekten hinzufügen, wird das Ziel-Datenmodellobjekt auf der Registerkarte Datenmodellobjekte unter dem Ausgangs-Datenmodellobjekt geschachtelt. Wenn das verschachtelte Datenmodell ein Objekt der obersten Ebene ist, wird es auch separat auf der Registerkarte Datenmodellobjekte angezeigt. Daher werden zwei Einträge davon angezeigt, einer innerhalb und einer außerhalb der geschachtelten Hierarchie, was zu Verwirrung bei Formularautoren führen könnte. Damit das zugeordnete Datenmodellobjekt nur in der verschachtelten Hierarchie angezeigt wird, deaktivieren Sie die Eigenschaft „Objekt der obersten Ebene“.
Wählen Sie Lese- und Schreib-Services für die ausgewählten Datenmodellobjekte aus. Die Argumente für die Services werden angezeigt.
Für die Mitarbeiterdatenquelle konfigurierte Lese- und Schreib-Services
Tippen Sie auf für das Argument des Lese-Service, um dieses an ein Benutzerprofilattribut, ein Anforderungsattribut oder einen Literalwert zu binden, und geben Sie den Bindungswert an.
Tippen Sie auf Fertig, um das Argument zu speichern, dann auf Fertig, um die Eigenschaften zu speichern, und schließlich auf Speichern, um das Formulardatenmodell zu speichern.
Binden Sie das Argument des Lese-Service an ein Benutzerprofilattribut, ein Anforderungsattribut oder einen Literalwert, basierend auf einem Bindungswert. Der Wert wird als Argument an den Service übergeben, um Details abzurufen, die mit dem angegebenen Wert aus der Datenquelle verknüpft sind.
Wählen Sie Literal aus dem Dropdownmenü Bindung an aus und geben Sie einen Wert in das Feld Bindungswert ein. Die mit dem Wert verknüpften Details werden aus der Datenquelle abgerufen. Verwenden Sie diese Option, um Details abzurufen, die mit einem statischen Wert verknüpft sind.
In diesem Beispiel werden die mit 4367655678 als Wert für das mobilenum
-Argument verknüpften Details aus der Datenquelle abgerufen. Die verknüpften Details können beim Übergeben des Werts für ein Mobilnummerargument Eigenschaften wie Kundennamen, Kundenadresse und Ort enthalten.
Wählen Sie Benutzerprofilattribut aus dem Dropdownmenü Bindung an aus und geben Sie den Attributnamen in das Feld Bindungswert ein. Die Details des Benutzers, der bei der Experience Manager-Instanz angemeldet ist, werden auf Grundlage des Attributnamens aus der Datenquelle abgerufen.
Der im Feld Bindungswert angegebene Attributname muss den vollständigen Bindungspfad bis zum Attributnamen für den Benutzer enthalten. Öffnen Sie die folgende URL, um auf die Benutzerdetails in CRXDE zuzugreifen:
https://[server-name]:[port]/crx/de/index.jsp#/home/users/
Geben Sie in diesem Beispiel profile.empid
im Feld Bindungswert für den grios
-Benutzer an.
In diesem Beispiel nimmt das Argument id
den Wert des Attributs empid
des Benutzerprofils und übergibt ihn als Argument an den Lese-Service. Dieser liest es und gibt Werte der zugehörigen Eigenschaften aus dem Mitarbeiter-Datenmodellobjekt für empid
zurück, das mit dem angemeldeten Benutzer verknüpft ist.
Verwenden Sie das Anforderungsattribut, um die verknüpften Eigenschaften aus der Datenquelle abzurufen.
Wählen Sie Anforderungsattribut aus dem Dropdownmenü Bindung an aus und geben Sie den Attributnamen in das Feld Bindungswert ein.
Erstellen Sie eine Überlagerung für head.jsp. Um die Überlagerung zu erstellen, öffnen Sie CRX DE und kopieren Sie die Datei https://<server-name>:<port number>/crx/de/index.jsp#/libs/fd/af/components/page2/afStaticTemplatePage/head.jsp
nach https://<server-name>:<port number>/crx/de/index.jsp#/apps/fd/af/components/page2/afStaticTemplatePage/head.jsp
.
/libs/fd/af/components/page2/afStaticTemplatePage/head.jsp
/libs/fd/af/components/page2/aftemplatedpage/aftemplatedpage.jsp
Legen Sie paramMap für das Anforderungsattribut fest. Fügen Sie beispielsweise folgenden Code in die JSP-Datei im Ordner „Apps“ ein:
<%Map paraMap = new HashMap();
paraMap.put("<request_attribute>",request.getParameter("<request_attribute>"));
request.setAttribute("paramMap",paraMap);
Verwenden Sie zum Beispiel folgenden Code, um den Wert von „petid“ aus der Datenquelle abzurufen:
<%Map paraMap = new HashMap();
paraMap.put("petId",request.getParameter("petId"));
request.setAttribute("paramMap",paraMap);%>
Die Details werden auf Grundlage des in der Anforderung angegebenen Attributnamens aus der Datenquelle abgerufen.
Wenn Sie beispielsweise das Attribut petid=100
in der Anforderung angeben, werden Eigenschaften abgerufen, die mit dem Attributwert aus der Datenquelle verknüpft sind.
In der Regel werden Verknüpfungen zwischen Datenmodellobjekten in einer Datenquelle erstellt. 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. In einem Formulardatenmodell können Sie Verknüpfungen zwischen Datenmodellobjekten über unterschiedliche Datenquellen hinweg hinzufügen.
Vordefinierte Verknüpfungen in einer JDBC-Datenquelle werden nicht im Formulardatenmodell beibehalten. Sie müssen sie manuell erstellen.
So fügen Sie eine Verknüpfung hinzu:
Aktivieren Sie das Kontrollkästchen oben in einem Datenmodellobjekt, um dieses auszuwählen, und tippen Sie auf Verknüpfung hinzufügen. Das Dialogfeld „Verknüpfung hinzufügen“ wird geöffnet.
Das OData-Service-Metadatendokument enthält außer den Datenmodellobjekten und Services Navigationseigenschaften, die die Verknüpfung zwischen zwei Datenmodellobjekten definieren. Sie können diese Navigationsfunktionen verwenden, wenn Sie Verknüpfungen im Formulardatenmodell hinzufügen. Weitere Informationen finden Sie unter Arbeiten mit Navigationseigenschaften von OData-Services.
Der Dialog Verknüpfung hinzufügen wird geöffnet.
Dialogfeld „Verknüpfung hinzufügen“
Im Bereich „Verknüpfung hinzufügen“:
Im folgenden Beispiel ist dependentid
das Standardargument für den Lese-Service des Datenmodellobjekts „Angehörige“.
Standardargument für den Lese-Service für „Angehörige“ ist „dependentid“
Das Argument muss allerdings eine mit dem verknüpfenden Datenmodellobjekt gemeinsame Eigenschaft sein, in diesem Beispiel Employeeid
. Daher muss das Argument Employeeid
an die Eigenschaft id
des Mitarbeiter-Datenmodellobjekts gebunden sein, damit die verknüpften Informationen zu Angehörigen aus dem Datenmodellobjekt für Angehörige abgerufen werden können.
Aktualisiertes Argument und Bindung
Tippen Sie auf Fertig, um das Argument zu speichern.
Tippen Sie auf Fertig, um die Verknüpfung zu speichern, und dann auf Speichern, um das Formulardatenmodell zu speichern.
Wiederholen Sie diese Schritte, um nach Bedarf weitere Verknüpfungen zu erstellen.
Die hinzugefügte Verknüpfung wird der Box für das Datenmodellobjekt mit dem angegebenen Titel und einer Linie angezeigt, die die verknüpften Datenmodellobjekte verbindet.
Sie können eine Verknüpfung bearbeiten, indem Sie das Kontrollkästchen neben der Verknüpfung auswählen und auf Verknüpfung bearbeiten tippen.
Sie können Eigenschaften von Datenmodellobjekten, Eigenschaften sowie m Formulardatenmodell hinzugefügte Services bearbeiten.
Eigenschaften bearbeiten
Aktivieren Sie im Formulardatenmodell das Kontrollkästchen neben einem Datenmodellobjekt, einer Eigenschaft oder einem Service.
Tippen Sie auf Eigenschaften bearbeiten. Der Bereich Eigenschaften bearbeiten für das Modellobjekt, die Eigenschaft oder den Service in der Auswahl wird geöffnet.
Datenmodellobjekt: Geben Sie die Lese- und Schreib-Services an und bearbeiten Sie Argumente.
Eigenschaft: Geben Sie den Typ, den Untertyp und das Format für die Eigenschaft an. Sie können außerdem angeben, ob die ausgewählte Eigenschaft der Primärschlüssel für das Datenmodellobjekt ist.
Service: Geben Sie das Eingabemodellobjekt, den Ausgabetyp und Argumente für den Service an. Bei einem Get-Service können Sie angeben, ob ein Array als Rückgabe erwartet wird.
Dialog „Eigenschaften bearbeiten“ für einen Get-Service
Tippen Sie auf Fertig, um die Eigenschaften zu speichern, und dann auf Speichern, um das Formulardatenmodell zu speichern.
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.
Beispielsweise können Sie eine berechnete Eigenschaft FullName erstellen, deren Wert ein Ergebnis der Verkettung der vorhandenen Eigenschaften FirstName und LastName ist. Gehen Sie dazu wie folgt vor:
Erstellen Sie eine neue Eigenschaft mit dem Namen FullName
, deren Datentyp „Zeichenfolge“ ist.
Aktivieren Sie Berechnet und tippen Sie auf Fertig, um die Eigenschaft zu erstellen.
Die berechnete FullName-Eigenschaft wird erstellt. Beachten Sie das Symbol neben der Eigenschaft, um eine berechnete Eigenschaft darzustellen.
Wählen Sie die FullName-Eigenschaft und tippen Sie auf Regel bearbeiten. Das Fenster „Regeleditor“ wird geöffnet.
Im Fenster des Regeleditors tippen Sie auf Erstellen. Ein Regelfenster Wert festlegen wird geöffnet.
Wählen Sie in der Dropdownliste Mathematischer Ausdruck. Weitere verfügbare Optionen sind Formulardatenmodellobjekt und Zeichenfolge.
Wählen Sie im mathematischen Ausdruck FirstName und LastName im ersten bzw. zweiten Objekt aus. Wählen Sie plus als Operator.
Tippen Sie auf Fertig und dann auf Schließen, um das Regeleditorfenster zu schließen. Die Regel sieht ähnlich der Folgenden aus:
Tippen Sie im Formulardatenmodell auf Speichern. Die berechnete Eigenschaft ist konfiguriert.
In OData-Services werden Navigationseigenschaften verwendet, um Zuordnungen zwischen zwei Datenmodellobjekten zu definieren. Diese Eigenschaften werden für einen Entitätstyp oder einen komplexen Typ definiert. So enthält beispielsweise im folgenden Extract aus der Metadatendatei der TripPin-OData-Beispiel-Services die Entität „Person“ drei Navigationseigenschaften: „Friends“, „BestFriend“ und „Trips“.
Weitere Informationen finden Sie in der OData-Dokumentation.
<edmx:Edmx xmlns:edmx="https://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
<script/>
<edmx:DataServices>
<Schema xmlns="https://docs.oasis-open.org/odata/ns/edm" Namespace="Microsoft.OData.Service.Sample.TrippinInMemory.Models">
<EntityType Name="Person">
<Key>
<PropertyRef Name="UserName"/>
</Key>
<Property Name="UserName" Type="Edm.String" Nullable="false"/>
<Property Name="FirstName" Type="Edm.String" Nullable="false"/>
<Property Name="LastName" Type="Edm.String"/>
<Property Name="MiddleName" Type="Edm.String"/>
<Property Name="Gender" Type="Microsoft.OData.Service.Sample.TrippinInMemory.Models.PersonGender" Nullable="false"/>
<Property Name="Age" Type="Edm.Int64"/>
<Property Name="Emails" Type="Collection(Edm.String)"/>
<Property Name="AddressInfo" Type="Collection(Microsoft.OData.Service.Sample.TrippinInMemory.Models.Location)"/>
<Property Name="HomeAddress" Type="Microsoft.OData.Service.Sample.TrippinInMemory.Models.Location"/>
<Property Name="FavoriteFeature" Type="Microsoft.OData.Service.Sample.TrippinInMemory.Models.Feature" Nullable="false"/>
<Property Name="Features" Type="Collection(Microsoft.OData.Service.Sample.TrippinInMemory.Models.Feature)" Nullable="false"/>
<NavigationProperty Name="Friends" Type="Collection(Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person)"/>
<NavigationProperty Name="BestFriend" Type="Microsoft.OData.Service.Sample.TrippinInMemory.Models.Person"/>
<NavigationProperty Name="Trips" Type="Collection(Microsoft.OData.Service.Sample.TrippinInMemory.Models.Trip)"/>
</EntityType>
Wenn Sie einen OData-Service in einem Formulardatenmodell konfigurieren, werden alle Navigationseigenschaften in einem Entitäten-Container über einen Service im Formulardatenmodell bereitgestellt. In diesem Beispiel können im OData-Service „TripPin“ die drei Navigationseigenschaften des Entitäten-Containers Person
über ein und denselben GET LINK
-Service im Formulardatenmodell gelesen werden.
Im Folgenden wird der Service GET LINK of Person /People
im Formulardatenmodell hervorgehoben. Dies ist ein kombinierter Service für die drei Navigationseigenschaften in der Entität Person
des OData-Service „TripPin“.
Sobald Sie den GET LINK
-Service auf der Registerkarte „Services“ im Formulardatenmodell hinzufügen, können Sie die Eigenschaften bearbeiten, um das Modellobjekt für die Ausgabe und die im Service zu verwendende Navigationseigenschaft zu wählen. Im folgenden Beispiel nutzt der Service GET LINK of Person /People
die Angabe „Trip“ als Ausgabemodellobjekt und die Navigationseigenschaft als „Trips“.
Die im Feld Standardwert des Arguments NavigationPropertyName verfügbaren Werte hängen vom Status des Schalters Rückgabe-Array? ab. Wenn diese Funktion aktiviert ist, zeigt sie Navigationsfunktionen des Typs Sammlung an.
In diesem Beispiel können Sie auch „Person“ als Ausgabemodellobjekt und als Argument für die Navigationseigenschaft „Friends“ oder „BestFriend“ wählen (abhängig davon, ob Rückgabe-Array? aktiviert oder deaktiviert ist).
Darüber hinaus können Sie beim Hinzufügen von Verknüpfungen im Formulardatenmodell einen GET LINK
-Service auswählen und die entsprechenden Navigationseigenschaften konfigurieren. Damit eine Navigationseigenschaft ausgewählt werden kann, müssen Sie jedoch darauf achten, dass im Feld Bindung an der Wert Literal eingestellt ist.
Mit dem Formulardatenmodelleditor können Sie Beispieldaten für alle Datenmodellobjekt-Eigenschaften, 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 und zu bearbeiten:
Öffnen Sie ein Formulardatenmodell und tippen Sie 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.
Ihr Formulardatenmodell ist konfiguriert. Bevor Sie es verwenden, sollten Sie jedoch testen, ob die konfigurierten Datenmodellobjekte und Services erwartungsgemäß funktionieren. Testen von Datenmodellobjekten und Services
Wählen Sie ein Datenmodellobjekt oder einen Service im Formulardatenmodell aus und tippen Sie auf Modellobjekt testen oder Service testen.
Das Fenster „Formulardatenmodell testen“ wird geöffnet.
Wählen Sie im Fenster Formulardatenmodell testen unter „Eingabe“ das zu testende Datenmodellobjekt bzw. den Service.
Geben Sie den Wert des Arguments in den Testcode ein und tippen Sie auf Testen. Ist der Test erfolgreich, wird die Ausgabe im Bereich „Ausgabe“ angezeigt.
Auf ähnliche Weise können Sie andere Datenmodellobjekte und Service im Formulardatenmodell testen.
Das Formulardatenmodell validiert Daten, die als Eingabe beim Aufruf der DermisBridge-API empfangen werden (auf Grundlage der im Formulardatenmodell verfügbaren Validierungskriterien). Die Validierung basiert auf dem Flag-Satz ValidationOptions
im Abfrageobjekt, das zum Aufrufen der API verwendet wird.
Das Flag kann auf einen der folgenden Werte eingestellt werden:
Wenn für das ValidationOptions
-Flag kein Wert festgelegt ist, wird für die Eingabedaten eine EINFACH-Validierung durchgeführt.
Folgendes Beispiel zeigt, was passiert, wenn Sie für das Validierungs-Flag VOLLSTÄNDIG einstellen:
operationOptions.setValidationOptions(ValidationOptions.FULL);
Der Wert, den Sie für ein Attribut in den Eingabedaten angeben, muss mit dem Datentyp übereinstimmen, der für das Attribut im Metadatendokument definiert ist.
Wenn der Wert nicht mit dem für das Attribut definierten Datentyp übereinstimmt, zeigt die DermisBridge-API eine Ausnahme an, unabhängig vom Wert des ValidationOptions
-Flags. Wenn als Protokollebene „Debuggen“ festgelegt ist, wird ein Fehler in der Datei error.log protokolliert.
Das Formulardatenmodell validiert Eingabedaten auf Grundlage einer Liste von Datentypbegrenzungen. Die Liste von Begrenzungen für Eingabedaten kann je nach Datenquelle variieren.
In folgender Tabelle sind die Begrenzungen für Eingabedaten auf Grundlage der Datenquelle aufgeführt:
Begrenzungen | Beschreibung | Eingabedatenquelle |
required | Bei Wert „true“ muss der Parameter in die Eingabedaten aufgenommen werden. | Swagger, WSDL und Datenbank |
nullable | Bei Wert „true“ kann der Wert für den Parameter in den Eingabedaten auf Null gesetzt werden. | WSDL, OData und Datenbank |
maximum | Gibt die Obergrenze für numerische Werte an. Der als Obergrenze angegebene Wert kann auch dem Parameter in den Eingabedaten zugewiesen werden. | Swagger und WSDL |
minimum | Gibt die Untergrenze für numerische Werte an. Der als Untergrenze angegebene Wert kann auch dem Parameter in den Eingabedaten zugewiesen werden. | Swagger und WSDL |
exclusiveMaximum | Gibt die Obergrenze für numerische Werte an. Der als Obergrenze angegebene Wert darf nicht dem Parameter in den Eingabedaten zugewiesen werden. | Swagger und WSDL |
exclusiveMinimum | Gibt die Untergrenze für numerische Werte an. Der als Untergrenze angegebene Mindestwert darf nicht dem Parameter in den Eingabedaten zugewiesen werden. | Swagger und WSDL |
minLength | Gibt die Untergrenze für die Anzahl der Zeichen in einer Zeichenfolge an. Der als Untergrenze angegebene Wert kann auch dem Parameter in den Eingabedaten zugewiesen werden. | Swagger und WSDL |
maxLength | Gibt die Obergrenze für die Anzahl der Zeichen in einer Zeichenfolge an. Der als Obergrenze angegebene Wert kann auch dem Parameter in den Eingabedaten zugewiesen werden. | Swagger, WSDL, OData und Datenbank |
pattern | Gibt eine feste Sequenz an Zeichen an. Die Eingabezeichenfolge wird nur dann erfolgreich validiert, wenn die Zeichen dem angegebenen Muster entsprechen. | Swagger |
minItems | Gibt die Mindestanzahl von Elementen in einem Array an. Der als Untergrenze angegebene Wert kann auch dem Parameter in den Eingabedaten zugewiesen werden. | Swagger und WSDL |
maxItems | Gibt die maximale Anzahl von Elementen in einem Array an. Der als Obergrenze angegebene Wert kann auch dem Parameter in den Eingabedaten zugewiesen werden. | Swagger und WSDL |
uniqueItems | Bei Wert „true“ müssen alle Elemente des Arrays in den Eingabedaten eindeutig sein. | Swagger |
enum (string) |
Beschränkt den Wert eines Parameters in den Eingabedaten auf einen festen Satz von Zeichenfolgewerten. Es muss sich um ein Array mit mindestens einem Element handeln, wobei jedes Element eindeutig ist. | Swagger, WSDL und OData |
enum (number) |
Beschränkt den Wert eines Parameters in den Eingabedaten auf einen festen Satz numerischer Werte. Es muss sich um ein Array mit mindestens einem Element handeln, wobei jedes Element eindeutig ist. | WSDL |
In diesem Beispiel werden die Eingabedaten anhand der in der Swagger-Datei definierten Begrenzungen „maximum“, „minimum“ und „required“ validiert. Die Eingabedaten erfüllen die Validierungskriterien nur, wenn eine Bestell-ID vorhanden ist und ihr Wert zwischen 1 und 10 liegt.
parameters: [
{
name: "orderId",
in: "path",
description: "ID of pet that needs to be fetched",
required: true,
type: "integer",
maximum: 10,
minimum: 1,
format: "int64"
}
]
Eine Ausnahme wird angezeigt, wenn die Eingabedaten die Validierungskriterien nicht erfüllen. Wenn als Protokollebene Debuggen festgelegt ist, wird ein Fehler in der Datei error.log protokolliert. Beispiel:
21.01.2019 17:26:37.411 *ERROR* com.adobe.aem.dermis.core.validation.JsonSchemaValidator {"errorCode":"AEM-FDM-001-044","errorMessage":"Input validations failed during operation execution.","violations":{"/orderId":["numeric instance is greater than the required maximum (maximum: 10, found: 16)"]}}
Sie haben ein funktionierendes Formulardatenmodell, das jetzt für die Verwendung in Workflows für adaptive Formulare bereit ist. Weitere Informationen finden Sie unter Verwenden eines Formulardatenmodells.