Show Menu
ARGOMENTI×

Espressioni modulo adattivo

I moduli adattivi offrono agli utenti finali un'esperienza di compilazione dei moduli ottimizzata e semplificata grazie a funzionalità di scripting dinamico. Consente di scrivere espressioni per aggiungere vari comportamenti, ad esempio campi e pannelli di visualizzazione o di visualizzazione dinamici. Consente inoltre di aggiungere campi calcolati, rendere i campi di sola lettura, aggiungere logica di convalida e molto altro ancora. Il comportamento dinamico si basa sull'input dell'utente o sui dati precompilati.
JavaScript è il linguaggio di espressione dei moduli adattivi. Tutte le espressioni sono espressioni JavaScript valide e utilizzano API per modelli di script di moduli adattivi. Queste espressioni restituiscono valori di determinati tipi. Per l'elenco completo delle classi, degli eventi, degli oggetti e delle API pubbliche dei moduli adattivi, consultare il riferimento alle API della libreria JavaScript per i moduli adattivi.

Procedure ottimali per la scrittura di espressioni

  • Durante la scrittura di espressioni, per accedere a campi e pannelli è possibile utilizzare il nome del campo o del pannello. Per accedere al valore di un campo, utilizzare la proprietà value. Esempio, field1.value
  • Utilizzare nomi univoci per campi e pannelli all'interno del modulo. Consente di evitare possibili conflitti con i nomi dei campi utilizzati durante la scrittura delle espressioni.
  • Durante la scrittura di espressioni con più righe, utilizzate un punto e virgola per terminare un'istruzione.

Procedure ottimali per le espressioni che coinvolgono il pannello ripetuto

I pannelli ripetuti sono istanze di un pannello che vengono aggiunte o rimosse in modo dinamico mediante l'API di script o dati precompilati. Per informazioni dettagliate sull'uso del pannello ripetuto, vedere Creazione di moduli con sezioni ripetibili.
  • Per creare un pannello ripetuto, nella finestra di dialogo del pannello aprite le impostazioni e impostate il valore del campo conteggio massimo su più di 1.
  • Il valore del conteggio minimo delle impostazioni di ripetizione del pannello può essere uno o più, ma non può essere maggiore del valore massimo del conteggio.
  • Quando un'espressione fa riferimento a un campo del pannello ripetuto, i nomi dei campi nell'espressione vengono risolti nell'elemento ripetuto più vicino.
  • I moduli adattivi offrono alcune funzioni speciali per semplificare il calcolo dei pannelli ripetibili, ad esempio somma, conteggio, min, max, filtro e molto altro. Per l'elenco completo delle funzioni, consultare il riferimento API della libreria JavaScript per i moduli adattivi
  • Le API per la modifica delle istanze del pannello ripetuto sono:
    • Per aggiungere un’istanza di pannello: panel1.instanceManager.addInstance()
    • Per ottenere un indice di ripetizione del pannello: panel1.instanceIndex
    • Per ottenere instanceManager di un pannello: _panel1 or panel1.instanceManager
    • Per rimuovere un’istanza di un pannello: _panel1.removeInstance(panel1.instanceIndex)

Tipi di espressione

Nei moduli adattivi è possibile scrivere espressioni per aggiungere comportamenti quali mostrare/nascondere campi e pannelli dinamici. È inoltre possibile scrivere espressioni per aggiungere campi calcolati, rendere i campi di sola lettura, la logica di convalida e molto altro ancora. I moduli adattivi supportano le seguenti espressioni:
  • Espressioni di accesso: per attivare/disattivare un campo.
  • Calcola espressioni : per calcolare automaticamente il valore di un campo.
  • Espressione di clic: per gestire le azioni in caso di clic su un pulsante.
  • Script di inizializzazione: eseguire un'azione all'inizializzazione di un campo.
  • Espressione Opzioni: per compilare in modo dinamico un elenco a discesa.
  • Espressione di riepilogo: per calcolare in modo dinamico il titolo di un pannello a soffietto.
  • Convalidare le espressioni : per convalidare un campo.
  • Script di conferma del valore: per modificare i componenti di un modulo dopo la modifica del valore di un campo.
  • Espressione di visibilità: per controllare la visibilità di un campo e di un pannello.
  • Espressione completamento passaggio: per impedire che un utente passi al passaggio successivo di una procedura guidata.

