Självstudie: Skapa formulärdatamodell i AEM Forms tutorial-create-form-data-model
Den här självstudiekursen är ett steg i Skapa din första interaktiva kommunikationsserie. Vi rekommenderar att du följer serien i kronologisk ordning för att förstå, utföra och demonstrera det fullständiga självstudiekurserna.
Om självstudiekursen about-the-tutorial
Med dataintegreringsmodulen i AEM Forms kan du skapa en formulärdatamodell från olika backend-datakällor som AEM användarprofil, RESTful-webbtjänster, SOAP, OData-tjänster och relationsdatabaser. Du kan konfigurera datamodellsobjekt och datatjänster i en formulärdatamodell och koppla den till ett anpassat formulär. Anpassningsbara formulärfält är bundna till objektegenskaper för datamodell. Med tjänsterna kan du förifylla det adaptiva formuläret och skriva skickade formulärdata tillbaka till datamodellobjektet.
Mer information om integrering av formulärdata och formulärdatamodell finns i AEM Forms-dataintegrering.
I den här självstudiekursen får du hjälp med att förbereda, skapa, konfigurera och koppla en formulärdatamodell till en interaktiv kommunikation. I slutet av den här självstudiekursen kan du:
Formulärdatamodellen ser ut ungefär så här:
A. Konfigurerade datakällor B. Datakällscheman C. Tillgängliga tjänster D. Datamodellobjekt E. Konfigurerade tjänster
Förutsättningar prerequisites
Kontrollera att du har följande innan du börjar:
- MySQL-databas med exempeldata enligt avsnittet Konfigurera databasen.
- OSGi-paket för MySQL JDBC-drivrutin enligt beskrivningen i Paketera JDBC-databasdrivrutinen
Steg 1: Konfigurera databasen step-set-up-the-database
En databas är nödvändig för att skapa en interaktiv kommunikation. I den här självstudiekursen används en databas för att visa formulärdatamodellens och beständighetsfunktionerna i interaktiv kommunikation. Konfigurera en databas som innehåller kundregister, räkningar och samtalstabeller.
Följande bild visar exempeldata för kundtabellen:
Använd följande DDL-sats för att skapa tabellen customer i databasen.
CREATE TABLE `customer` (
`mobilenum` int(11) NOT NULL,
`name` varchar(45) NOT NULL,
`address` varchar(45) NOT NULL,
`alternatemobilenumber` int(11) DEFAULT NULL,
`relationshipnumber` int(11) DEFAULT NULL,
`customerplan` varchar(45) DEFAULT NULL,
PRIMARY KEY (`mobilenum`),
UNIQUE KEY `mobilenum_UNIQUE` (`mobilenum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Använd följande DDL-sats för att skapa tabellen Bill i databasen.
CREATE TABLE `bills` (
`billplan` varchar(45) NOT NULL,
`latepayment` decimal(4,2) NOT NULL,
`monthlycharges` decimal(4,2) NOT NULL,
`billdate` date NOT NULL,
`billperiod` varchar(45) NOT NULL,
`prevbal` decimal(4,2) NOT NULL,
`callcharges` decimal(4,2) NOT NULL,
`confcallcharges` decimal(4,2) NOT NULL,
`smscharges` decimal(4,2) NOT NULL,
`internetcharges` decimal(4,2) NOT NULL,
`roamingnational` decimal(4,2) NOT NULL,
`roamingintnl` decimal(4,2) NOT NULL,
`vas` decimal(4,2) NOT NULL,
`discounts` decimal(4,2) NOT NULL,
`tax` decimal(4,2) NOT NULL,
PRIMARY KEY (`billplan`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Använd följande DDL-sats för att skapa tabellen call i databasen.
CREATE TABLE `calls` (
`mobilenum` int(11) DEFAULT NULL,
`calldate` date DEFAULT NULL,
`calltime` varchar(45) DEFAULT NULL,
`callnumber` int(11) DEFAULT NULL,
`callduration` varchar(45) DEFAULT NULL,
`callcharges` decimal(4,2) DEFAULT NULL,
`calltype` varchar(45) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Tabellen call innehåller samtalsinformation som samtalsdatum, samtalstid, samtalsnummer, samtalslängd och samtalsavgifter. Tabellen kund är länkad till samtalstabellen med hjälp av fältet Mobilnummer (mobilnummer). För varje mobilnummer i tabellen customer finns det flera poster i tabellen call. Du kan till exempel hämta samtalsinformationen för mobilnumret 1457892541 genom att referera till tabellen call .
Tabellen Fakturor innehåller fakturainformation som faktureringsdatum, faktureringsperiod, månadsavgifter och samtalsavgifter. Tabellen kund är länkad till tabellen Bill med hjälp av fältet Faktureringsplan. Det finns en plan som är associerad med varje kund i tabellen kund. Tabellen Bill innehåller prisinformation för alla befintliga planer. Du kan till exempel hämta avtalsinformationen för Sarah från tabellen customer och använda dessa detaljer för att hämta prisinformation från tabellen Bill.
Steg 2: Konfigurera MySQL-databasen som datakälla step-configure-mysql-database-as-data-source
Du kan konfigurera olika typer av datakällor för att skapa en formulärdatamodell. I den här självstudiekursen konfigurerar du MySQL-databasen som är konfigurerad och ifylld med exempeldata. Mer information om andra datakällor som stöds och hur du konfigurerar dem finns i AEM Forms-dataintegrering.
Gör följande för att konfigurera MySQL-databasen:
-
Installera JDBC-drivrutin för MySQL-databas som ett OSGi-paket:
-
Logga in på AEM Forms Author Instance som administratör och gå till AEM webbkonsolpaket. Standardwebbadressen är https://localhost:4502/system/console/bundles.
-
Välj Installera/uppdatera. Dialogrutan Överför/installera programpaket visas.
-
Välj Välj Arkiv om du vill bläddra och välja OSGi-paketet för MySQL JDBC-drivrutinen. Välj Starta paket och Uppdatera paket och välj Installera eller Uppdatera. Kontrollera att Oraclets JDBC-drivrutin för MySQL är aktiv. Drivrutinen är installerad.
-
-
Konfigurera MySQL-databasen som en datakälla:
-
Gå till AEM webbkonsol på https://localhost:4502/system/console/configMgr.
-
Leta reda på konfigurationen för Apache Sling Connection Pooled DataSource. Välj det här alternativet om du vill öppna konfigurationen i redigeringsläge.
-
Ange följande information i konfigurationsdialogrutan:
-
Namn på datakälla: Du kan ange vilket namn som helst. Ange till exempel MySQL.
-
Egenskapsnamn för DataSource-tjänsten: Ange namnet på den tjänsteegenskap som innehåller namnet på DataSource. Den anges när datakällinstansen registreras som OSGi-tjänst. Till exempel datakälla.namn.
-
JDBC-drivrutinsklass: Ange Java-klassnamn för JDBC-drivrutinen. Ange com.mysql.jdbc.Driver för MySQL-databasen.
-
JDBC-anslutnings-URI: Ange anslutnings-URL för databasen. För MySQL-databaser som körs på port 3306 och schematecken är URL:
jdbc:mysql://'server':3306/teleca?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
-
Användarnamn: Användarnamn för databasen. Det krävs för att JDBC-drivrutinen ska kunna upprätta en anslutning till databasen.
-
Lösenord: Lösenord för databasen. Det krävs för att JDBC-drivrutinen ska kunna upprätta en anslutning till databasen.
-
Testa vid köp: Aktivera alternativet Testa vid köp.
-
Testa vid retur: Aktivera alternativet Testa vid retur.
-
Valideringsfråga: Ange en SELECT-fråga för SQL för att validera anslutningar från poolen. Frågan måste returnera minst en rad. Exempel: välj * från kund.
-
Transaktionsisolering: Ange värdet READ_COMMTED.
-
Lämna övriga egenskaper med standardvärdena föroch välj Spara.
En konfiguration som liknar följande skapas.
-
Steg 3: Skapa formulärdatamodell step-create-form-data-model
AEM Forms har ett intuitivt användargränssnitt för att skapa ett formulärdatalägel från konfigurerade datakällor. Du kan använda flera datakällor i en formulärdatamodell. I den här självstudiekursen använder du MySQL som datakälla.
Gör följande för att skapa formulärdatamodell:
-
I AEM författarinstans går du till Forms > Dataintegreringar.
-
Välj Skapa > Formulärdatamodell.
-
I guiden Skapa formulärdatamodell anger du namn för formulärdatamodellen. Till exempel FDM_Create_First_IC. Välj Nästa.
-
På skärmen Välj datakälla visas alla konfigurerade datakällor. Välj datakällan MySQL och välj Create.
-
Klicka på Klar. Formulärdatamodellen FDM_Create_First_IC har skapats.
Steg 4: Konfigurera formulärdatamodell step-configure-form-data-model
I konfigurationen av formulärdatamodellen ingår:
Lägga till datamodellsobjekt och -tjänster add-data-model-objects-and-services
-
Navigera AEM författarinstansen till Forms > Dataintegreringar. Standardwebbadressen är https://localhost:4502/aem/forms.html/content/dam/formsanddocuments-fdm.
-
Den formulärdatamodell FDM_Create_First_IC som du skapade tidigare visas här. Markera den och välj Redigera.
Den markerade datakällan MySQL visas i rutan Datakällor.
-
Expandera datakällträdet MySQL. Välj följande datamodellsobjekt och -tjänster från schemat teleca:
-
Datamodellsobjekt:
- växlar
- samtal
- kund
-
Tjänster:
- get
- uppdatera
Välj Lägg till markerad om du vill lägga till markerade datamodellsobjekt och tjänster i formulärdatamodellen.
De räkningar, anrop och kunddatamodellsobjekt visas i den högra rutan på fliken Modell. Hämtnings- och uppdateringstjänsterna visas på fliken Tjänster.
-
Skapa beräknade underordnade egenskaper för datamodellobjekt create-computed-child-properties-for-data-model-object
En beräknad egenskap är den vars värde beräknas baserat på en regel eller ett uttryck. Med hjälp av en regel kan du ange värdet för en beräknad egenskap till en litteral sträng, ett tal, resultatet av ett matematiskt uttryck eller värdet för en annan egenskap i formulärdatamodellen.
Baserat på användningsfallet skapar du den underordnade beräknade egenskapen usagecharges i datamodellsobjektet Bill med hjälp av följande matematiska uttryck:
- Användningsavgifter = samtalsavgifter + konferenssamtalsavgifter + SMS-avgifter + mobilinternetavgifter + roaming nationellt + roaming internationellt + VAS (alla dessa egenskaper finns i räkningens datamodell)
Mer information om den underordnade beräknade egenskapen usagecharges finns i Planera interaktiv kommunikation.
Utför följande steg för att skapa beräknade underordnade egenskaper för datamodellobjektet för räkningar:
-
Markera kryssrutan högst upp i datamodellsobjektet Bill för att markera den och välj Skapa underordnad egenskap.
-
I rutan Skapa underordnad egenskap:
- Ange usagecharges som namn på den underordnade egenskapen.
- Aktivera Beräknad.
- Välj Float som typ och välj Done om du vill lägga till den underordnade egenskapen i datamodellobjektet Bill.
-
Välj Redigera regel för att öppna regelredigeraren.
-
Välj Skapa. Regelfönstret Ange värde öppnas.
-
Välj Matematiskt uttryck i listrutan Välj alternativ.
-
I det matematiska uttrycket väljer du callCharts och conccallCharts som första respektive andra objekt. Välj plus som operator. Välj i det matematiska uttrycket och välj Utöka uttryck om du vill lägga till bilder, internetavgifter, roamingNational, roamingInl och vas -objekt i uttrycket.
Följande bild visar det matematiska uttrycket i regelredigeraren:
-
Välj Klar. Regeln skapas i regelredigeraren.
-
Välj Stäng om du vill stänga regelredigeringsfönstret.
Lägga till associationer mellan datamodellsobjekt add-associations-between-data-model-objects
När datamodellsobjekten har definierats kan du skapa associationer mellan dem. Associationen kan vara en-till-en eller en-till-många. Det kan till exempel finnas flera beroenden som är kopplade till en medarbetare. Den kallas en-till-många-association och avbildas med 1:n på linjen som förbinder associerade datamodellsobjekt. Om en association returnerar ett unikt medarbetarnamn för ett givet medarbetar-ID kallas den en-till-en-association.
När du lägger till associerade datamodellobjekt i en datakälla i en formulärdatamodell behålls deras associationer och visas som kopplade med pilrader.
Baserat på användningsfallet skapar du följande associationer mellan datamodellsobjekten:
Utför följande steg för att skapa associationer mellan datamodellsobjekt:
-
Markera kryssrutan högst upp i datamodellobjektet customer för att markera det och välj Lägg till association. Egenskapsrutan Lägg till association öppnas.
-
I rutan Lägg till association:
-
Ange en titel för associationen. Det är ett valfritt fält.
-
Välj Ett till många i listrutan Typ.
-
Välj anrop i listrutan Modellobjekt.
-
Välj get i listrutan Service.
-
Välj Lägg till om du vill länka datamodellobjektet customer till datamodellobjektet call med hjälp av en egenskap. Baserat på användningsfallet måste anropsdatamodellsobjektet länkas till mobilnummeregenskapen i kunddatamodellsobjektet. Dialogrutan Lägg till argument öppnas.
-
-
I dialogrutan Lägg till argument:
-
Välj mobilenum i listrutan Namn. Egenskapen för mobilnummer är en vanlig egenskap som är tillgänglig i kunden och anropar datamodellsobjekt. Det innebär att det används för att skapa en association mellan kund- och anropsdatamodellsobjekt.
För varje mobilnummer som är tillgängligt i kunddatamodellobjektet finns det flera samtalsposter tillgängliga i samtalstabellen. -
Ange en valfri titel och beskrivning för argumentet.
-
Välj kund i listrutan Bindning till.
-
Välj mobilenum i listrutan Bindningsvärde.
-
Välj Lägg till.
Mobile-egenskapen visas i avsnittet Arguments.
-
-
Välj Klar om du vill skapa en 1:n-association mellan kund- och anropsdatamodellsobjekt.
När du har skapat en association mellan kund- och anropsdatamodellsobjekt skapar du en 1:1-association mellan kunden och faktureringsdatamodellsobjekten.
-
Markera kryssrutan högst upp i datamodellobjektet customer för att markera det och välj Lägg till association. Egenskapsrutan Lägg till association öppnas.
-
I rutan Lägg till association:
-
Ange en titel för associationen. Det är ett valfritt fält.
-
Välj En till en i listrutan Typ.
-
Välj strukturer i listrutan Modellobjekt.
-
Välj get i listrutan Service. Egenskapen billplan, som är den primära nyckeln för räkningstabellen, är redan tillgänglig i avsnittet Argument.
Fakturorna och modellobjekten för kunddata länkas med egenskaperna för faktureringsplanen (räkningarna) respektive kundplanen (kunden). Skapa en bindning mellan de här egenskaperna för att hämta avtalsinformationen för alla kunder som är tillgängliga i MySQL-databasen. -
Välj kund i listrutan Bindning till.
-
Välj kundplan i listrutan Bindningsvärde.
-
Välj Klar om du vill skapa en bindning mellan egenskaperna för faktureringsplanen och kundplanen.
I följande bild visas associationerna mellan datamodellsobjekten och egenskaperna som används för att skapa associationer mellan dem:
-
Redigera objektegenskaper för datamodell edit-data-model-object-properties
När du har skapat associationer mellan kunden och andra datamodellsobjekt kan du redigera kundegenskaperna för att definiera den egenskap som data hämtas från datamodellsobjektet. Baserat på användningsfallet används mobilnummer som egenskap för att hämta data från kunddatamodellsobjektet.
-
Markera kryssrutan högst upp i datamodellobjektet customer för att markera det och välj Redigera egenskaper. Fönstret Redigera egenskaper öppnas.
-
Ange kund som modellobjekt på översta nivån.
-
Välj get i listrutan Lästjänst.
-
I avsnittet Argument:
-
Välj Begär attribut i listrutan Bindning till.
-
Ange mobilenum som bindningsvärde.
-
-
Välj update i listrutan Write Service.
-
I avsnittet Argument:
-
För egenskapen mobilenum väljer du customer i listrutan Bindning till.
-
Välj mobilenum i listrutan Bindningsvärde.
-
-
Välj Klar om du vill spara egenskaperna.
-
Markera kryssrutan högst upp i datamodellobjektet call för att markera det och välj Redigera egenskaper. Fönstret Redigera egenskaper öppnas.
-
Inaktivera översta nivåmodellobjektet för datamodellobjektet call.
-
Välj Klar.
Upprepa steg 8-10 för att konfigurera egenskaperna för datamodellobjektet Bill.
Konfigurera tjänster configure-services
-
Gå till fliken Tjänster.
-
Välj tjänsten get och välj Redigera egenskaper. Fönstret Redigera egenskaper öppnas.
-
I rutan Redigera egenskaper:
-
Ange en valfri titel och beskrivning.
-
Välj kund i listrutan Utdatamodellsobjekt.
-
Välj Klar om du vill spara egenskaperna.
-
-
Markera uppdateringstjänsten och välj Redigera egenskaper. Fönstret Redigera egenskaper öppnas.
-
I rutan Redigera egenskaper:
-
Ange en valfri titel och beskrivning.
-
Välj kund i listrutan Indatamodellsobjekt.
-
Välj Klar.
-
Välj Spara om du vill spara formulärdatamodellen.
-
Steg 5: Testa formulärdatamodell och -tjänster step-test-form-data-model-and-services
Du kan testa datamodellsobjektet och datatjänsterna för att verifiera att formulärdatamodellen är korrekt konfigurerad.
Gör följande för att köra testet:
-
Gå till fliken Modell, markera datamodellobjektet customer och välj Testmodellobjekt.
-
I fönstret Testa formulärdatamodell väljer du Läs modellobjekt i listrutan Välj modell/tjänst.
-
I avsnittet Indata anger du ett värde för egenskapen mobilenum som finns i den konfigurerade MySQL-databasen och väljer Test.
Kundinformationen som är associerad med den angivna mobilegenskapen hämtas och visas i utdataavsnittet enligt nedan. Stäng dialogrutan.
-
Gå till fliken Tjänster.
-
Välj tjänsten get och välj Testtjänst.
-
I avsnittet Indata anger du ett värde för egenskapen mobilenum som finns i den konfigurerade MySQL-databasen och väljer Test.
Kundinformationen som är associerad med den angivna mobilegenskapen hämtas och visas i utdataavsnittet enligt nedan. Stäng dialogrutan.
Redigera och spara exempeldata edit-and-save-sample-data
Med formulärdatamodellredigeraren kan du generera exempeldata för alla datamodellsobjektsegenskaper, inklusive beräknade egenskaper, i en formulärdatamodell. Det är en uppsättning slumpmässiga värden som överensstämmer med den datatyp som konfigurerats för varje egenskap. Du kan också redigera och spara data, som behålls även om du genererar om exempeldata.
Gör följande för att generera, redigera och spara exempeldata:
-
Välj Redigera exempeldata på formulärdatamodellsidan. Den genererar och visar exempeldata i fönstret Redigera exempeldata.
-
I fönstret Redigera exempeldata redigerar du data efter behov och väljer Spara. Stäng fönstret.