Creare una funzione personalizzata per un modulo adattivo basato su componenti core
I Forms adattivi basati sui componenti core offrono esperienze utente dinamiche regolando il contenuto e il comportamento in base all’input dell’utente. Le funzioni personalizzate consentono agli sviluppatori di estendere le funzionalità, garantendo che i moduli soddisfino requisiti specifici. Integrando funzioni personalizzate, gli sviluppatori possono implementare logiche complesse, automatizzare i processi e introdurre interazioni univoche in linea con requisiti aziendali specifici o aspettative degli utenti. Essa garantisce che i moduli non solo si adattino a condizioni diverse, ma forniscano anche una soluzione più precisa ed efficace per casi d’uso diversi.
Questo articolo illustra i passaggi necessari per creare funzioni personalizzate per Adaptive Forms utilizzando i componenti core.
Considerazioni
-
parameter type
ereturn type
non supportanoNone
. -
Le funzioni non supportate nell'elenco delle funzioni personalizzate sono:
- Funzioni del generatore
- Funzioni Async/Await
- Definizioni dei metodi
- Metodi di classe
- Parametri predefiniti
- Parametri rimanenti
Prerequisiti per creare una funzione personalizzata
Prima di iniziare ad aggiungere una funzione personalizzata al Forms adattivo, verifica di disporre dei seguenti elementi:
Software:
-
Editor di testo normale (IDE): mentre qualsiasi editor di testo normale può funzionare, un ambiente di sviluppo integrato (IDE) come Microsoft Visual Studio Code offre funzionalità avanzate per semplificare la modifica.
-
Git: Questo sistema di controllo della versione è necessario per la gestione delle modifiche al codice. Se non lo hai installato, scaricalo da https://git-scm.com.
Creare una funzione personalizzata
Crea una libreria client per chiamare funzioni personalizzate nell’editor di regole. Per ulteriori informazioni, vedere Utilizzo di librerie lato client.
I passaggi per creare funzioni personalizzate sono i seguenti:
Creare una libreria client create-client-library
Puoi aggiungere funzioni personalizzate aggiungendo una libreria client. Per creare una libreria client, effettua le seguenti operazioni:
Clona l'archivio
Clona il tuo archivio as a Cloud Service di AEM Forms:
-
Apri la riga di comando o la finestra del terminale.
-
Passa alla posizione desiderata sul computer in cui desideri memorizzare l’archivio.
-
Esegui il comando seguente per clonare l’archivio:
git clone [Git Repository URL]
Con questo comando viene scaricato l'archivio e viene creata una cartella locale dell'archivio clonato nel computer. In questa guida questa cartella viene indicata come [directory del progetto AEMaaCS].
Aggiungi una cartella della libreria client
Per aggiungere una nuova cartella della libreria client alla directory di progetto [AEMaaCS], eseguire la procedura seguente:
-
Apri la [directory del progetto AEMaaCS] in un editor.
-
Individuare
ui.apps
. -
Aggiungi nuova cartella. Aggiungere ad esempio una cartella denominata
experience-league
. -
Passare alla cartella
/experience-league/
e aggiungereClientLibraryFolder
. Creare ad esempio una cartella della libreria client denominatacustomclientlibs
.Location is: [AEMaaCS project directory]/ui.apps/src/main/content/jcr_root/apps/
Aggiungi file e cartelle alla cartella Libreria client
Aggiungi quanto segue alla cartella della libreria client aggiunta:
- file .content.xml
- file js.txt
- cartella js
Location is: [AEMaaCS project directory]/ui.apps/src/main/content/jcr_root/apps/experience-league/customclientlibs/
-
In
.content.xml
aggiungi le seguenti righe di codice:code language-javascript <?xml version="1.0" encoding="UTF-8"?> <jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" jcr:primaryType="cq:ClientLibraryFolder" categories="[customfunctionscategory]"/>
note note NOTE È possibile scegliere qualsiasi nome per la proprietà client library folder
ecategories
. -
In
js.txt
aggiungi le seguenti righe di codice:code language-javascript #base=js function.js
-
Nella cartella
js
, aggiungi il file javascript comefunction.js
che include le funzioni personalizzate:code language-javascript /** * Calculates Age * @name calculateAge * @param {object} field * @return {string} */ function calculateAge(field) { var dob = new Date(field); var now = new Date(); var age = now.getFullYear() - dob.getFullYear(); var monthDiff = now.getMonth() - dob.getMonth(); if (monthDiff < 0 || (monthDiff === 0 && now.getDate() < dob.getDate())) { age--; } return age; }
-
Salva i file.
Includi la nuova cartella nel file filter.xml:
-
Passa al file
/ui.apps/src/main/content/META-INF/vault/filter.xml
nella directory del progetto [AEMaaCS]. -
Apri il file e aggiungi la seguente riga alla fine:
<filter root="/apps/experience-league" />
-
Salva il file.
Distribuisci la cartella della libreria client appena creata nell'ambiente AEM
Distribuisci la directory del progetto AEM as a Cloud Service [AEMaaCS] nell'ambiente di Cloud Service. Per eseguire l’implementazione nell’ambiente di Cloud Service:
-
Eseguire il commit delle modifiche
- Aggiungi, esegui il commit e invia le modifiche nell’archivio utilizzando i seguenti comandi:
code language-javascript git add . git commit -a -m "Adding custom functions" git push
-
Distribuisci il codice aggiornato:
- Attiva una distribuzione del codice tramite la pipeline full stack esistente. In questo modo viene automaticamente generato e distribuito il codice aggiornato.
Se non hai già configurato una pipeline, consulta la guida su come impostare una pipeline per AEM Forms as a Cloud Service.
Una volta eseguita correttamente la pipeline, la funzione personalizzata aggiunta nella libreria client diventa disponibile nell'editor di regole per moduli adattivi.
Aggiungere una libreria client a un modulo adattivo use-custom-function
Dopo aver implementato la libreria client nell’ambiente Forms CS, utilizzane le funzionalità nel modulo adattivo. Per aggiungere la libreria client al modulo adattivo
-
Apri il modulo in modalità di modifica. Per aprire un modulo in modalità di modifica, selezionare un modulo e selezionare Modifica.
-
Apri il browser Contenuto e seleziona il componente Contenitore guida del modulo adattivo.
-
Fare clic sull'icona delle proprietà del Contenitore Guida TV
-
Apri la scheda Base e seleziona il nome della categoria di librerie client dall'elenco a discesa (in questo caso, seleziona
customfunctionscategory
).note note NOTE È possibile aggiungere più categorie specificando un elenco separato da virgole nel campo Categoria libreria client. -
Fai clic su Fine.
Puoi utilizzare la funzione personalizzata nell'editor di regole di un modulo adattivo utilizzando le annotazioni di JavaScript.
Utilizzo di una funzione personalizzata in un modulo adattivo
In un modulo adattivo, puoi utilizzare funzioni personalizzate all'interno dell'editor di regole. Aggiungiamo il codice seguente al file JavaScript (Function.js
file) per calcolare l'età in base alla data di nascita (AAAA-MM-GG). Creare una funzione personalizzata come calculateAge()
che utilizza come input la data di nascita e restituisce l'età:
/**
* Calculates Age
* @name calculateAge
* @param {object} field
* @return {string}
*/
function calculateAge(field) {
var dob = new Date(field);
var now = new Date();
var age = now.getFullYear() - dob.getFullYear();
var monthDiff = now.getMonth() - dob.getMonth();
if (monthDiff < 0 || (monthDiff === 0 && now.getDate() < dob.getDate())) {
age--;
}
return age;
}
Nell'esempio precedente, quando l'utente immette la data di nascita nel formato (AAAA-MM-GG), la funzione personalizzata calculateAge
viene richiamata e restituisce l'età.
Visualizziamo in anteprima il modulo per osservare come le funzioni personalizzate vengono implementate tramite l’editor di regole:
Funzioni delle funzioni personalizzate
Le funzioni personalizzate nei moduli AEM offrono una soluzione solida per estendere e personalizzare la funzionalità dei moduli. Puoi utilizzare le funzioni personalizzate per soddisfare le esigenze specifiche della tua organizzazione.
Queste funzioni supportano varie funzionalità, tra cui l’utilizzo di campi specifici, l’utilizzo di campi globali, le operazioni asincrone e l’incorporazione di meccanismi di caching. Questa flessibilità assicura che i moduli possano adattarsi a requisiti complessi e fornire un’esperienza utente efficiente e personalizzata. Sfruttando queste funzioni avanzate, puoi migliorare le interazioni dei moduli e ottimizzare le prestazioni, rendendo i moduli AEM più funzionali e reattivi.
Approfondiamo le funzioni personalizzate.
Supporto asincrono nelle funzioni personalizzate support-of-async-functions
Puoi implementare funzioni asincrone nell’editor di regole utilizzando funzioni personalizzate. Per istruzioni su come eseguire questa operazione, consulta l'articolo Utilizzo di funzioni asincrone in un modulo adattivo.
Supporto di oggetti di ambito Field e Global nelle funzioni personalizzate support-field-and-global-objects
Gli oggetti Field fanno riferimento ai singoli componenti o elementi di un modulo, ad esempio campi di testo e caselle di controllo. L'oggetto Globals contiene variabili di sola lettura quali l'istanza del modulo, l'istanza del campo di destinazione e i metodi per apportare modifiche al modulo nelle funzioni personalizzate.
param {scope} globals
deve essere l'ultimo parametro e non viene visualizzato nell'editor di regole di un modulo adattivo.Per ulteriori informazioni sugli oggetti ambito, vedere l'articolo Oggetti ambito nelle funzioni personalizzate.
Supporto della memorizzazione in cache nella funzione personalizzata
Forms adattivo implementa il caching per le funzioni personalizzate per migliorare il tempo di risposta durante il recupero dell’elenco delle funzioni personalizzate nell’editor di regole. Nel file error.log
viene visualizzato il messaggio Fetched following custom functions list from cache
.
Se le funzioni personalizzate vengono modificate, la memorizzazione in cache viene invalidata e analizzata.
Risoluzione dei problemi
-
Se il file JavaScript contenente il codice per le funzioni personalizzate presenta un errore, le funzioni personalizzate non sono elencate nell’editor delle regole di un modulo adattivo. Per verificare l'elenco delle funzioni personalizzate, è possibile individuare l'errore nel file
error.log
. In caso di errore, l’elenco delle funzioni personalizzate appare vuoto:In caso di errore, la funzione personalizzata viene recuperata e visualizzata nel file
error.log
. Nel fileerror.log
viene visualizzato il messaggioFetched following custom functions list
:
Passaggio successivo
Vediamo ora vari esempi di funzioni personalizzate per un modulo adattivo basato su componenti core.
Consulta anche
- Introduzione all’editor di regole per moduli adattivi basati su componenti core
- Tipi di operatori ed eventi nell’editor di regole di un modulo adattivo basato su componenti core
- Interfaccia utente dell’editor di regole per moduli adattivi basati su componenti core
- Diversi casi d’uso dell’editor di regole per un modulo adattivo basato su componenti core
- Differenza nelle varie edizioni dell’editor di regole
- Utilizzo di funzioni asincrone in un modulo adattivo
- Miglioramenti a Avvia servizio nell’editor di regole visive per i moduli basati su componenti core
- Introduzione alle funzioni personalizzate per moduli adattivi basati su componenti core
- Creare una funzione personalizzata per un modulo adattivo basato su componenti core
- Oggetto ambito nelle funzioni personalizzate
- Esempi di sviluppo e utilizzo di una funzione personalizzata