Integrare un modulo adattivo con un database utilizzando il flusso di lavoro AEM submit-forms-to-database-using-forms-portal
Il servizio di automated forms conversion (AFCS) consente di convertire un modulo di PDF non interattivo, un modulo Acro o un modulo di PDF basato su XFA in un modulo adattivo. Quando si avvia il processo di conversione, è possibile generare un modulo adattivo con o senza associazioni di dati.
Se scegli di generare un modulo adattivo senza associazioni di dati, puoi integrare il modulo adattivo convertito con un modello di dati del modulo, uno schema XML o uno schema JSON dopo la conversione. Per il modello dati modulo, è necessario associare manualmente i campi del modulo adattivo al modello dati modulo. Tuttavia, se generi un modulo adattivo con associazioni di dati, il servizio di conversione associa automaticamente i moduli adattivi a uno schema JSON e crea un’associazione di dati tra i campi disponibili nel modulo adattivo e lo schema JSON. Puoi quindi integrare il modulo adattivo con un database a tua scelta, compilare i dati nel modulo e inviarlo al database. Analogamente, una volta completata l’integrazione con il database, è possibile configurare i campi nel modulo adattivo convertito per recuperare i valori dal database e precompilare i campi del modulo adattivo.
La figura seguente illustra diverse fasi dell’integrazione di un modulo adattivo convertito con un database:
Questo articolo descrive le istruzioni dettagliate per eseguire correttamente tutte queste fasi di integrazione.
Prerequisiti pre-requisites
- Configurare un’istanza di authoring AEM 6.4 o 6.5
- Installa il service pack più recente per l'istanza AEM
- Versione più recente del pacchetto del componente aggiuntivo AEM Forms
- Configura servizio di Automated forms conversion
- Configurare un database. Il database utilizzato nell'implementazione di esempio è MySQL 5.6.24. Tuttavia, puoi integrare il modulo adattivo convertito con qualsiasi database di tua scelta.
Modulo adattivo di esempio sample-adaptive-form
Per eseguire il caso d’uso per integrare i moduli adattivi convertiti con un database utilizzando un flusso di lavoro AEM, scarica il seguente file PDF di esempio.
Puoi scaricare il modulo Contattaci di esempio utilizzando:
Il file PDF funge da input per il servizio di Automated forms conversion (AFCS). Il servizio converte questo file in un modulo adattivo. Nell'immagine seguente viene illustrato il modulo Contattaci di esempio in formato PDF.
Installare il file mysql-connector-java-5.1.39-bin.jar install-mysql-connector-java-file
Per installare il file mysql-connector-java-5.1.39-bin.jar, su tutte le istanze di authoring e pubblicazione, effettua le seguenti operazioni:
- Passare a
http://server:port/system/console/depfinder
e cercare il pacchetto com.mysql.jdbc. - Nella colonna Esportato da, controlla se il pacchetto viene esportato da un bundle. Procedi se il pacchetto non viene esportato da alcun bundle.
- Passare a
http://server:port/system/console/bundles
e fare clic su Install/Update. - Fare clic su Choose File e selezionare il file mysql-connector-java-5.1.39-bin.jar. Selezionare inoltre le caselle di controllo Start Bundle e Refresh Packages.
- Fare clic su Install o Update. Al termine, riavviare il server.
- (Solo per Windows) Disattivare il firewall di sistema per il sistema operativo in uso.
Prepara dati per modello modulo prepare-data-for-form-model
L’integrazione dei dati di AEM Forms consente di configurare e connettersi a diverse origini dati. Dopo aver generato un modulo adattivo utilizzando il processo di conversione, puoi definire il modello del modulo in base a un modello di dati del modulo, XSD o uno schema JSON. È possibile utilizzare un database, Microsoft Dynamics o qualsiasi altro servizio di terze parti per creare un modello di dati modulo.
Questa esercitazione utilizza il database MySQL come origine per la creazione di un modello di dati modulo. Crea uno schema nel database e aggiungi la tabella contactus allo schema in base ai campi disponibili nel modulo adattivo.
È possibile utilizzare l'istruzione DDL seguente per creare la tabella contactus nel database.
CREATE TABLE `contactus` (
`name` varchar(45) NOT NULL,
`email` varchar(45) NOT NULL,
`phonenumber` varchar(10) DEFAULT NULL,
`issuedesc` varchar(1000) DEFAULT NULL,
PRIMARY KEY (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Configurare la connessione tra l’istanza AEM e il database configure-connection-between-aem-instance-and-database
Per creare una connessione tra l'istanza AEM e il database MYSQL, effettuare le seguenti operazioni di configurazione:
-
Passare alla pagina Configurazione console Web AEM all'indirizzo
http://server:port/system/console/configMgr
. -
Trovare e fare clic per aprire Apache Sling Connection Pooled DataSource in modalità di modifica nella configurazione della console Web. Specificare i valori per le proprietà come descritto nella tabella seguente:
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 10-row-2 11-row-2 12-row-2 13-row-2 14-row-2 15-row-2 html-authored Proprietà Valore Nome origine dati Nome dell'origine dati per filtrare i driver dal pool di origini dati. Classe driver JDBC com.mysql.jdbc.Driver URI connessione JDBC jdbc//[host]:[porta]/[nome_schema] Nome utente Un nome utente per autenticare ed eseguire azioni sulle tabelle del database Password Password associata al nome utente Isolamento transazione READ_COMMIT Numero massimo connessioni attive 1000 Numero massimo di connessioni inattive 100 Connessioni inattive minime 10 Dimensione iniziale 10 Attesa massima 100000 Test su prestito Selezionato Test durante inattività Selezionato Query di convalida I valori di esempio sono SELECT 1(mysql), select 1 from dual(oracle), SELECT 1(MS Sql Server) (validationQuery) Timeout query di convalida 10000
Crea modello dati modulo create-form-data-model
Dopo aver configurato MYSQL come origine dati, eseguire i passaggi seguenti per creare un modello dati del modulo:
-
Nell'istanza di creazione AEM passare a Forms > Data Integrations.
-
Toccare Create > Form Data Model.
-
Nella procedura guidata Create Form Data Model, specifica workflow_submit come nome per il modello dati del modulo. Toccare Next.
-
Selezionare l'origine dati MYSQL configurata nella sezione precedente e toccare Create.
-
Tocca Edit ed espandi l'origine dati elencata nel riquadro a sinistra per selezionare la tabella contactus, get e i servizi insert, quindi tocca Add Selected.
-
Selezionare l'oggetto modello dati nel riquadro di destra e toccare Edit Properties. Selezionare get e insert dagli elenchi a discesa Read Service e Write Service. Specificare gli argomenti per il servizio di lettura e toccare Done.
-
Nella scheda Services, seleziona il servizio get e tocca Edit Properties. Seleziona Output Model Object, disabilita l'interruttore Return array e tocca Done.
-
Seleziona il servizio Insert e tocca Edit Properties. Seleziona Input Model Object e tocca Done.
-
Tocca Save per salvare il modello dati del modulo.
Puoi scaricare il modello dati del modulo di esempio utilizzando:
Generare moduli adattivi con binding JSON generate-adaptive-forms-with-json-binding
Utilizza il servizio di Automated forms conversion per convertire il modulo Contattaci in un modulo adattivo con associazione dati. Assicurati di non selezionare la casella di controllo Generate adaptive form(s) without data bindings durante la generazione del modulo adattivo.
Selezionare il modulo Contattaci convertito disponibile nella cartella output in Forms & Documents e toccare Edit. Tocca Preview, immetti i valori nei campi del modulo adattivo e tocca Submit.
Accedi a crx-repository e passa a /content/forms/fp/admin/submit/data per visualizzare i valori inviati in formato JSON. Di seguito sono riportati i dati di esempio in formato JSON quando si invia il modulo adattivo Contattaci convertito:
{
"afData": {
"afUnboundData": {
"data": {}
},
"afBoundData": {
"data": {
"name1": "Gloria",
"email": "abc@xyz.com",
"phone_number": "2346578965",
"issue_description": "Test message"
}
},
"afSubmissionInfo": {
"computedMetaInfo": {},
"stateOverrides": {},
"signers": {},
"afPath": "/content/dam/formsanddocuments/docs_conversion/output/sample_form_json",
"afSubmissionTime": "20191204014007"
}
}
}
È necessario creare ora un modello di flusso di lavoro in grado di elaborare questi dati e inviarli al database MYSQL utilizzando il modello dati del modulo creato nelle sezioni precedenti.
Creare un modello di flusso di lavoro per elaborare i dati JSON create-workflow-model
Per creare un modello di flusso di lavoro per inviare i dati del modulo adattivo al database, effettua le seguenti operazioni:
-
Apri la console Modelli di flusso di lavoro. URL predefinito:
https://server:port/libs/cq/workflow/admin/console/content/models.html/etc/workflow/models
. -
Selezionare Create, quindi Create Model. Viene visualizzata la finestra di dialogo Add Workflow Model.
-
Immettere Title e Name (facoltativo). Ad esempio, workflow_json_submit. Tocca Done per creare il modello.
-
Seleziona il modello di flusso di lavoro e tocca Edit per aprirlo in modalità di modifica. Tocca + e aggiungi il passaggio Invoke Form Data Model Service al modello di flusso di lavoro.
-
Tocca il passaggio Invoke Form Data Model Service e tocca .
-
Nella scheda Form Data Model, selezionare il modello dati del modulo creato nel campo Form Data Model path e selezionare insert dall'elenco a discesa Service.
-
Nella scheda Input for Service, selezionare Provide input data using literal, variable, or a workflow metadata, and a JSON file dall'elenco a discesa, selezionare la casella di controllo Map input fields from input JSON, selezionare Relative to payload e fornire data.xml come valore per il campo Select input JSON document using.
-
Nella sezione Service Arguments, fornire i valori seguenti per gli argomenti del modello dati del modulo:
I campi del modello dati del modulo, ad esempio il nome del punto di contatto, sono mappati a afData.afBoundData.data.name1, che fa riferimento alle associazioni dello schema JSON per il modulo adattivo inviato.
Configurare l’invio di moduli adattivi configure-adaptive-form-submission
Per inviare il modulo adattivo al modello di flusso di lavoro creato nella sezione precedente, effettua le seguenti operazioni:
-
Selezionare il modulo convertito Contattaci disponibile nella cartella output in Forms & Documents e toccare Edit.
-
Per aprire le proprietà del modulo adattivo, tocca Form Container e quindi .
-
Nella sezione Submission, selezionare Invoke an AEM workflow dall'elenco a discesa Submit Action, selezionare il modello di flusso di lavoro creato nella sezione precedente e specificare data.xml nel campo Data File Path.
-
Tocca per salvare le proprietà.
-
Tocca Preview, immetti i valori nei campi del modulo adattivo e tocca Submit. I valori inviati vengono ora visualizzati nella tabella del database MYSQL anziché in crx-repository.
Configura il modulo adattivo per la precompilazione dei valori dal database
Esegui la procedura seguente per configurare il modulo adattivo per la precompilazione dei valori dal database MYSQL in base alla chiave primaria definita nella tabella (in questo caso, invia un messaggio e-mail):
-
Tocca il campo E-mail nel modulo adattivo e tocca .
-
Tocca Create e seleziona is changed dall'elenco a discesa Select State nella sezione When.
-
Nella sezione Then, seleziona Invoke Service e get come servizio per il modello dati del modulo creato in una sezione precedente di questo articolo.
-
Selezionare Posta elettronica nella sezione Input e gli altri tre campi del modello dati del modulo, Nome, Numero di telefono e Descrizione problema nella sezione Output. Tocca Done per salvare le impostazioni.
Di conseguenza, in base alle voci di posta elettronica esistenti nel database MYSQL, è possibile precompilare i valori per i restanti tre campi in modalità Preview del modulo adattivo. Ad esempio, se specifichi aya.tan@xyz.com nel campo E-mail (in base ai dati esistenti nella sezione Prepara modello dati modulo di questo articolo) e ne esci dal campo, i restanti tre campi, Nome, Numero di telefono e Descrizione problema vengono visualizzati automaticamente nel modulo adattivo.
Puoi scaricare il modulo adattivo convertito di esempio utilizzando: