Moduli
AEM offre un servizio di moduli che acquisisce i dati inviati in un documento Microsoft Excel o Fogli Google.
L’invio dei dati tramite moduli sul sito web avviene direttamente nei fogli di calcolo, in modo che gli utenti aziendali possano accedervi facilmente. Tali dati possono anche interagire con flussi di lavoro automatizzati più complessi, in quanto sia i fogli di Google che Microsoft Excel e Sharepoint offrono accesso a un ecosistema dinamico e a API solide.
Preparazione di un foglio per l’acquisizione dei dati
-
Creare una cartella di lavoro di Excel o un foglio di Google in un punto qualsiasi della directory del progetto. In questo documento viene utilizzato un foglio in OneDrive denominato
email-form.xlsx
nella radice di un progetto AEM. -
Assicurati che l’utente AEM (ad esempio helix@adobe.com) configurato per il progetto ha autorizzazione di modifica sul foglio.
-
Aprire la cartella di lavoro creata e rinominare il foglio predefinito in
incoming
.
Nota: L'AEM non invierà alcun dato a questa cartella di lavoro seincoming
Il foglio non esiste. -
Visualizza l’anteprima del foglio nella barra laterale.
Nota: Anche se un foglio è stato visualizzato in anteprima in precedenza, deve essere visualizzato di nuovo dopo aver creatoincoming
per la prima volta. -
Imposta il foglio con le intestazioni che corrispondono ai dati che vengono acquisiti. Puoi eseguire questa operazione manualmente o inviando una richiesta POST al percorso del modulo nel servizio di amministrazione dell’AEM. Il servizio di amministrazione esamina i dati nel corpo del POST e crea le intestazioni, le tabelle e i fogli necessari per acquisire i dati e ottenere il massimo dal servizio forms.
Per informazioni dettagliate sul formato della richiesta POST di impostazione del foglio, vedere Admin API e il seguente esempio:
Richiesta:code language-none POST /form/{owner}/{repo}/{ref}/en/email-form.json HTTP/1.1 {"data":{"firstName":"test"}}
Risposta:
code language-none HTTP/1.1 200 OK {"rowCount":2,"columns":["firstName"]}
Per effettuare questa richiesta POST, puoi utilizzare uno strumento come curl o Postman. Ad esempio:
code language-none curl -s -i -X POST 'https://admin.hlx.page/form/{owner}/{repo}/{ref}/en/email-form.json' \ --header 'Content-Type: application/json' \ --data '{"data":{"firstName":"test"}}'
Tramite la richiesta POST di cui sopra, forniamo dati di esempio, ovvero i campi del modulo e i valori di esempio che verranno utilizzati dal servizio di amministrazione per impostare il modulo.
Si consiglia di impostare il foglio da parte del servizio di amministrazione, ma se desideri creare le intestazioni manualmente, consulta il documento Impostazione manuale foglio Forms. -
Dopo l’invio
POST
richiesta al servizio di amministrazione verranno visualizzate le seguenti modifiche alla cartella di lavoro.-
Un foglio denominato
helix-default
viene creato. I dati in questo foglio sono quelli che verranno restituiti quando unGET
richiesta al foglio. Questa è un'ottima posizione per utilizzare le formule dei fogli di calcolo per riepilogare i dati daincoming
fogli destinati ad altri usi.
Nota: Ilhelix-default
il foglio non deve mai contenere informazioni personali o altri dati di cui non si è certi di essere pubblicamente accessibili. -
Un foglio denominato
slack
creato. Qui puoi impostare notifiche automatiche a un canale di Slack ogni volta che i dati vengono acquisiti nel foglio di calcolo. Attualmente l'AEM supporta solo le notifiche all'organizzazione Slack Engineering dell'AEM e all'organizzazione Adobe Enterprise Support.- Per impostare le notifiche di Slack, immettere
teamId
dell'area di lavoro di Slack echannel
nome o ID. Puoi anche chiedere al backbot (con ildebug
) per ilteamId
echannel
ID Utilizzo dichannel
L’ID invece del nome è da preferire, in quanto sopravvive alle ridenominazioni dei canali.
Nota: I moduli più vecchi non avevano ilteamId
colonna. IlteamId
è stato incluso nelchannel
colonna, separata da una#
o/
. - Inserisci qualsiasi titolo vuoi e sotto campi immettere i nomi dei campi da visualizzare nella notifica di Slack. Ogni intestazione deve essere separata da una virgola (ad es.
name, email
).
- Per impostare le notifiche di Slack, immettere
-
Invio di dati al foglio
Il foglio è ora pronto per l’acquisizione dei dati e puoi inviare POST
richiede direttamente al foglio il hlx.page
, hlx.live
o il dominio di produzione.
POST https://ref–repo–owner.hlx.(page|live)/email-form
POST https://my-domain.com/email-form
Nota: L’URL non deve includere .json
estensione. Il foglio deve essere pubblicato per POST
operazioni su cui lavorare .live
o sul dominio di produzione.
Esistono alcuni modi diversi per formattare i dati del modulo in POST
corpo.
- sotto forma di array di coppie nome/valore
https://gist.github.com/dylandepass/9ba6b83700dfce1fa90a47bde62c2e9 - Come oggetto con coppie chiave/valore
<script src=“https://gist.github.com/dylandepass/2b5f694723dfdb3d304fcafc613d6595.js”></script> - As
x-www-form-urlencoded
corpo (content-type
l’intestazione deve essere impostata suapplication/x-www-form-urlencoded
)
<script src=“https://gist.github.com/dylandepass/b72b2e30313bc80beb02e12b1d7201ff.js”></script>
Tutto qui! Il servizio Forms viene eseguito ogni minuto in modo da visualizzare rapidamente i dati acquisiti nel foglio.
Forms creato dall’autore
In molti casi è consigliabile che gli autori creino moduli e decidano quali campi modulo devono essere presentati al visitatore del sito web. È comune utilizzare il helix-default
foglio dello stesso foglio di calcolo utilizzato per l’invio del modulo come luogo in cui consentire all’autore di definire i moduli.
In genere, esiste un blocco forms che accetta un riferimento al foglio di calcolo, esegue il rendering del modulo e gestisce il flusso dell’utente durante l’invio.
Un semplice esempio di tale form
blocco trovato qui e il Blocco Forms adattivo è disponibile qui.
Quando hai bisogno di moduli con funzioni quali reCAPTCHA, accessibilità, caricamenti di file, convalide di campi, firma elettronica, monitoraggio delle prestazioni, regole basate su fogli di calcolo, documento di record (DoR) e altro ancora, utilizza 🔗 Blocco Forms adattivo. Supporta un’ampia gamma di moduli, da quelli semplici che raccolgono informazioni di base (come moduli di contatto o richieste di servizi) a quelli complessi con più sezioni, regole e integrazioni con Adobe Sign, Adobe Workfront e sistemi esterni. È inoltre possibile utilizzarlo per inviare dati a fogli di calcolo o per connettersi a sistemi esterni per moduli di livello enterprise. Per ulteriori dettagli, vedi 🔗 Documentazione dei Edge Delivery Services di AEM Forms.
Vedi l’esempio seguente per un’idea dell’aspetto del foglio di calcolo per la definizione del modulo.
I campi modulo supportati sono estensibili e form
deve essere visto come un esempio che ti da un punto di partenza.
Ad esempio, a questa pagina è stato aggiunto un modulo completamente funzionale, utilizzando la base di codice elencata in precedenza, semplicemente aggiungendo il seguente blocco nel documento di Google:
Puoi provarlo e visualizzare il flusso di dati del modulo in foglio in entrata. L'operazione dal servizio modulo al foglio di calcolo potrebbe richiedere alcuni minuti.