Invio asincrono di moduli adattivi

Tradizionalmente, i moduli Web sono configurati per l'invio sincrono. Quando gli utenti inviano un modulo, vengono reindirizzati a una pagina di conferma o, in caso di invio non riuscito, a una pagina di errore. Tuttavia, esperienze Web moderne come applicazioni a pagina singola stanno acquisendo sempre maggiore popolarità, dove la pagina Web rimane statica mentre l'interazione client-server avviene in background. È ora possibile fornire questa esperienza con i moduli adattivi configurando l'invio asincrono. In questo caso, un modulo adattivo si comporta come un'applicazione a pagina singola in quanto il modulo non viene ricaricato o il relativo URL non cambia quando i dati del modulo inviato vengono convalidati sul server.

Per ulteriori informazioni sull'invio asincrono nei moduli adattivi, consultare il documento.

Configurare l'invio asincrono

Per configurare l'invio asincrono per un modulo adattivo:

  1. In modalità di creazione moduli adattivi, selezionare l'oggetto Contenitore modulo e toccare cmppr1 per aprirne le proprietà.

  2. Nella sezione Proprietà invio , abilitare Usa invio asincrono.

  3. Nella sezione Al momento dell'invio , selezionare una delle opzioni seguenti da eseguire in caso di invio corretto del modulo.

    • Reindirizza a URL: Reindirizza all'URL o alla pagina specificati all'invio del modulo. Potete specificare un URL o individuare il percorso di una pagina nel campo URL/percorso di reindirizzamento.
    • Mostra messaggio: Visualizza un messaggio all'invio del modulo. È possibile scrivere un messaggio nel campo di testo sotto l'opzione Mostra messaggio. Il campo di testo supporta la formattazione RTF.
  4. Toccate check-button1 per salvare le proprietà.

Funzionamento dell'invio asincrono

AEM Forms fornisce handler out-of-the-box per l'invio di moduli con esito positivo e errore. I gestori sono funzioni lato client che vengono eseguite in base alla risposta del server. Quando un modulo viene inviato, i dati vengono trasmessi al server per la convalida, che restituisce una risposta al client con informazioni sull'evento success o error per l'invio. Le informazioni vengono trasmesse come parametri al gestore interessato per eseguire la funzione.

Inoltre, autori e sviluppatori di moduli possono scrivere regole a livello di modulo per ignorare i gestori predefiniti. Per ulteriori informazioni, vedere Ignorare i gestori predefiniti utilizzando le regole.

Esaminiamo innanzitutto la risposta del server per gli eventi di successo e di errore.

Risposta del server per l'evento di successo invio

La struttura per la risposta del server per l'evento di successo dell'invio è la seguente:

{
  contentType : "<xmlschema or jsonschema>", 
  data : "<dataXML or dataJson>" , 
  thankYouOption : <page/message>, 
  thankYouContent : "<thank you page url/thank you message>"
}

La risposta del server in caso di invio corretto del modulo include:

  • Tipo formato dati modulo: XML o JSON
  • Dati del modulo in formato XML o JSON
  • Opzione selezionata per reindirizzare a una pagina o visualizzare un messaggio come configurato nel modulo
  • URL pagina o contenuto del messaggio come configurato nel modulo

Il gestore di eventi di successo legge la risposta del server e reindirizza quindi all'URL di pagina configurato o visualizza un messaggio.

Risposta del server all'evento di errore di invio

La struttura per la risposta del server all'evento di errore di invio è la seguente:

{
   errorCausedBy : "<CAPTCHA_VALIDATION or SERVER_SIDE_VALIDATION>",

   errors : [
               { "somExpression" : "<SOM Expression>",
                 "errorMessage"  : "<Error Message>"
               },
               ...
             ]
 }

La risposta del server in caso di errore nell'invio del modulo include:

  • Motivo dell’errore, convalida CAPTCHA non riuscita o convalida lato server
  • Elenco di oggetti errore, che include l'espressione SOM del campo con errore di convalida e il messaggio di errore corrispondente

Il gestore errori legge la risposta del server e visualizza di conseguenza il messaggio di errore sul modulo.

Ignorare i gestori predefiniti utilizzando le regole

Gli sviluppatori di moduli e gli autori possono scrivere regole, a livello di modulo, nell'editor di codice per ignorare i gestori predefiniti. La risposta del server per gli eventi di successo e di errore è esposta a livello di modulo, a cui gli sviluppatori possono accedere utilizzando $event.data nelle regole.

Effettuate le seguenti operazioni per scrivere le regole nell'editor di codice per gestire gli eventi di successo e di errore.

  1. Aprite il modulo adattivo in modalità di creazione, selezionate un oggetto modulo qualsiasi e toccate edit-rules1 per aprire l'editor di regole.
  2. Selezionare Modulo nella struttura Oggetti modulo e toccare Crea.
  3. Selezionate Editor di codice dal menu a discesa di selezione della modalità.
  4. Nell'editor di codice, tocca Modifica codice. Toccate Modifica nella finestra di dialogo di conferma.
  5. Scegliete Invio o Errore nell'invio dall'elenco a discesa Evento .
  6. Scrivete una regola per l'evento selezionato e toccate Fine per salvare la regola.

In questa pagina