Utforma JSON-schema för en adaptiv form (kärnkomponenter) creating-adaptive-forms-using-json-schema
Förutsättningar prerequisites
Att skapa ett adaptivt formulär baserat på kärnkomponenter med ett JSON-schema som formulärmodell kräver grundläggande kunskaper i JSON-schema. 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 baserat på kärnkomponenter 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 till den adaptiva formen baserat på kärnkomponenterna.
- 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 adaptiva formulärkomponenter.
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",
}
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.
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 i en Adaptiv Form-kärnkomponent:
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.
Stöds aem:afProperties
som en del av JSON-schemat i Adaptive Forms baserat på kärnkomponenter?
Nej, aem:afProperties
stöds inte för kärnkomponenter. Den här egenskapen stöds bara för grundkomponenter.
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