Progettazione di uno schema JSON per un modulo adattivo creating-adaptive-forms-using-json-schema
Prerequisiti prerequisites
Per creare un modulo adattivo utilizzando uno schema JSON come modello di modulo è necessario conoscere a fondo lo schema JSON. Si consiglia di leggere attentamente il seguente contenuto prima di questo articolo.
Utilizzo di uno schema JSON come modello di modulo using-a-json-schema-as-form-model
I moduli Adobe Experience Manager supportano la creazione di un modulo adattivo utilizzando uno schema JSON esistente come modello di modulo. Questo schema JSON rappresenta la struttura in cui i dati vengono prodotti o utilizzati dal sistema back-end dell’organizzazione. Lo schema JSON utilizzato deve essere conforme alle specifiche v4.
Le funzioni chiave dell’utilizzo di uno schema JSON sono:
- La struttura del JSON viene visualizzata come struttura nella scheda Content Finder nella modalità di authoring di un modulo adattivo. Puoi trascinare e aggiungere un elemento dalla gerarchia JSON al modulo adattivo.
- Puoi precompilare il modulo utilizzando un JSON conforme allo schema associato.
- All’invio, i dati immessi dall’utente vengono inviati come JSON, in linea con lo schema associato.
- Puoi anche creare il modulo in base allo schema JSON secondo le specifiche della versione 2012-2020.
Uno schema JSON è costituito da tipi di elementi semplici e complessi. Gli elementi dispongono di attributi che aggiungono regole all’elemento. Quando questi elementi e attributi vengono trascinati in un modulo adattivo, vengono mappati automaticamente al corrispondente componente Modulo adattivo.
La mappatura degli elementi JSON con i componenti del modulo adattivo è la seguente:
"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."
}
}
Proprietà comuni dello schema common-schema-properties
Il modulo adattivo utilizza le informazioni disponibili nello schema JSON per mappare ogni campo generato. In particolare:
- La proprietà
title
funge da etichetta per i componenti Modulo adattivo. - La proprietà
description
viene impostata come descrizione lunga per un componente Modulo adattivo. - La proprietà
default
funge da valore iniziale di un campo Modulo adattivo. - La proprietà
maxLength
è impostata come attributomaxlength
del componente del campo di testo. - Le proprietà
minimum
,maximum
,exclusiveMinimum
eexclusiveMaximum
sono utilizzate per il componente casella numerica. - Per supportare l'intervallo per
DatePicker component
sono fornite proprietà aggiuntive dello schema JSONminDate
emaxDate
. - Le proprietà
minItems
emaxItems
vengono utilizzate per limitare il numero di elementi/campi che possono essere aggiunti o rimossi da un componente del pannello. - La proprietà
readOnly
imposta l'attributoreadonly
di un componente Modulo adattivo. - La proprietà
required
contrassegna il campo Modulo adattivo come obbligatorio, mentre in panel (dove tipo è oggetto), i dati JSON inviati finali contengono campi con valore vuoto corrispondente a tale oggetto. - La proprietà
pattern
è impostata come pattern di convalida (espressione regolare) in Adaptive Form. - L’estensione del file di schema JSON deve essere mantenuta .schema.json. Ad esempio, <nomefile>.schema.json.
Schema JSON di esempio sample-json-schema
code language-json |
---|
|
code language-json |
---|
|
Le modifiche principali dallo schema JSON V4 alla versione 2020-12 sono le seguenti:
- ID dichiarato come
$id
- definizioni dichiarate come
$defs
Definizioni di schema riutilizzabili reusable-schema-definitions
Le chiavi di definizione vengono utilizzate per identificare gli schemi riutilizzabili. Per creare frammenti vengono utilizzate le definizioni di schema riutilizzabili. Di seguito è riportato un esempio di schema JSON con definizioni:
{
"$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" }
}
}
L'esempio precedente definisce un record cliente, in cui ogni cliente ha sia un indirizzo di spedizione che un indirizzo di fatturazione. La struttura di entrambi gli indirizzi è la stessa: gli indirizzi hanno un indirizzo stradale, una città e uno stato, quindi è consigliabile non duplicare gli indirizzi. Inoltre, agevola l’aggiunta e l’eliminazione dei campi per eventuali modifiche future.
Preconfigurazione dei campi nella definizione dello schema JSON pre-configuring-fields-in-json-schema-definition
È possibile utilizzare la proprietà aem:afProperties per preconfigurare il campo Schema JSON da mappare a un componente modulo adattivo personalizzato. Di seguito è riportato un esempio:
{
"properties": {
"sizeInMB": {
"type": "integer",
"minimum": 16,
"maximum": 512,
"aem:afProperties" : {
"sling:resourceType" : "/apps/fd/af/components/guideTextBox",
"guideNodeClass" : "guideTextBox"
}
}
},
"required": [ "sizeInMB" ],
"additionalProperties": false
}
Limitare valori accettabili per un componente Modulo adattivo limit-acceptable-values-for-an-adaptive-form-component
Per limitare i valori accettabili per un componente Modulo adattivo, puoi aggiungere le seguenti restrizioni agli elementi dello schema JSON:
Abilita dati conformi allo schema enablig-schema-compliant-data
Per abilitare tutti i Forms adattivi basati su schema JSON a generare dati conformi allo schema al momento dell’invio del modulo, effettua le seguenti operazioni:
- Passa alla console Web Experience Manager all'indirizzo
https://server:host/system/console/configMgr
. - Individua Configurazione canale web per modulo adattivo e comunicazione interattiva.
- Seleziona per aprire la configurazione in modalità di modifica.
- Selezionare la casella di controllo Genera dati conformi allo schema.
- Salva le impostazioni.
Costrutti non supportati non-supported-constructs
Forms adattivo non supporta i seguenti costrutti dello schema JSON:
- Tipo nullo
- tipi di unione, come eventuali, e
- Uno di, uno di, tutti e NON
- Sono supportati solo array omogenei. Pertanto, il vincolo items deve essere un oggetto e non un array.
- Riferimenti URI in $ref
Domande frequenti frequently-asked-questions
Perché non è possibile trascinare singoli elementi di una sottomaschera (struttura generata da qualsiasi tipo complesso) per sottomaschere ripetibili (i valori minOccours o maxOccurs sono maggiori di 1)?
In una sottomaschera ripetibile, è necessario utilizzare la sottomaschera completa. Se desideri solo campi selettivi, utilizza l’intera struttura ed elimina quelli indesiderati.
Ho una struttura lunga e complessa in Content Finder. Come trovare un elemento specifico?
Sono disponibili due opzioni:
- Scorri nella struttura ad albero
- Utilizzare la casella di ricerca per trovare un elemento
Quale dovrebbe essere l'estensione del file di schema JSON?
L’estensione del file dello schema JSON deve essere .schema.json. Ad esempio, <nomefile>.schema.json.
Consulta anche see-also
- Creare un modulo adattivo di AEM
- Aggiungere un modulo adattivo AEM a una pagina AEM Sites
- Applicare i temi a un modulo adattivo AEM
- Aggiungere componenti a un modulo adattivo di AEM
- Utilizzare il CAPTCHA in un modulo adattivo AEM
- Generare la versione PDF (DoR) di un modulo adattivo AEM
- Tradurre un modulo adattivo di AEM
- Abilitare Adobe Analytics per un modulo adattivo per tenere traccia dell’utilizzo dei moduli
- Collegare un modulo adattivo a Microsoft SharePoint
- Collegare un modulo adattivo a Microsoft Power Automate
- Collegare un modulo adattivo a Microsoft OneDrive
- Collegare un modulo adattivo all’archiviazione BLOB di Microsoft Azure
- Collegare un modulo adattivo a Salesforce
- Utilizzare Adobe Sign in un modulo adattivo di AEM
- Aggiungere una nuova lingua per un modulo adattivo
- Inviare dati del modulo adattivo a un database
- Inviare dati del modulo adattivo a un endpoint REST
- Inviare dati del modulo adattivo al flusso di lavoro di AEM
- Utilizzare il portale dei moduli per elencare moduli adattivi di AEM su un sito web di AEM
- Aggiungere versioni, commenti e annotazioni a un modulo adattivo
- Confrontare i moduli adattivi