Espressione di accesso (espressione di abilitazione)

È possibile utilizzare l'espressione access per abilitare o disabilitare un campo. Se l'espressione utilizza il valore di un campo, ogni volta che il valore del campo cambia l'espressione viene riattivata.
Si applica a : fields
Tipo di restituzione: L'espressione restituisce un valore booleano che rappresenta se il campo è abilitato o disabilitato. true indica che il campo è abilitato e false indica che il campo è disabilitato.
Esempio : Per abilitare un campo solo quando il valore di field1 è impostato su X , l'espressione di accesso è: field1.value == "X"

Calcola espressione

L'espressione calculate viene utilizzata per calcolare automaticamente il valore di un campo utilizzando un'espressione. In genere, tale espressione utilizza la proprietà value di un altro campo. Esempio, field2.value + field3.value . Ogni volta che il valore field2 o field3 cambia, l'espressione viene riattivata e il valore viene ricalcolato.
Si applica a : fields
Tipo di restituzione: L'espressione restituisce un valore compatibile con il campo in cui viene visualizzato il risultato dell'espressione (ad esempio, decimale).
Esempio : L'espressione calculate per mostrare la somma di due campi in field1 è: field2.value + field3.value

Click Expression

L'espressione click gestisce le azioni eseguite sull'evento click di un pulsante. GuideBridge fornisce API che eseguono varie funzioni, ad esempio invia, convalida, utilizzate insieme all'espressione click. Per un elenco completo delle API, consultate API GuideBridge .
Si applica a : Campi pulsante
Tipo di restituzione: L'espressione click non restituisce alcun valore. Se una qualsiasi espressione restituisce un valore, il valore viene ignorato.
Esempio : Per compilare una casella di testo textbox1 in corrispondenza dell'azione clic di un pulsante con valore AEM Forms , l'espressione click del pulsante è textbox1.value="AEM Forms"

Script di inizializzazione

Lo script di inizializzazione viene attivato quando viene inizializzato un modulo adattivo. A seconda degli scenari, lo script di inizializzazione si comporta come segue:
  • Quando si esegue il rendering di un modulo adattivo senza precompilazione dati, lo script di inizializzazione viene eseguito dopo l'inizializzazione del modulo.
  • Quando viene eseguito il rendering di un modulo adattivo con una precompilazione dei dati, lo script viene eseguito al termine dell'operazione di precompilazione.
  • Quando viene attivata la riconvalida lato server di un modulo adattivo, viene eseguito lo script di inizializzazione.
Si applica a: campi e pannello
Tipo di restituzione: L'espressione script di inizializzazione non restituisce alcun valore. Se una qualsiasi espressione restituisce un valore, il valore viene ignorato.
Esempio: In uno scenario di pre-compilazione dei dati, per compilare i campi con il valore predefinito 'Adaptive Forms' quando il relativo valore viene salvato come null, l'espressione script di inizializzazione è: if(this.value==null) this.value='Adaptive Forms';

Espressione Opzioni

L'espressione options viene utilizzata per compilare dinamicamente le opzioni di un campo elenco a discesa.
Si applica a : campi elenco a discesa
Tipo di restituzione: L'espressione options restituisce un array di valori stringa. Ogni valore può essere una semplice stringa, ad esempio Maschio , o in un formato di coppia chiave=valore, ad esempio 1=Maschio
Esempio : Per compilare il valore di un campo, in base al valore di un altro campo, fornire un'espressione di opzioni semplice. Ad esempio, per compilare un campo, Numero di bambini , in base allo Stato ​civile espresso in un altro campo, l'espressione è:
marital_status.value == "married" ? ["1=One", "2=two"] : ["0=Zero"] .
Ogni volta che il valore del campo marital_status cambia, l'espressione viene riattivata. È inoltre possibile compilare il menu a discesa da un servizio REST. Per informazioni dettagliate, consultate Compilazione dinamica di menu a discesa .

Espressione di riepilogo

