Återge Forms baserat på fragment rendering-forms-based-on-fragments
Exempel och exempel i det här dokumentet är bara för AEM Forms i JEE-miljö.
Återge Forms baserat på fragment rendering-forms-based-on-fragments-inner
Forms kan återge formulär som är baserade på fragment som du skapar med Designer. A fragment är en återanvändbar del av ett formulär och sparas som en separat XDP-fil som kan infogas i flera formulärdesigner. Ett fragment kan t.ex. innehålla ett adressblock eller juridisk text.
Med fragment blir det enklare och snabbare att skapa och underhålla stora mängder formulär. När du skapar ett formulär infogar du en referens till det önskade fragmentet och fragmentet visas i formuläret. Fragmentreferensen innehåller ett delformulär som pekar på den fysiska XDP-filen. Mer information om hur du skapar formulärdesigner baserade på fragment finns i Forms Designer
Ett fragment kan innehålla flera delformulär som är kapslade i en urvalsuppsättning med delformulär. Alternativa delformulärsuppsättningar styr visningen av delformulär baserat på dataflödet från en dataanslutning. Du använder villkorssatser för att avgöra vilket delformulär i uppsättningen som visas i det levererade formuläret. Varje delformulär i en uppsättning kan t.ex. innehålla information för en viss geografisk plats och delformuläret som visas kan bestämmas utifrån användarens plats.
A skriptfragment innehåller återanvändbara JavaScript-funktioner eller -värden som lagras separat från ett visst objekt, till exempel en datumparser eller ett webbtjänstanrop. Dessa fragment innehåller ett enda skriptobjekt som visas som underordnat variabler på paletten Hierarki. Fragment kan inte skapas från skript som är egenskaper för andra objekt, till exempel händelseskript som validate, calculate eller initialize.
Här är några fördelar med att använda fragment:
- Återanvändning av innehåll: Du kan använda fragment för att återanvända innehåll i flera formulärdesigner. När du behöver använda en del av samma innehåll i flera formulär är det snabbare och enklare att använda ett fragment än att kopiera eller återskapa innehållet. Genom att använda fragment säkerställs också att de delar av en formulärdesign som används ofta har ett konsekvent innehåll och utseende i alla referensformulär.
- Globala uppdateringar: Du kan bara använda fragment för att göra globala ändringar i flera formulär en gång i en fil. Du kan ändra innehåll, skriptobjekt, databindningar, layout eller format i ett fragment, och alla XDP-formulär som refererar till fragmentet återger ändringarna.
- Ett vanligt element i många formulär kan till exempel vara ett adressblock som innehåller ett nedrullningsbart listobjekt för landet. Om du behöver uppdatera värdena för listruteobjektet måste du öppna många formulär för att kunna göra ändringarna. Om du inkluderar adressblocket i ett fragment behöver du bara öppna en fragmentfil för att kunna göra ändringarna.
- Om du vill uppdatera ett fragment i ett PDF-formulär måste du spara om formuläret i Designer.
- Skapa delade formulär: Du kan använda fragment för att dela skapandet av formulär mellan flera resurser. Blankettutvecklare med expertis inom skript eller andra avancerade funktioner i Designer kan utveckla och dela fragment som utnyttjar skriptning och dynamiska egenskaper. Formulärdesigners kan använda dessa fragment för att utforma formulärdesigner och säkerställa att alla delar av ett formulär har ett konsekvent utseende och funktion i flera formulär som utformats av flera personer.
Sammanställa en formulärdesign med fragment assembling-a-form-design-assembled-using-fragments
Du kan sätta ihop en formulärdesign som skickas till Forms-tjänsten baserat på flera fragment. Använd Assembler-tjänsten om du vill sätta ihop flera fragment. Ett exempel på hur du använder sammansättningstjänsten för att skapa en formulärdesign som används av andra Forms-tjänster (utdatatjänsten) finns i Skapa PDF-dokument med fragment. I stället för att använda Output-tjänsten kan du utföra samma arbetsflöde med Forms-tjänsten.
När du använder Assembler-tjänsten skickar du en formulärdesign som har sammanställts med fragment. Den formulärdesign som skapades refererar inte till andra fragment. I det här avsnittet behandlas däremot överföring av en formulärdesign som refererar till andra fragment till tjänsten Forms. Formulärdesignen har dock inte monterats av Assembler. Den skapades i Designer.
Sammanfattning av steg summary-of-steps
Så här återger du ett formulär baserat på fragment:
- Inkludera projektfiler.
- Skapa ett Forms Client API-objekt.
- Ange URI-värden.
- Återge formuläret.
- Skriv formulärdataströmmen till klientens webbläsare.
Inkludera projektfiler
Inkludera nödvändiga filer i utvecklingsprojektet. Om du skapar ett klientprogram med Java, inkluderar du de JAR-filer som behövs. Om du använder webbtjänster måste du inkludera proxyfilerna.
Skapa ett Forms Client API-objekt
Innan du programmässigt kan utföra en API-åtgärd för Forms-tjänstklienten måste du skapa en Forms-tjänstklient.
Ange URI-värden
Om du vill återge ett formulär baserat på fragment måste du se till att Forms-tjänsten kan hitta både formuläret och de fragment (XDP-filer) som formulärdesignen refererar till. Anta till exempel att formuläret heter PO.xdp och att det här formuläret använder två fragment som heter FooterUS.xdp och FooterCanada.xdp. I så fall måste Forms-tjänsten kunna hitta alla tre XDP-filerna.
Du kan ordna ett formulär och dess fragment genom att placera formuläret på en plats och fragmenten på en annan plats. Du kan också placera alla XDP-filer på samma plats. I det här avsnittet förutsätts att alla XDP-filer finns i AEM Forms-databasen. Mer information om hur du placerar XDP-filer i AEM Forms-databasen finns i Skriver resurser.
När du återger ett formulär baserat på fragment måste du bara referera till själva formuläret och inte till fragmenten. Du måste till exempel referera till PO.xdp och inte FooterUS.xdp eller FooterCanada.xdp. Se till att du placerar fragmenten på en plats där Forms-tjänsten kan hitta dem.
Återge formuläret
Ett formulär som är baserat på fragment kan återges på samma sätt som icke-fragmenterade formulär. Det innebär att du kan återge formuläret som PDF, HTML eller stödlinjer (borttagna). Exemplet i det här avsnittet återger ett formulär baserat på fragment som ett interaktivt PDF-formulär. (Se Återger interaktiv PDF forms.)
Skriv formulärdataströmmen till klientens webbläsare
När Forms-tjänsten återger ett formulär returneras en formulärdataström som du måste skriva till klientens webbläsare. När formuläret skrivs till webbläsaren visas det för användaren.
Se även
Återge formulär baserade på fragment med Java API
Återge formulär baserade på fragment med hjälp av webbtjänstens API
Inkludera AEM Forms Java-biblioteksfiler
Snabbstart för Forms Service API
Skapa webbprogram som återger Forms
Återge formulär baserade på fragment med Java API render-forms-based-on-fragments-using-the-java-api
Återge ett formulär baserat på fragment med Forms API (Java):
-
Inkludera projektfiler
Inkludera JAR-klientfiler, t.ex. adobe-forms-client.jar, i Java-projektets klassökväg.
-
Skapa ett Forms Client API-objekt
- Skapa en
ServiceClientFactory
objekt som innehåller anslutningsegenskaper. - Skapa en
FormsServiceClient
genom att använda konstruktorn och skickaServiceClientFactory
-objekt.
- Skapa en
-
Ange URI-värden
- Skapa en
URLSpec
objekt som lagrar URI-värden med hjälp av dess konstruktor. - Anropa
URLSpec
objektetssetApplicationWebRoot
och skicka ett strängvärde som representerar programmets webbrot. - Anropa
URLSpec
objektetssetContentRootURI
och skicka ett strängvärde som anger innehållets rot-URI-värde. Kontrollera att formulärdesignen och fragmenten finns i innehållets rot-URI. Annars genereras ett undantag. Om du vill referera till databasen anger durepository://
. - Anropa
URLSpec
objektetssetTargetURL
och skicka ett strängvärde som anger det mål-URL-värde som formulärdata ska skickas till. Om du definierar mål-URL:en i formulärdesignen kan du skicka en tom sträng. Du kan också ange den URL dit ett formulär ska skickas för att utföra beräkningar.
- Skapa en
-
Återge formuläret
Anropa
FormsServiceClient
objektetsrenderPDFForm
och skicka följande värden:- Ett strängvärde som anger formulärdesignens namn, inklusive filnamnstillägget. Om du refererar till en formulärdesign som ingår i ett Forms-program måste du ange den fullständiga sökvägen, till exempel
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
. - A
com.adobe.idp.Document
objekt som innehåller data som ska sammanfogas med formuläret. Om du inte vill sammanfoga data skickar du en tomcom.adobe.idp.Document
-objekt. - A
PDFFormRenderSpec
objekt som lagrar körningsalternativ. - A
URLSpec
objekt som innehåller URI-värden som krävs av Forms-tjänsten för att återge ett formulär baserat på fragment. - A
java.util.HashMap
objekt som lagrar bifogade filer. Det här är en valfri parameter och du kan angenull
om du inte vill bifoga filer till formuläret.
The
renderPDFForm
returnerar enFormsResult
objekt som innehåller en formulärdataström som måste skrivas till klientens webbläsare. - Ett strängvärde som anger formulärdesignens namn, inklusive filnamnstillägget. Om du refererar till en formulärdesign som ingår i ett Forms-program måste du ange den fullständiga sökvägen, till exempel
-
Skriv formulärdataströmmen till klientens webbläsare
- Skapa en
com.adobe.idp.Document
genom att anropaFormsResult
objekt"sgetOutputContent
-metod. - Hämta innehållstypen för
com.adobe.idp.Document
genom att anropa dessgetContentType
-metod. - Ange
javax.servlet.http.HttpServletResponse
objektets innehållstyp genom att anropa desssetContentType
metoden och skicka innehållstypen förcom.adobe.idp.Document
-objekt. - Skapa en
javax.servlet.ServletOutputStream
som används för att skriva formulärdataströmmen till klientens webbläsare genom att anropajavax.servlet.http.HttpServletResponse
objektetsgetOutputStream
-metod. - Skapa en
java.io.InputStream
genom att anropacom.adobe.idp.Document
objektetsgetInputStream
-metod. - Skapa en bytearray som fyller i den med formulärdataströmmen genom att anropa
InputStream
objektetsread
och skicka bytearrayen som ett argument. - Anropa
javax.servlet.ServletOutputStream
objektetswrite
metod för att skicka formulärdataströmmen till klientens webbläsare. Skicka bytearrayen tillwrite
-metod.
- Skapa en
Se även
Återge Forms baserat på fragment
Snabbstart (SOAP-läge): Återge ett formulär baserat på fragment med Java API
Inkludera AEM Forms Java-biblioteksfiler
Återge formulär baserade på fragment med hjälp av webbtjänstens API render-forms-based-on-fragments-using-the-web-service-api
Återge ett formulär baserat på fragment med Forms API (webbtjänst):
-
Inkludera projektfiler
- Skapa Java-proxyklasser som använder Forms tjänst-WSDL.
- Inkludera Java-proxyklasserna i klassökvägen.
-
Skapa ett Forms Client API-objekt
Skapa en
FormsService
och ange autentiseringsvärden. -
Ange URI-värden
- Skapa en
URLSpec
objekt som lagrar URI-värden med hjälp av dess konstruktor. - Anropa
URLSpec
objektetssetApplicationWebRoot
och skicka ett strängvärde som representerar programmets webbrot. - Anropa
URLSpec
objektetssetContentRootURI
och skicka ett strängvärde som anger innehållets rot-URI-värde. Kontrollera att formulärdesignen finns i innehållets rot-URI. Annars genereras ett undantag. Om du vill referera till databasen anger durepository://
. - Anropa
URLSpec
objektetssetTargetURL
och skicka ett strängvärde som anger det mål-URL-värde som formulärdata ska skickas till. Om du definierar mål-URL:en i formulärdesignen kan du skicka en tom sträng. Du kan också ange den URL dit ett formulär ska skickas för att utföra beräkningar.
- Skapa en
-
Återge formuläret
Anropa
FormsService
objektetsrenderPDFForm
och skicka följande värden:- Ett strängvärde som anger formulärdesignens namn, inklusive filnamnstillägget. Om du refererar till en formulärdesign som ingår i ett Forms-program måste du ange den fullständiga sökvägen, till exempel
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
. - A
BLOB
objekt som innehåller data som ska sammanfogas med formuläret. Om du inte vill sammanfoga data skickar dunull
. - A
PDFFormRenderSpec
objekt som lagrar körningsalternativ. Alternativet PDF med märkord kan inte anges om indatadokumentet är ett PDF-dokument. Om indatafilen är en XDP-fil kan du ange alternativet PDF med märkord. - A
URLSpec
objekt som innehåller URI-värden som krävs av Forms-tjänsten. - A
java.util.HashMap
objekt som lagrar bifogade filer. Det här är en valfri parameter och du kan angenull
om du inte vill bifoga filer till formuläret. - En tom
com.adobe.idp.services.holders.BLOBHolder
objekt som fylls i av metoden. Den här parametern används för att lagra det återgivna formuläret. - En tom
javax.xml.rpc.holders.LongHolder
objekt som fylls i av metoden. Det här argumentet lagrar antalet sidor i formuläret. - En tom
javax.xml.rpc.holders.StringHolder
objekt som fylls i av metoden. Det här argumentet lagrar språkets värde. - En tom
com.adobe.idp.services.holders.FormsResultHolder
objekt som innehåller resultatet av den här åtgärden.
The
renderPDFForm
metoden fyller icom.adobe.idp.services.holders.FormsResultHolder
objekt som skickas som det sista argumentvärdet med en formulärdataström som måste skrivas till klientens webbläsare. - Ett strängvärde som anger formulärdesignens namn, inklusive filnamnstillägget. Om du refererar till en formulärdesign som ingår i ett Forms-program måste du ange den fullständiga sökvägen, till exempel
-
Skriv formulärdataströmmen till klientens webbläsare
- Skapa en
FormResult
genom att hämta värdet förcom.adobe.idp.services.holders.FormsResultHolder
objektetsvalue
datamedlem. - Skapa en
BLOB
objekt som innehåller formulärdata genom att anropaFormsResult
objektetsgetOutputContent
-metod. - Hämta innehållstypen för
BLOB
genom att anropa dessgetContentType
-metod. - Ange
javax.servlet.http.HttpServletResponse
objektets innehållstyp genom att anropa desssetContentType
metoden och skicka innehållstypen förBLOB
-objekt. - Skapa en
javax.servlet.ServletOutputStream
som används för att skriva formulärdataströmmen till klientens webbläsare genom att anropajavax.servlet.http.HttpServletResponse
objektetsgetOutputStream
-metod. - Skapa en bytearray och fylla i den genom att anropa
BLOB
objektetsgetBinaryData
-metod. Den här aktiviteten tilldelar innehållet iFormsResult
till bytearrayen. - Anropa
javax.servlet.http.HttpServletResponse
objektetswrite
metod för att skicka formulärdataströmmen till klientens webbläsare. Skicka bytearrayen tillwrite
-metod.
- Skapa en
Se även
Återge Forms baserat på fragment
Anropa AEM Forms med Base64-kodning