Erweitern des Standard-Metamodells extend-the-default-meta-model
Der Dienst für die automatisierte Formularkonvertierung (AFCS) identifiziert und extrahiert Formularobjekte aus Quellformularen. Semantic Mapper hilft dem Dienst zu entscheiden, wie die extrahierten Objekte in einem adaptiven Formular dargestellt werden. Beispielsweise kann ein Quellformular viele verschiedene Arten von Darstellungen eines Datums enthalten. Der Semantic Mapper hilft dabei, alle Darstellungen von Datumsformularobjekten des Quellformulars der Datumskomponente der adaptiven Formulare zuzuordnen. Mit Semantic Mapper kann der Dienst auch Validierungen, Regeln, Datenmuster, Hilfetexte und Eingabehilfeeigenschaften während der Konvertierung vorkonfigurieren und auf adaptive Formularkomponenten anwenden.
Das Metamodell ist ein JSON-Schema. Bevor Sie mit dem Metamodell beginnen, stellen Sie sicher, dass Sie mit JSON vertraut sind. Sie müssen Erfahrung im Erstellen, Bearbeiten und Lesen von Daten haben, die im JSON-Format gespeichert sind.
Standardmetamodell default-meta-model
Im Dienst für die automatisierte Formularkonvertierung (AFCS) ist ein Standard-Metamodell verfügbar. Dies ist ein JSON-Schema und befindet sich zusammen mit anderen Komponenten des Dienstes für die automatisierte Formularkonvertierung (AFCS) in Adobe Cloud. Eine Kopie des Metamodells finden Sie auf Ihrem lokalen AEM-Server unter: http://<server>:<port>/aem/forms.html/content/dam/formsanddocuments/metamodel/global.schema.json
. Sie können auch hier klicken, um auf das englische Schema zuzugreifen oder es herunterzuladen. Das Metamodell für die Sprachen Französisch, Deutsch Spanisch, Italienisch und Portugiesisch kann ebenfalls heruntergeladen werden.
Das Schema des Metamodells wird von Schemaentitäten unter https://schema.org/docs/schemas.html abgeleitet. Es enthält Person, PostalAddress, LocalBusiness und weitere Entitäten, wie auf https://schema.org definiert. Jede Entität des Metamodells entspricht dem JSON-Schemaobjekttyp. Der folgende Code zeigt eine Beispiel-Metamodellstruktur:
"Entity": {
"id": "Entity",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string",
"description": "Description of the item"
}
}
}
Herunterladen des Standardmetamodells download-the-default-meta-model
Führen Sie die folgenden Schritte aus, um das Standardmetamodell in das lokale Dateisystem herunterzuladen:
- Melden Sie sich bei Ihrer AEM Forms-Instanz an.
- Navigieren Sie zum Ordner Formulare > Formulare und Dokumente > Metamodel.
- Wählen Sie die Datei global.schema.json aus und tippen Sie auf Herunterladen. Das Dialogfeld zum Herunterladen wird angezeigt. Wählen Sie die Option Asset(s) als Binärdateien herunterladen. Tippen Sie auf Herunterladen. Ein Archiv wird heruntergeladen.
Grundlagen des Metamodells understanding-the-meta-model
Ein Metamodell bezieht sich auf eine JSON-Schemadatei, die Entitäten enthält. Alle Entitäten in der JSON-Schemadatei enthalten einen Namen und eine ID. Jede Entität kann mehrere Eigenschaften enthalten. Die Entitäten und ihre Eigenschaften können je nach Domäne variieren. Sie können eine Schemadatei mit Schlüsselwörtern und Feldkonfigurationen erweitern, um Schemaeigenschaften adaptiven Formularkomponenten zuzuordnen.
"Event": {
"id": "Eventid",
"allOf": [
{
"$ref": "#Entity"
},
{
"properties": {
"startDate": {
"type": "string",
"format": "date",
"description": "Specify the start date and time of the event in ISO 8601 date format."
},
"endDate": {
"type": "string",
"format": "date",
"description": "Specify the end date and time of the event in ISO 8601 date format."
},
"location": {
"$ref": "#PostalAddress",
"description": "Specify the location of the event."
}
}
}
]
}
In diesem Beispiel repräsentiert Ereignis den Namen einer Entität mit einem Wert für id als Eventid. Die Ereignisentität enthält mehrere Eigenschaften:
- startDate
- endDate
- location
Das Konstrukt allOf im Metamodell ermöglicht die Vererbung zwischen Entitäten.
Jede Eigenschaft kann ferner Folgendes umfassen:
Basierend auf den Schlüsselwörtern, auf die mit aem:affKeyword verwiesen wird, führt der Konvertierungsdienst eine Suchoperation für die Quellformularfelder durch. Der Konvertierungsdienst wendet die Eigenschaften des JSON-Schemas und zusätzliche Eigenschaften auf die Felder an, die die Suchkriterien erfüllen.
In diesem Beispiel sucht der Konvertierungsdienst im Quellformular nach den Schlüsselwörtern Tel., Telefon geschäftlich, Telefon privat, Mobiltelefon, Telefon, Handy, Telefonnr., Nummer und Telefonnummer. Basierend auf den Feldern, die diese Schlüsselwörter enthalten, wendet der Konvertierungsdienst nach der Konvertierung den Typ, das Muster und aem:afProperties auf die Felder des adaptiven Formulars an.
JSON-Schemaeigenschaften für generierte adaptive Formularfelder jsonschemaproperties
Das Metamodell unterstützt die folgenden allgemeinen Eigenschaften des JSON-Schemas für Felder in adaptiven Formularen, die mit dem Dienst für die automatisierte Formularkonvertierung (AFCS) generiert wurden:
Schlüsselwortbasierte Suche zum Anwenden von Eigenschaften auf Felder im generierten adaptiven Formular keywordsearch
Der Dienst für die automatisierte Formularkonvertierung (AFCS) führt während der Konvertierung eine Keyword-Suche im Quellformular durch. Nach dem Filtern der Felder, die die Suchkriterien erfüllen, wendet der Konvertierungsdienst die für diese Felder im Metamodell definierten Eigenschaften auf die Felder im generierten adaptiven Formular an.
Auf Schlüsselwörter wird mit der Eigenschaft aem:affKeyword verwiesen.
{
"numberfields": {
"type": "number",
"aem:affKeyword": ["Bank account number"]
}
}
In diesem Beispiel verwendet der Konvertierungsdienst den Text in aem:affKeyword als Suchschlüsselwort. Nach dem Abrufen des Textes Bankkontonummer im Formular konvertiert der Konvertierungsdienst das Feld mithilfe der Eigenschaft type in den Typ number.
Zusätzliche Eigenschaften für Felder im generierten adaptiven Formular additionalproperties
Mit der Eigenschaft aem:afProperties im Metamodell können Sie die folgenden zusätzlichen Eigenschaften für Felder in adaptiven Formularen definieren, die mit dem Dienst für die automatisierte Formularkonvertierung (AFCS) generiert wurden:
Erstellen eines benutzerdefinierten Metamodells in Ihrer eigenen Sprache language-specific-meta-model
Sie können ein sprachspezifisches Metamodell erstellen. Mit einem solchen Metamodell können Sie Zuordnungsregeln in der Sprache Ihrer Wahl erstellen. Mit dem Dienst für die automatisierte Formularkonvertierung (AFCS) können Sie Metamodelle in den folgenden Sprachen erstellen:
- Englisch (en)
- Französisch (fr)
- Deutsch (de)
- Spanisch (es)
- Italienisch (it)
- Portugiesisch (pt-br)
Fügen Sie das Metatag-Tag aem:Language oben in einem Metamodell hinzu, um die Sprache anzugeben. Beispiel:
"metaTags": {
"aem:Language": "fr"
}
Wenn keine Sprache festgelegt ist, geht der Service davon aus, dass das Metamodell in englischer Sprache vorliegt.
Überlegungen zum Erstellen eines sprachspezifischen Metamodells
-
Stellen Sie sicher, dass der Name jedes Schlüssels englisch ist. Beispiel: e-mailAddress.
-
Stellen Sie sicher, dass alle Entitätsverweise und vordefinierten Werte des ID-Schlüssels ausschließlich aus ASCII-Zeichen bestehen. Beispiel: "id": "ContactPoint" / "$ref": "#ContactPoint".
-
Stellen Sie sicher, dass alle Werte, die den folgenden Schlüsseln entsprechen, in der für das Metamodell festgelegten Sprache vorliegen.
- aem:affKeyword
- title
- description
- enumNames
- shortDescription
- validatePictureClauseMessage
Wenn beispielsweise die Sprache des Metamodells Französisch ist ("aem:Language": "fr"), stellen Sie sicher, dass alle Beschreibungen und Meldungen in französischer Sprache vorliegen.
-
Stellen Sie sicher, dass alle JSON-Schemaeigenschaften nur unterstützte Werte verwenden. Der Typ „property“ kann beispielsweise nur ausgewählte Werte der Kategorien „Zeichenfolge“, „Zahl“, „Ganzzahl“ und „Boolesch“ umfassen.
Die folgende Abbildung zeigt Beispiele für das englische Metamodell und das entsprechende französische Metamodell:
Ändern von Feldern in adaptiven Formularen mit benutzerdefiniertem Metamodell modify-adaptive-form-fields-using-custom-meta-model
Ihre Organisation kann Muster und Überprüfungen zusätzlich zu den im Standardmetamodell aufgeführten aufweisen. Sie können das Standardmetamodell erweitern, um Muster, Validierungen und Entitäten hinzuzufügen, die für Ihre Organisation spezifisch sind. Der Dienst für die automatisierte Formularkonvertierung (AFCS) wendet das benutzerdefinierte Metamodell während der Konvertierung auf die Formularfelder an. Sie können das Metamodell ständig aktualisieren, wenn neue Muster, Validierungen und Entitäten entdeckt werden, die für Ihre Organisation spezifisch sind.
Der Dienst für die automatisierte Formularkonvertierung (AFCS) verwendet ein Standard-Metamodell, um während der Konvertierung die Felder des Quellformulars Feldern des adaptiven Formulars zuzuordnen. Das Standard-Metamodell befindet sich unter dem folgenden Speicherort:
http://<server>:<port>/aem/forms.html/content/dam/formsanddocuments/metamodel/global.schema.json
Sie können jedoch ein benutzerdefiniertes Metamodell in einem Ordner speichern und die Eigenschaften des Konvertierungsdienstes ändern, sodass das benutzerdefinierte Metamodell während der Konvertierung verwendet wird.
Verwenden eines benutzerdefinierten Metamodells während der Konvertierung use-custom-meta-model-during-conversion
Führen Sie die folgenden Schritte aus, um während der Konvertierung ein benutzerdefiniertes Metamodell zu verwenden:
-
Erstellen Sie einen Ordner in Formulare > Formulare und Dokumente und laden Sie die benutzerdefinierte JSON-Schemadatei für das Metamodell in den Ordner hoch.
-
Öffnen Sie die Eigenschaften des Konvertierungsdienstes mit:
Tools > Cloud Services > Konfiguration der automatischen Formularkonvertierung > <Eigenschaften der ausgewählten Konfiguration>
-
Geben Sie auf der Registerkarte Standard den Speicherort des benutzerdefinierten Metamodells im Feld Benutzerdefiniertes Metamodell an und tippen Sie auf Speichern und Schließen.
-
Führen Sie die Konvertierung aus, um das benutzerdefinierte Metamodell auf den Konvertierungsprozess anzuwenden.
Benutzerdefinierte Metamodellbeispiele custommetamodelexamples
Einige gängige Beispiele für die Verwendung eines benutzerdefinierten Metamodells zum Ändern der Eigenschaften von adaptiven Formularfeldern sind:
- Ändern der Beschriftung eines Formularfelds
- Ändern des Typs eines Formularfelds
- Hinzufügen von Hilfetext zu einem Formularfeld
- Konvertieren eines Formularfelds in Multiple-Choice-Optionsfelder im adaptiven Formular
- Ändern des Formats eines Formularfelds
- Hinzufügen von Validierungen zu adaptiven Formularfeldern
- Konvertieren eines Formularfelds in Dropdown-Listen-Optionen im adaptiven Formular
- Hinzufügen zusätzlicher Optionen zur Dropdown-Liste
- Konvertieren eines Zeichenfolgenfelds in ein mehrzeiliges Feld
Ändern der Beschriftung eines Formularfelds modify-the-label-of-a-form-field
Beispiel: Ändern der Bezeichnung der Bankkontonummer im Formular in „Benutzerdefinierte Kontonummer“ im adaptiven Formular nach der Konvertierung.
In diesem benutzerdefinierten Metamodell verwendet der Konvertierungsdienst die Eigenschaft title als Suchschlüsselwort. Nach dem Abrufen des Texts Bankkontonummer im Formular ersetzt der Konvertierungsdienst den Text durch die erwähnte Zeichenfolge Benutzerdefinierte Kontonummer mit der Eigenschaft jcr:title im Abschnitt aem:afProperties.
{
"numberfields": {
"type": "number",
"title": "Bank account number",
"aem:afProperties" : {
"jcr:title" : "Customer account number"
}
}
}
Ändern des Typs eines Formularfelds modify-the-type-of-a-form-field
Beispiel: Ändern Sie das Feld Bankkontonummer, das vor der Konvertierung ein Textfeld im Formular ist, in ein Feld vom Typ „number“ im adaptiven Formular nach der Konvertierung.
In diesem benutzerdefinierten Metamodell verwendet der Konvertierungsdienst den Text in aem:affKeyword als Suchschlüsselwort. Nach dem Abrufen des Textes Bankkontonummer im Formular konvertiert der Konvertierungsdienst das Feld mithilfe der Eigenschaft type in den Typ „number“.
{
"numberfields": {
"type": "number",
"aem:affKeyword": ["Bank account number"]
}
}
Hinzufügen von Hilfetext zu einem Formularfeld add-help-text-to-a-form-field
Beispiel: Fügen Sie dem Feld Bankkontonummer des adaptiven Formulars Hilfetext hinzu.
In diesem benutzerdefinierten Metamodell verwendet der Konvertierungsdienst den Text in aem:affKeyword als Suchschlüsselwort. Nach dem Abrufen des Textes Bankkontonummer im Formular fügt der Konvertierungsdienst den Hilfetext mithilfe der Eigenschaft description zum Feld des adaptiven Formulars hinzu.
{
"numberfields": {
"type": "number",
"aem:affKeyword": ["Bank account number"],
"description": "Specify your bank account number."
}
}
Konvertieren eines Formularfelds in Multiple-Choice-Kontrollkästchen im adaptiven Formular convert-a-form-field-to-multiple-choice-check-boxes-in-the-adaptive-form
Beispiel: Konvertieren Sie das Feld Land, das vor der Konvertierung ein Zeichenfolgenfeld ist, in Kontrollkästchen im adaptiven Formular nach der Konvertierung.
In diesem benutzerdefinierten Metamodell verwendet der Konvertierungsdienst den Text in aem:affKeyword als Suchschlüsselwort. Nach Abrufen des Textes Land im Formular wandelt der Konvertierungsdienst das Feld mithilfe der Eigenschaft Enum in folgende Kontrollkästchen um:
- India
- England
- Australia
- New Zealand
Die Eigenschaften sling:resourceType und guideNodeClass ordnen ein Formularfeld der Kontrollkästchen-Komponente des adaptiven Formulars zu.
{
"title": {
"aem:affKeyword": [
"country"
],
"type" : "string",
"enum": [
"India",
"England",
"Australia",
"New Zealand"
],
"aem:afProperties": {
"sling:resourceType": "fd/af/components/guidecheckbox",
"guideNodeClass": "guidecheckbox"
}
}
}
Ändern des Formats eines Formularfelds modify-the-format-of-a-form-field
Beispiel: Ändern Sie das Format des Felds E-Mail-Adresse in ein E-Mail-Format.
In diesem benutzerdefinierten Metamodell verwendet der Konvertierungsdienst den Text in aem:affKeyword als Suchschlüsselwort. Nach Abrufen des Textes E-Mail-Adresse im Formular konvertiert der Konvertierungsdienst das Feld mithilfe der Eigenschaft format in das E-Mail-Format.
{
"additionalDetails" : {
"aem:affKeyword": ["E-mail Address"],
"type" : "string",
"format" : "email"
}
}
Hinzufügen von Validierungen zu adaptiven Formularfeldern add-validations-to-adaptive-form-fields
Beispiel 1: Fügen Sie dem Feld Postleitzahl des adaptiven Formulars eine Validierung hinzu.
In diesem benutzerdefinierten Metamodell verwendet der Konvertierungsdienst den Text in aem:affKeyword als Suchschlüsselwort. Nach Abruf des Textes Postleitzahl im Formular fügt der Konvertierungsdienst dem Feld mithilfe der Eigenschaft validatePictureClause, definiert im Abschnitt aem:afProperties, eine Validierung hinzu. Gemäß dieser Validierung muss die Eingabe, die Sie nach der Konvertierung für das Feld Postleitzahl im adaptiven Formular angeben, sechs Zeichen lang sein.
{
"postalCode" : {
"aem:affKeyword": ["Postal Code"],
"type" : "string",
"aem:afProperties" : {
"validatePictureClause" : "\\d{6}"
}
}
}
Beispiel 2: Fügen Sie dem Feld Bankkontonummer des adaptiven Formulars eine Validierung hinzu.
In diesem benutzerdefinierten Metamodell verwendet der Konvertierungsdienst den Text in aem:affKeyword als Suchschlüsselwort. Nach Abruf des Textes Bankkontonummer im Formular fügt der Konvertierungsdienst dem Feld mithilfe der Eigenschaft mandatory, definiert im Abschnitt aem:afProperties, eine Validierung hinzu. Gemäß dieser Validierung müssen Sie nach der Konvertierung einen Wert für das Feld Bankkontonummer angeben, bevor Sie das Formular senden.
{
"numberfields": {
"type": "number",
"aem:affKeyword": ["Bank account number"],
"aem:afProperties" : {
"mandatory": "true"
}
}
}
Konvertieren eines Testfelds in eine Dropdown-Liste im adaptiven Formular convert-a-text-field-to-drop-down-list-in-the-adaptive-form
Beispiel: Konvertieren Sie das Feld Land, das vor der Konvertierung ein Zeichenfolgenfolgenfeld im Formular ist, in Dropdown-Optionen im adaptiven Formular nach der Konvertierung.
In diesem benutzerdefinierten Metamodell verwendet der Konvertierungsdienst den Text in aem:affKeyword als Suchschlüsselwort. Nach Abrufen des Textes Land im Formular wandelt der Konvertierungsdienst das Feld in die folgenden Dropdown-Listen-Optionen mit der Eigenschaft enum um:
- India
- England
- Australia
- New Zealand
Die Eigenschaften sling:resourceType und guideNodeClass ordnen ein Formularfeld der Dropdown-Komponente des adaptiven Formulars zu.
{
"title": {
"aem:affKeyword": [
"country"
],
"type" : "string",
"enum": [
"India",
"England",
"Australia",
"New Zealand"
],
"aem:afProperties": {
"sling:resourceType": "fd/af/components/guidedropdownlist",
"guideNodeClass": "guideDropDownlist"
}
}
}
Hinzufügen zusätzlicher Optionen zur Dropdown-Liste add-additional-options-to-the-drop-down-list
Beispiel: Fügen Sie Sri Lanka als zusätzliche Option zu einer vorhandenen Dropdown-Liste hinzu, indem Sie ein benutzerdefiniertes Metamodell verwenden.
Um eine zusätzliche Option hinzuzufügen, aktualisieren Sie die Eigenschaft enum mit der neuen Option. Aktualisieren Sie in diesem Beispiel die Eigenschaft enum mit Sri Lanka als zusätzliche Option. Die in der Eigenschaft enum aufgeführten Werte werden in der Dropdown-Liste angezeigt.
{
"title": {
"aem:affKeyword": [
"country"
],
"type" : "string",
"enum": [
"India",
"England",
"Australia",
"New Zealand",
"Sri Lanka"
],
"aem:afProperties": {
"sling:resourceType": "fd/af/components/guidecheckbox",
"guideNodeClass": "guidecheckbox"
}
}
}
Konvertieren eines Zeichenfolgenfelds in ein mehrzeiliges Feld convert-a-string-field-to-a-multi-line-field
Beispiel: Konvertieren Sie das Feld Adresse vom Typ „string“ nach der Konvertierung in ein mehrzeiliges Feld im Formular.
In diesem benutzerdefinierten Metamodell verwendet der Konvertierungsdienst den Text in aem:affKeyword als Suchschlüsselwort. Nach dem Abrufen des Textes Adresse im Formular wandelt der Dienst das Textfeld mithilfe der Eigenschaft multiLine, die im Abschnitt aem:afProperties definiert ist, in ein mehrzeiliges Feld um.
{
"multiLine" : {
"aem:affKeyword": [
"Address"
],
"type" : "string",
"aem:afProperties": {
"multiLine": "true"
}
}
}