L'espressione Summary calcola dinamicamente il titolo di un pannello secondario di un pannello di layout a soffietto. È possibile specificare l'espressione Summary in una regola, che utilizza un campo modulo o una logica personalizzata per valutare il titolo. L'espressione viene eseguita quando il modulo viene inizializzato. Se si sta precompilando un modulo, l'espressione viene eseguita dopo che i dati sono stati precompilati o quando il valore dei campi dipendenti utilizzati nell'espressione cambia.
L'espressione Summary viene in genere utilizzata per gli elementi secondari ripetuti di un pannello di layout a soffietto per fornire un titolo significativo a ciascun pannello secondario.
Si applica a: Pannelli che sono elementi figlio diretti di un pannello il cui layout è configurato come Accordion.
Tipo di restituzione: L'espressione restituisce un elemento String che diventa il titolo dell'elemento Accordion.
Esempio: "Numero account: "+ textbox1.value

Convalida espressione

L'espressione validate viene utilizzata per convalidare i campi utilizzando l'espressione specificata. In genere, tali espressioni utilizzano espressioni regolari insieme al valore del campo per convalidare un campo. L'espressione viene riattivata e lo stato di convalida del campo viene ricalcolato in seguito a qualsiasi modifica del valore di un campo.
Si applica a : fields
Tipo di restituzione: L'espressione restituisce un valore booleano che rappresenta lo stato di convalida del campo. Il valore false rappresenta che il campo non è valido e true rappresenta la validità del campo. Esempio : Per un campo che rappresenta il codice postale del Regno Unito, l'espressione di convalida è:
( this.value && this.value.match(/^(GIR 0AA|[A-Z]{1,2}\d[A-Z0-9]? ?[0-9][A-Z]{2}\s*)$/i) == null) ? false : true
Nell'esempio precedente, se il valore non vuoto non corrisponde al pattern, l'espressione restituisce false per indicare che il campo non è valido.
Se si scrive un'espressione di convalida per un campo non obbligatorio o obbligatorio, l'espressione viene valutata indipendentemente dallo stato di visibilità del campo. Per arrestare la convalida dei campi nascosti, impostare su true la proprietà validationsDisabled nello script di inizializzazione o di conferma del valore. Esempio, this.validationsDisabled=true

Script per conferma del valore

Lo script Value Commit viene attivato quando:
  • Un utente modifica il valore di un campo dall’interfaccia utente.
  • Il valore di un campo viene modificato a livello di programmazione a causa di una modifica in un altro campo.
Si applica a: fields
Tipo di restituzione: L'espressione script commit del valore non restituisce alcun valore. Se una qualsiasi espressione restituisce un valore, il valore viene ignorato.
Esempio: Per convertire in maiuscolo le lettere maiuscole degli alfabeti immessi nel campo in corrispondenza di commit, il valore commit dell'espressione è: this.value=this.value.toUpperCase()
È possibile disabilitare l'esecuzione dello script di commit dei valori quando il valore di un campo viene modificato a livello di programmazione. A questo scopo, andate a https://' # : # '/system/console/configMgr e modificate la versione Forms adattiva per compatibilità in AEM Forms 6.1 . In seguito, lo script Value Commit viene eseguito solo quando l'utente modifica il valore del campo dall'interfaccia utente.

Espressione di visibilità

L'espressione Visibilità viene utilizzata per controllare la visibilità di campo/pannello. In genere, l'espressione di visibilità utilizza la proprietà value di un campo e viene riattivata ogni volta che il valore cambia.
Si applica a : campi e pannello
Tipo di restituzione: L'espressione restituisce un valore booleano che rappresenta il campo o il pannello visibile o meno. false indica che il campo o il pannello non è visibile e true indica che il campo o il pannello è visibile.
Esempio : Per un pannello che diventa visibile solo se il valore di field1 è impostato su Maschio , l'espressione di visibilità è: field1.value == "Male"

Espressione completamento passaggio

L'espressione completamento passaggi viene utilizzata per impedire all'utente di passare al passaggio successivo di un layout della procedura guidata. Queste espressioni vengono utilizzate quando i pannelli dispongono di un layout guidato (moduli con più fasi che mostrano un passaggio alla volta). L'utente può passare al passaggio successivo, al pannello o alla sottosezione solo se tutti i valori richiesti nella sezione corrente sono pieni e validi.
Si applica a : Pannelli con layout dell'elemento impostato sulla procedura guidata.
Tipo di restituzione: L'espressione restituisce un valore booleano che rappresenta il pannello corrente valido o meno. True indica che il pannello corrente è valido e che l'utente può passare al pannello successivo.
Esempio : In un modulo organizzato in vari pannelli, prima di passare al pannello successivo viene convalidato il pannello corrente. In tali casi, vengono utilizzate le espressioni di completamento dei passaggi. In genere, queste espressioni utilizzano l'API validate di GuideBridge. Un esempio di espressione completamento passo è: window.guideBridge.validate([],this.panel.navigationContext.currentItem.somExpression)

Convalida nel modulo adattivo

Esistono diversi metodi per aggiungere la convalida dei campi a un modulo adattivo. Se su un campo viene aggiunto un controllo di convalida, True indica che il valore immesso nel campo è valido. False indica che il valore non è valido. Se si esegue il tab-in e out di un campo, il messaggio di errore non viene generato.
I metodi per aggiungere le convalide a un campo sono:

Obbligatorio

Per rendere obbligatorio un componente, nella finestra di dialogo Modifica del componente potete selezionare l’opzione Titolo e testo > Obbligatorio . È inoltre possibile aggiungere il messaggio ​richiesto appropriato (facoltativo). .

Pattern di convalida

Per un campo sono disponibili più pattern di convalida della casella. Per selezionare un pattern di convalida, nella finestra di dialogo Modifica del componente individuare la sezione Pattern e selezionare i pattern . È possibile creare un pattern di convalida personalizzato in una casella di testo Pattern . Lo stato di convalida viene restituito True solo se i dati compilati sono conformi al pattern di convalida, altrimenti viene restituito False . Per creare un pattern di convalida personalizzato, vedere Supporto della clausola illustrazione per i moduli HTML5.

Espressioni convalida

La convalida di un campo può anche essere calcolata utilizzando espressioni presenti in diversi campi. Queste espressioni sono scritte all'interno del campo Script convalida della scheda Script della finestra di dialogo Modifica del componente. Lo stato di convalida di un campo dipende dal valore restituito dall'espressione. Per informazioni su come scrivere tali espressioni, vedere Convalida espressione .

Informazioni aggiuntive

Utilizzo del formato di visualizzazione dei campi

Formato di visualizzazione può essere utilizzato per visualizzare i dati in diversi formati. Ad esempio, è possibile utilizzare il formato di visualizzazione per visualizzare un numero di telefono con trattini, formattare il codice ZIP o selezionare la data. Questi pattern di visualizzazione possono essere selezionati dalla sezione Pattern della finestra di dialogo Modifica di un componente. È possibile creare pattern di visualizzazione personalizzati simili ai pattern di convalida indicati in precedenza.

GuideBridge - API ed eventi

GuideBridge è un insieme di API che possono essere utilizzate per interagire con i moduli adattivi nel modello di memoria in un browser. Per un'introduzione dettagliata all'API di Guide Bridge, ai metodi di classe, agli eventi esposti, vedere Riferimento API JavaScript Library per i moduli adattivi.
È consigliabile non utilizzare i listener di eventi GuideBridge nelle espressioni.

Utilizzo di GuideBridge in varie espressioni

  • Per reimpostare i campi modulo, è possibile attivare guideBridge.reset() l'API facendo clic sull'espressione di un pulsante. Analogamente, esiste un'API submit che può essere chiamata come espressione click guideBridge.submit() .
  • Potete utilizzare l' setFocus() API per impostare lo stato attivo su vari campi o pannelli (poiché lo stato attivo del pannello è impostato automaticamente sul primo campo). setFocus() offre un’ampia gamma di opzioni per la navigazione tra i pannelli, la navigazione precedente/successiva, l’impostazione dello stato attivo per un particolare campo e molte altre. Ad esempio, per passare al pannello successivo, potete usare: guideBridge.setFocus(this.panel.somExpression, 'nextItem').
  • Per convalidare un modulo adattivo o i relativi pannelli specifici, utilizzare guideBridge.validate(errorList, somExpression).

Utilizzo di GuideBridge all’esterno delle espressioni 

