Integrera anpassningsbara blanketter med databaser med hjälp av AEM arbetsflöde submit-forms-to-database-using-forms-portal
Med tjänsten Automated forms conversion (AFCS) kan du konvertera ett icke-interaktivt PDF-formulär, ett Acro-formulär eller ett XFA-baserat PDF-formulär till en adaptiv form. När du startar konverteringsprocessen kan du generera ett anpassat formulär antingen med eller utan databindningar.
Om du väljer att generera ett adaptivt formulär utan databindningar kan du integrera det konverterade adaptiva formuläret med en formulärdatamodell, ett XML-schema eller ett JSON-schema efter konverteringen. För formulärdatamodellen måste du binda adaptiva formulärfält manuellt med formulärdatamodellen. Men om du genererar ett adaptivt formulär med databindningar associerar konverteringstjänsten automatiskt adaptiva formulär med ett JSON-schema och skapar en databindning mellan fälten som finns i det adaptiva formuläret och JSON-schemat. Sedan kan du integrera det anpassade formuläret med en valfri databas, fylla i data i formuläret och skicka det till databasen. När integreringen med databasen är klar kan du konfigurera fälten i det konverterade adaptiva formuläret så att de hämtar värden från databasen och fyller i adaptiva formulärfält i förväg.
I följande bild visas olika steg för att integrera ett konverterat adaptivt formulär med en databas:
I den här artikeln beskrivs de stegvisa instruktionerna för att köra alla dessa integrationssteg.
Krav pre-requisites
- Konfigurera en AEM 6.4- eller 6.5-författarinstans
- Installera senaste Service Pack för din AEM
- Senaste versionen av AEM Forms-tilläggspaketet
- Konfigurera tjänsten Automated forms conversion
- Konfigurera en databas. Databasen som används i exempelimplementeringen är MySQL 5.6.24. Du kan emellertid integrera det konverterade adaptiva formuläret med valfri databas.
Exempel på anpassningsbart formulär sample-adaptive-form
Om du vill köra ett användningsexempel för att integrera konverterade adaptiva formulär med en databas med hjälp av ett AEM arbetsflöde hämtar du följande exempelfil i PDF.
Du kan hämta exempelformuläret Kontakta oss med:
Filen PDF fungerar som indata till tjänsten Automated forms conversion (AFCS). Tjänsten konverterar den här filen till ett anpassat formulär. I följande bild visas det exempel på hur du kontaktar oss i PDF-format.
Installera filen mysql-connector-java-5.1.39-bin.jar install-mysql-connector-java-file
Utför följande steg på alla författare- och publiceringsinstanser för att installera filen mysql-connector-java-5.1.39-bin.jar:
- Navigera till
http://server:port/system/console/depfinder
och sök efter paketet com.mysql.jdbc. - I kolumnen Exporterad av kontrollerar du om paketet exporteras av något paket. Fortsätt om paketet inte exporteras av något paket.
- Navigera till
http://server:port/system/console/bundles
och klicka på Install/Update. - Klicka på Choose File och bläddra till filen mysql-connector-java-5.1.39-bin.jar. Markera även kryssrutorna Start Bundle och Refresh Packages.
- Klicka på Install eller Update. Starta om servern när du är klar.
- (Endast Windows) Stäng av operativsystemets brandvägg.
Förbered data för formulärmodellen prepare-data-for-form-model
Med AEM Forms dataintegrering kan du konfigurera och ansluta till olika datakällor. När du har genererat ett anpassat formulär med konverteringsprocessen kan du definiera formulärmodellen baserat på en formulärdatamodell, XSD eller ett JSON-schema. Du kan använda en databas, Microsoft Dynamics eller någon annan tredjepartstjänst för att skapa en formulärdatamodell.
I den här självstudien används MySQL-databasen som källa för att skapa en formulärdatamodell. Skapa ett schema i databasen och lägg till tabellen contactus i schemat baserat på de fält som är tillgängliga i det adaptiva formuläret.
Du kan använda följande DDL-sats för att skapa tabellen contactus i databasen.
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
Konfigurera anslutning mellan AEM och databas configure-connection-between-aem-instance-and-database
Utför följande konfigurationssteg för att skapa en anslutning mellan AEM och MYSQL-databasen:
-
Gå till AEM webbkonsolkonfigurationssida på
http://server:port/system/console/configMgr
. -
Sök och klicka för att öppna Apache Sling Connection Pooled DataSource i redigeringsläge i webbkonsolkonfigurationen. Ange värdena för egenskaperna enligt följande tabell:
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 Egenskap Värde Datakällans namn Ett datakällnamn för filtrering av drivrutiner från datakällpoolen. JDBC-drivrutinsklass com.mysql.jdbc.Driver URI för JDBC-anslutning jdbc//[värd]:[port]/[schemanamn] Användarnamn Ett användarnamn för att autentisera och utföra åtgärder på databastabeller Lösenord Lösenord som är kopplat till användarnamnet Transaktionsisolering READ_COMMTED Maximalt antal aktiva anslutningar 1000 Maximalt antal inaktiva anslutningar 100 Minsta antal inaktiva anslutningar 10 Inledande storlek 10 Max. väntan 100000 Testa om Borgen Markerad Testa vid inaktivitet Markerad Valideringsfråga Exempelvärden är SELECT 1(mysql), välj 1 från dual(oracle), SELECT 1(MS Sql Server) (validationQuery) Timeout för verifieringsfråga 10000
Skapa formulärdatamodell create-form-data-model
När du har konfigurerat MYSQL som datakälla skapar du en formulärdatamodell på följande sätt:
-
I AEM författarinstans går du till Forms > Data Integrations.
-
Tryck på Create > Form Data Model.
-
I guiden Create Form Data Model anger du workflow_submit som namn på formulärdatamodellen. Tryck på Next.
-
Markera MYSQL-datakällan som du har konfigurerat i föregående avsnitt och tryck på Create.
-
Tryck på Edit och expandera datakällan som visas i den vänstra rutan för att välja contactus table, get och insert services, och tryck sedan på Add Selected.
-
Markera datamodellsobjektet i den högra rutan och tryck på Edit Properties. Välj get och insert i listrutorna Read Service och Write Service. Ange argumenten för lästjänsten och tryck på Done.
-
Välj get-tjänsten på fliken Services och tryck sedan på Edit Properties. Markera Output Model Object, inaktivera Return array-växeln och tryck på Done.
-
Välj tjänsten Insert och tryck på Edit Properties. Markera Input Model Object och tryck på Done.
-
Tryck på Save för att spara formulärdatamodellen.
Du kan hämta exempelformulärdatamodellen med:
Generera anpassningsbara formulär med JSON-bindning generate-adaptive-forms-with-json-binding
Använd tjänsten Automated forms conversion (AFCS) för att konvertera formuläret Kontakta oss till ett anpassningsbart formulär med databindning. Kontrollera att du inte markerar kryssrutan Generate adaptive form(s) without data bindings när du genererar det adaptiva formuläret.
Markera det konverterade Kontakta oss-formuläret som finns i mappen output i Forms & Documents och tryck på Edit. Tryck på Preview, ange värden i de adaptiva formulärfälten och tryck på Submit.
Logga in på crx-database och navigera till /content/forms/fp/admin/submit/data för att visa skickade värden i JSON-format. Följande är exempeldata i JSON-format när du skickar den konverterade adaptiva formen Kontakta oss:
{
"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"
}
}
}
Du måste skapa en arbetsflödesmodell nu som kan bearbeta dessa data och skicka dem till MYSQL-databasen med den formulärdatamodell som du har skapat i de föregående avsnitten.
Skapa en arbetsflödesmodell för att bearbeta JSON-data create-workflow-model
Utför följande steg för att skapa en arbetsflödesmodell och skicka data i anpassade formulär till databasen:
-
Öppna konsolen Arbetsflödesmodeller. Standardwebbadressen är
https://server:port/libs/cq/workflow/admin/console/content/models.html/etc/workflow/models
. -
Välj Create och sedan Create Model. Dialogrutan Add Workflow Model visas.
-
Ange Title och Name (valfritt). Till exempel workflow_json_submit. Tryck på Done för att skapa modellen.
-
Markera arbetsflödesmodellen och tryck på Edit för att öppna modellen i redigeringsläge. Tryck på + och lägg till steget Invoke Form Data Model Service i arbetsflödesmodellen.
-
Tryck på steget Invoke Form Data Model Service och tryck på
-
Välj den formulärdatamodell som du har skapat i fältet Form Data Model path på fliken Form Data Model och välj insert i listrutan Service.
-
På fliken Input for Service väljer du Provide input data using literal, variable, or a workflow metadata, and a JSON file i listrutan, markerar kryssrutan Map input fields from input JSON, väljer Relative to payload och anger data.xml som värde för fältet Select input JSON document using.
-
Ange följande värden för formulärdatamodellens argument i avsnittet Service Arguments:
Observera att formulärdatamodellsfälten, till exempel konturerar punktnamn, mappas till afData.afBoundData.data.name1, som refererar till JSON-schemabindningar för det skickade adaptiva formuläret.
Konfigurera adaptiv formuläröverföring configure-adaptive-form-submission
Utför följande steg för att skicka det adaptiva formuläret till arbetsflödesmodellen som du skapade i föregående avsnitt:
-
Markera det konverterade kontaktformulär som finns i mappen output i Forms & Documents och tryck på Edit.
-
Öppna anpassningsbara formuläregenskaper genom att trycka på Form Container och sedan trycka på
-
I avsnittet Submission väljer du Invoke an AEM workflow i listrutan Submit Action, väljer arbetsflödesmodellen som du skapade i föregående avsnitt och anger data.xml i fältet Data File Path.
-
Tryck på
-
Tryck på Preview, ange värden i de adaptiva formulärfälten och tryck på Submit. De skickade värdena visas nu i MYSQL-databastabellen i stället för i crx-database.
Konfigurera anpassningsbara formulär för förifyllningsvärden från databasen
Utför följande steg för att konfigurera adaptiva formulär till förifyllda värden från MYSQL-databasen baserat på den primärnyckel som definieras i tabellen (i det här fallet e-post):
-
Tryck på fältet E-post i det adaptiva formuläret och tryck på
-
Tryck på Create och välj is changed i listrutan Select State i avsnittet When.
-
I avsnittet Then väljer du Invoke Service och get som tjänst för formulärdatamodellen som du har skapat i ett tidigare avsnitt i den här artikeln.
-
Välj E-post i avsnittet Input och de tre övriga fälten i formulärdatamodellen, Namn, Telefonnummer och Problembeskrivning i avsnittet Output. Tryck på Done för att spara inställningarna.
På grund av detta kan du, baserat på befintliga e-postposter i MYSQL-databasen, förifylla värdena för de tre återstående fälten i det adaptiva formulärets Preview-läge. Om du till exempel anger aya.tan@xyz.com i fältet E-post (baserat på befintliga data i avsnittet Förbered formulärdatamodell i den här artikeln) och tabbar ut från fältet, visas de tre övriga fälten, Namn, Telefonnummer och Problembeskrivning automatiskt i det anpassade formuläret.
Du kan hämta det konverterade adaptiva exempelformuläret med: