Utforma JSON-schema för ett adaptivt formulär creating-adaptive-forms-using-json-schema
Adobe rekommenderar att du använder den moderna och utbyggbara datainhämtningen Core Componentsför att skapa nya adaptiva Formseller att lägga till adaptiva Forms på AEM Sites-sidor. De här komponenterna utgör ett betydande framsteg när det gäller att skapa adaptiva Forms-filer, vilket ger imponerande användarupplevelser. I den här artikeln beskrivs det äldre sättet att skapa Adaptiv Forms med baskomponenter.
Förutsättningar prerequisites
Att skapa ett adaptivt formulär med ett JSON-schema som formulärmodell kräver grundläggande kunskaper i JSON-schemat. Du bör läsa igenom följande innehåll före den här artikeln.
Använda ett JSON-schema som formulärmodell using-a-json-schema-as-form-model
Adobe Experience Manager Forms har stöd för att skapa ett adaptivt formulär genom att använda ett befintligt JSON-schema som formulärmodell. Detta JSON-schema representerar strukturen i vilken data produceras eller används av det bakomliggande systemet i din organisation. Det JSON-schema som du använder ska vara kompatibelt med v4-specifikationerna.
De viktigaste funktionerna i ett JSON-schema är:
- Strukturen för JSON visas som ett träd på fliken Innehållssökning i redigeringsläget för ett adaptivt formulär. Du kan dra och lägga till element från JSON-hierarkin i det adaptiva formuläret.
- Du kan fylla i formuläret i förväg med JSON som är kompatibel med det associerade schemat.
- När data skickas skickas skickas de som anges av användaren som JSON som är anpassad efter det associerade schemat.
- Du kan också skapa formuläret baserat på JSON-schemat enligt specifikationerna i 2012-20-versionen.
Ett JSON-schema består av enkla och komplexa elementtyper. Elementen har attribut som lägger till regler i elementet. När dessa element och attribut dras till ett adaptivt formulär mappas de automatiskt till motsvarande adaptiv formulärkomponent.
Den här mappningen av JSON-element med adaptiva formulärkomponenter är följande:
"birthDate": {
"type": "string",
"format": "date",
"pattern": "date{DD MMMM, YYYY}",
"aem:affKeyword": [
"DOB",
"Date of Birth"
],
"description": "Date of birth in DD MMMM, YYYY",
"aem:afProperties": {
"displayPictureClause": "date{DD MMMM, YYYY}",
"displayPatternType": "date{DD MMMM, YYYY}",
"validationPatternType": "date{DD MMMM, YYYY}",
"validatePictureClause": "date{DD MMMM, YYYY}",
"validatePictureClauseMessage": "Date must be in DD MMMM, YYYY format."
}
}
Vanliga schemaegenskaper common-schema-properties
Det adaptiva formuläret använder information som finns i JSON-schemat för att mappa varje genererat fält. Särskilt gäller följande:
- Egenskapen
title
fungerar som etikett för komponenterna i det adaptiva formuläret. - Egenskapen
description
anges som en lång beskrivning för en adaptiv formulärkomponent. - Egenskapen
default
fungerar som ett initialt värde för ett fält med adaptiv form. - Egenskapen
maxLength
anges sommaxlength
-attribut för textfältskomponenten. - Egenskaperna
minimum
,maximum
,exclusiveMinimum
ochexclusiveMaximum
används för Numerisk rutkomponent. - För att stöda intervall för
DatePicker component
ytterligare JSON-schemaegenskaperminDate
ochmaxDate
anges. - Egenskaperna
minItems
ochmaxItems
används för att begränsa antalet objekt/fält som kan läggas till eller tas bort från en panelkomponent. - Egenskapen
readOnly
ställer in attributetreadonly
för en adaptiv formulärkomponent. - Egenskapen
required
anger att fältet Adaptivt formulär är obligatoriskt, medan den slutliga skickade JSON-informationen i panelen (där typen är objekt) har fält med ett tomt värde som motsvarar det objektet. - Egenskapen
pattern
anges som valideringsmönster (reguljärt uttryck) i adaptiv form. - Tillägget för JSON-schemafilen måste behållas som .schema.json. Till exempel <filnamn>.schema.json.
Exempel på JSON-schema sample-json-schema
code language-json |
---|
|
code language-json |
---|
|
De viktigaste ändringarna från JSON Schema V4 till specifikationerna för version 2020-12 är:
- Id har deklarerats som
$id
- definitioner har deklarerats som
$defs
Återanvändbara schemadefinitioner reusable-schema-definitions
Definitionsnycklar används för att identifiera återanvändbara scheman. Återanvändbara schemadefinitioner används för att skapa fragment. Ett exempel på JSON-schema med definitioner anges nedan:
{
"$schema": "https://json-schema.org/draft-04/schema#",
"definitions": {
"address": {
"type": "object",
"properties": {
"street_address": { "type": "string" },
"city": { "type": "string" },
"state": { "type": "string" }
},
"required": ["street_address", "city", "state"]
}
},
"type": "object",
"properties": {
"billing_address": { "$ref": "#/definitions/address" },
"shipping_address": { "$ref": "#/definitions/address" }
}
}
Exemplet ovan definierar en kundpost där varje kund har både en leveransadress och en faktureringsadress. Adressernas struktur är densamma - adresserna har en gatuadress, ort och delstat - så det är en bra idé att inte duplicera adresserna. Det gör det också enkelt att lägga till och ta bort fält för framtida ändringar.
Förkonfigurerar fält i JSON-schemadefinition pre-configuring-fields-in-json-schema-definition
Du kan använda egenskapen aem:afProperties för att förkonfigurera JSON-schemafältet för att mappa till en anpassad adaptiv formulärkomponent. Ett exempel visas nedan:
{
"properties": {
"sizeInMB": {
"type": "integer",
"minimum": 16,
"maximum": 512,
"aem:afProperties" : {
"sling:resourceType" : "/apps/fd/af/components/guideTextBox",
"guideNodeClass" : "guideTextBox"
}
}
},
"required": [ "sizeInMB" ],
"additionalProperties": false
}
Begränsa tillåtna värden för en adaptiv formulärkomponent limit-acceptable-values-for-an-adaptive-form-component
Du kan lägga till följande begränsningar i JSON-schemaelement för att begränsa vilka värden som tillåts för en adaptiv formulärkomponent:
Aktivera schemakompatibla data enablig-schema-compliant-data
Följ de här stegen för att aktivera alla schemabaserade anpassningsbara Forms för att generera schemakompatibla data när formulär skickas:
- Gå till webbkonsolen Experience Manager på
https://server:host/system/console/configMgr
. - Sök efter Adaptive Form and Interactice Communication Web Channel Configuration.
- Välj det här alternativet om du vill öppna konfigurationen i redigeringsläge.
- Markera kryssrutan Generate Schema Compliant Data.
- Spara inställningarna.
Konstruktioner som inte stöds non-supported-constructs
Adaptiv Forms stöder inte följande JSON-schemakonstruktioner:
- Null-typ
- Unionstyper, t.ex., och
- OneOf, AnyOf, AllOf, och NOT
- Endast homogena arrayer stöds. Objektbegränsningen måste därför vara ett objekt och inte en array.
- URI-referenser i $ref
Frågor och svar frequently-asked-questions
Varför kan jag inte dra enskilda element i ett delformulär (struktur som genereras från en komplex typ) för repeterbara delformulär (värdena minOcCours och maxOccurs är större än 1)?
I ett upprepningsbart delformulär måste du använda hela delformuläret. Om du bara vill ha selektiva fält använder du hela strukturen och tar bort de oönskade.
Jag har en lång komplex struktur i Content Finder. Hur hittar jag ett specifikt element?
Du har två alternativ:
- Bläddra genom trädstrukturen
- Använd sökrutan för att hitta ett element
Vad ska tillägget för JSON-schemafilen vara?
Tillägget för JSON-schemafilen måste vara .schema.json. Till exempel <filnamn>.schema.json.
Se även see-also
- Skapa ett AEM anpassat formulär
- Lägg till ett AEM anpassat formulär på AEM Sites-sidan
- Använda teman i ett AEM anpassat formulär
- Lägg till komponenter i ett AEM anpassat formulär
- Använd CAPTCHA i en AEM anpassad form
- Generera en PDF-version (DoR) av ett AEM adaptivt formulär
- Översätt en AEM adaptiv form
- Aktivera Adobe Analytics för ett adaptivt formulär för att spåra formuläranvändning
- Ansluta anpassat formulär till Microsoft SharePoint
- Ansluta anpassat formulär till Microsoft Power Automate
- Ansluta anpassat formulär till Microsoft OneDrive
- Ansluta anpassat formulär till Microsoft Azure Blob Storage
- Ansluta anpassat formulär till Salesforce
- Använda Adobe Sign i en AEM anpassad form
- Lägga till en ny språkinställning för ett adaptivt formulär
- Skicka adaptiva formulärdata till en databas
- Skicka data för anpassat formulär till en REST-slutpunkt
- Skicka anpassade formulärdata till AEM arbetsflöde
- Använd Forms Portal för att lista AEM Adaptive Forms på en AEM webbplats
- Lägga till versioner, kommentarer och anteckningar i ett adaptivt formulär
- Jämför adaptiv Forms