Potete anche utilizzare le API GuideBridge al di fuori delle espressioni. Ad esempio, è possibile utilizzare l'API GuideBridge per impostare la comunicazione tra l'HTML della pagina che ospita il modulo adattivo e il modello di modulo. Inoltre, è possibile impostare il valore che proviene dall'elemento padre di Iframe che ospita il modulo.
Per utilizzare l’API GuideBridge per gli esempi di cui sopra, acquisite un’istanza di GuideBridge. Per acquisire l'istanza, ascoltare l' bridgeInitializeStart evento di un window oggetto:
window.addEventListener("bridgeInitializeStart", function(evnt) {

     // get hold of the guideBridge object

     var gb = evnt.detail.guideBridge;

     //wait for the completion of AF

     gb.connect(function (){

        //this function will be called after Adaptive Form is initialized

     })

})

In AEM, è buona norma scrivere il codice in una libreria client e includerlo nella pagina (header.jsp o piè di pagina.jsp della pagina)
Per utilizzare GuideBridge dopo l'inizializzazione del modulo (l' bridgeInitializeComplete evento viene inviato), è necessario utilizzare l'istanza GuideBridge window.guideBridge . Potete verificare lo stato di inizializzazione di GuideBridge utilizzando l' guideBride.isConnected API.

Eventi GuideBridge

GuideBridge fornisce inoltre alcuni eventi per gli script esterni nella pagina host. Gli script esterni possono ascoltare questi eventi ed eseguire varie operazioni. Ad esempio, ogni volta che il nome utente in un modulo cambia, cambia anche il nome visualizzato nell’intestazione della pagina. Per ulteriori dettagli su tali eventi, vedere Riferimento API della libreria JavaScript per i moduli adattivi.
Utilizzare il codice seguente per registrare i gestori:
guideBridge.on("elementValueChanged", function (event, data)  {

      // execute some logic when value of a field is changed

});

Creazione di pattern personalizzati per un campo

Come già detto, i moduli adattivi consentono all'autore di fornire pattern per la convalida o i formati di visualizzazione. Oltre a utilizzare i pattern predefiniti, è possibile definire pattern personalizzati riutilizzabili per un componente modulo adattivo. Ad esempio, è possibile definire un campo di testo o un campo numerico. Una volta definiti, è possibile utilizzare questi pattern in tutti i moduli per il tipo di componente specificato. Ad esempio, è possibile creare un pattern personalizzato per un campo di testo e utilizzarlo nei campi di testo dei moduli adattivi. È possibile selezionare il pattern personalizzato accedendo alla sezione del pattern nella finestra di dialogo di modifica di un componente. Per informazioni dettagliate sulla definizione o il formato del pattern, vedere Supporto della clausola illustrazione per i moduli HTML5.
Per creare un pattern personalizzato per un tipo di campo specifico e riutilizzarlo per altri campi dello stesso tipo, procedere come segue:
  1. Passa al CRXDE Lite nell’istanza di authoring.
  2. Create una cartella per mantenere i pattern personalizzati. Nella directory /apps, create un nodo di tipo sling:folder. Ad esempio, creare un nodo con il nome customPatterns . Sotto questo nodo, creare un altro nodo di tipo nt:unstructed e denominarlo textboxpatterns . Questo nodo contiene i vari pattern personalizzati che si desidera aggiungere.
  3. Aprire la scheda Proprietà del nodo creato. Ad esempio, aprire la scheda Proprietà di textboxpatterns . Aggiungete la guideComponentType proprietà a questo nodo e impostatene il valore su fd/af/components/formatter/guideTextBox .
  4. Il valore di questa proprietà varia a seconda del campo per il quale si desidera definire i pattern. Per i campi numerici, il valore della guideComponentType proprietà è fd/af/components/formatter/guideNumericBox . Il valore del campo Datepicker è fd/af/components/formatter/guideDatepicker . "
  5. È possibile aggiungere un pattern personalizzato assegnando una proprietà al textboxpatterns nodo. Aggiungete una proprietà con un nome (ad esempio pattern1 ) e impostatene il valore sul pattern da aggiungere. Ad esempio, aggiungere una proprietà pattern1 con il valore Fax=text{99-999-999999}. Il pattern è disponibile per tutte le caselle di testo utilizzate in Forms adattivo.
    Creazione di pattern personalizzati