Forms renderen op basis van fragmenten rendering-forms-based-on-fragments
Forms renderen op basis van fragmenten rendering-forms-based-on-fragments-inner
De Forms-service kan formulieren weergeven die zijn gebaseerd op fragmenten die u met Designer maakt. A fragment is een herbruikbaar onderdeel van een formulier en wordt opgeslagen als een afzonderlijk XDP-bestand dat in meerdere formulierontwerpen kan worden ingevoegd. Een fragment kan bijvoorbeeld een adresblok of juridische tekst bevatten.
Met fragmenten kunt u het maken en onderhouden van grote aantallen formulieren vereenvoudigen en versnellen. Wanneer u een nieuw formulier maakt, voegt u een verwijzing in naar het gewenste fragment en het fragment wordt in het formulier weergegeven. De fragmentverwijzing bevat een subformulier dat naar het fysieke XDP-bestand verwijst. Voor informatie over het maken van formulierontwerpen op basis van fragmenten raadpleegt u Forms Designer
Een fragment kan meerdere subformulieren bevatten die zijn ondergebracht in een gekozen subformulierset. De gekozen subformuliersets bepalen de weergave van subformulieren op basis van de gegevensstroom van een gegevensverbinding. U gebruikt voorwaardelijke instructies om te bepalen welk subformulier uit de set wordt weergegeven in het geleverde formulier. Elk subformulier in een set kan bijvoorbeeld informatie voor een bepaalde geografische locatie bevatten en het weergegeven subformulier kan worden bepaald op basis van de locatie van de gebruiker.
A scriptfragment bevat herbruikbare JavaScript-functies of waarden die afzonderlijk van een bepaald object worden opgeslagen, zoals datumparsering of aanroep van een webservice. Deze fragmenten bestaan uit één scriptobject dat als onderliggend element van variabelen in het palet Hiërarchie wordt weergegeven. Fragmenten kunnen niet worden gemaakt op basis van scripts die eigenschappen zijn van andere objecten, zoals gebeurtenisscripts zoals validate, calculate of initialize.
Hier volgen enkele voordelen van het gebruik van fragmenten:
- Inhoud opnieuw gebruiken: Met fragmenten kunt u inhoud hergebruiken in meerdere formulierontwerpen. Als u bepaalde inhoud van dezelfde inhoud in meerdere formulieren wilt gebruiken, is het sneller en eenvoudiger om een fragment te gebruiken dan om de inhoud te kopiëren of opnieuw te maken. Het gebruik van fragmenten zorgt er ook voor dat de vaak gebruikte onderdelen van een formulierontwerp dezelfde inhoud en weergave hebben in alle formulieren die ernaar verwijzen.
- Algemene updates: Met fragmenten kunt u globale wijzigingen in meerdere formulieren slechts eenmaal aanbrengen, in één bestand. U kunt de inhoud, scriptobjecten, gegevensbindingen, lay-out of stijlen in een fragment wijzigen en alle XDP-formulieren die naar het fragment verwijzen, weerspiegelen de wijzigingen.
- Een gemeenschappelijk element in vele formulieren kan bijvoorbeeld een adresblok zijn dat een vervolgkeuzelijstobject voor het land bevat. Als u de waarden voor het vervolgkeuzelijstobject moet bijwerken, moet u vele formulieren openen om de wijzigingen aan te brengen. Als u het adresblok in een fragment opneemt, hoeft u slechts één fragmentbestand te openen om de wijzigingen aan te brengen.
- Als u een fragment in een PDF-formulier wilt bijwerken, moet u het formulier opnieuw opslaan in Designer.
- Gedeeld formulier maken: Met fragmenten kunt u de aanmaak van formulieren delen met verschillende bronnen. Formulierontwikkelaars met ervaring in het schrijven van scripts of andere geavanceerde functies van Designer kunnen fragmenten ontwikkelen en delen die gebruikmaken van scripts en dynamische eigenschappen. Formulierontwerpers kunnen deze fragmenten gebruiken om formulierontwerpen op te maken en ervoor te zorgen dat alle onderdelen van een formulier een consistente weergave en functionaliteit hebben in meerdere formulieren die door meerdere personen zijn ontworpen.
Een formulierontwerp samenstellen dat is samengesteld met fragmenten assembling-a-form-design-assembled-using-fragments
U kunt een formulierontwerp samenstellen om aan de Forms-service door te geven op basis van meerdere fragmenten. Als u meerdere fragmenten wilt samenstellen, gebruikt u de Assembler-service. Als u een voorbeeld wilt zien van het gebruik van de Assemble-service voor het maken van een formulierontwerp dat wordt gebruikt door een andere Forms-service (de Output-service), raadpleegt u PDF-documenten maken met behulp van fragmenten. In plaats van de service Uitvoer te gebruiken, kunt u dezelfde workflow uitvoeren met de Forms-service.
Wanneer u de Assembler-service gebruikt, geeft u een formulierontwerp door dat is samengesteld met fragmenten. Het formulierontwerp dat is gemaakt, verwijst niet naar andere fragmenten. In dit onderwerp wordt daarentegen het doorgeven van een formulierontwerp besproken dat naar andere fragmenten verwijst naar de Forms-service. Het formulierontwerp is echter niet samengesteld door Assembler. Het is gemaakt in Designer.
Overzicht van de stappen summary-of-steps
Als u een formulier wilt genereren op basis van fragmenten, voert u de volgende taken uit:
- Inclusief projectbestanden.
- Maak een Forms Client API-object.
- Geef URI-waarden op.
- Het formulier weergeven.
- Schrijf de gegevensstroom van het formulier naar de webbrowser van de client.
Projectbestanden opnemen
Neem de benodigde bestanden op in uw ontwikkelingsproject. Als u een clienttoepassing maakt met Java, neemt u de benodigde JAR-bestanden op. Als u webservices gebruikt, dient u de proxybestanden op te nemen.
Een Forms Client API-object maken
Voordat u programmatisch een client-API-bewerking voor Forms-services kunt uitvoeren, moet u een Forms-serviceclient maken.
URI-waarden opgeven
Als u een formulier wilt genereren op basis van fragmenten, moet u ervoor zorgen dat de Forms-service zowel het formulier als de fragmenten (de XDP-bestanden) kan vinden waarnaar het formulierontwerp verwijst. Stel bijvoorbeeld dat het formulier de naam PO.xdp heeft en dat in dit formulier twee fragmenten worden gebruikt: FooterUS.xdp en FooterCanada.xdp. In dit geval moet de Forms-service alle drie XDP-bestanden kunnen vinden.
U kunt een formulier en de bijbehorende fragmenten ordenen door het formulier op één locatie en de fragmenten op een andere locatie te plaatsen, of u kunt alle XDP-bestanden op dezelfde locatie plaatsen. In deze sectie wordt ervan uitgegaan dat alle XDP-bestanden zich in de AEM Forms-opslagplaats bevinden. Voor informatie over het plaatsen van XDP-bestanden in de AEM Forms-opslagplaats raadpleegt u Bronnen schrijven.
Bij het genereren van een formulier op basis van fragmenten moet u alleen naar het formulier zelf verwijzen en niet naar de fragmenten. U moet bijvoorbeeld naar PO.xdp verwijzen en niet naar FooterUS.xdp of FooterCanada.xdp. Plaats de fragmenten op een locatie waar de Forms-service ze kan vinden.
Het formulier renderen
Een formulier dat is gebaseerd op fragmenten, kan op dezelfde manier worden gegenereerd als niet-gefragmenteerde formulieren. U kunt het formulier dus weergeven als PDF-, HTML- of formulierhulplijnen (afgekeurd). In het voorbeeld in deze sectie wordt een formulier dat is gebaseerd op fragmenten, weergegeven als een interactief PDF-formulier. (Zie Interactieve PDF forms renderen.)
De formuliergegevensstroom naar de webbrowser van de client schrijven
Wanneer de Forms-service een formulier genereert, wordt een formuliergegevensstroom geretourneerd die u naar de webbrowser van de client moet schrijven. Wanneer het formulier naar de webbrowser van de client wordt geschreven, is het zichtbaar voor de gebruiker.
Zie ook
Formulieren weergeven op basis van fragmenten met de Java API
Formulieren weergeven op basis van fragmenten met de webservice-API
Inclusief AEM Forms Java-bibliotheekbestanden
Verbindingseigenschappen instellen
Interactieve PDF forms renderen
Webtoepassingen maken die Forms renderen
Formulieren weergeven op basis van fragmenten met de Java API render-forms-based-on-fragments-using-the-java-api
Een formulier renderen op basis van fragmenten met de Forms API (Java):
-
Projectbestanden opnemen
Neem client-JAR-bestanden, zoals adobe-forms-client.jar, op in het klassenpad van uw Java-project.
-
Een Forms Client API-object maken
- Een
ServiceClientFactory
object dat verbindingseigenschappen bevat. - Een
FormsServiceClient
object door de constructor ervan te gebruiken en door te gevenServiceClientFactory
object.
- Een
-
URI-waarden opgeven
- Een
URLSpec
object dat URI-waarden opslaat met de constructor ervan. - De
URLSpec
objectsetApplicationWebRoot
en geeft een tekenreekswaarde door die de hoofdmap van de toepassing vertegenwoordigt. - De
URLSpec
objectsetContentRootURI
methode en geef een tekenreekswaarde door die de URI-waarde van de inhoudsbasis opgeeft. Zorg ervoor dat het formulierontwerp en de fragmenten zich in de URI van de inhoudsbasis bevinden. Als niet, werpt de dienst van Forms een uitzondering. Als u naar de gegevensopslagruimte wilt verwijzen, geeft urepository://
. - De
URLSpec
objectsetTargetURL
en geeft een tekenreekswaarde door die de doel-URL-waarde opgeeft waarnaar formuliergegevens worden gepost. Als u de doel-URL in het formulierontwerp definieert, kunt u een lege tekenreeks doorgeven. U kunt ook de URL opgeven waarnaar een formulier wordt verzonden om berekeningen uit te voeren.
- Een
-
Het formulier renderen
De
FormsServiceClient
objectrenderPDFForm
en geeft de volgende waarden door:- Een tekenreekswaarde die de naam van het formulierontwerp opgeeft, inclusief de bestandsnaamextensie. Als u naar een formulierontwerp verwijst dat deel uitmaakt van een Forms-toepassing, moet u het volledige pad opgeven, zoals
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
. - A
com.adobe.idp.Document
object dat gegevens bevat die met het formulier moeten worden samengevoegd. Als u geen gegevens wilt samenvoegen, geeft u een lege waarde doorcom.adobe.idp.Document
object. - A
PDFFormRenderSpec
-object dat uitvoeringsopties opslaat. - A
URLSpec
object dat URI-waarden bevat die door de Forms-service worden vereist om een formulier te genereren op basis van fragmenten. - A
java.util.HashMap
object waarin bestandsbijlagen zijn opgeslagen. Dit is een optionele parameter en u kuntnull
als u geen bestanden aan het formulier wilt koppelen.
De
renderPDFForm
methode retourneert eenFormsResult
object dat een formuliergegevensstroom bevat die naar de webbrowser van de client moet worden geschreven. - Een tekenreekswaarde die de naam van het formulierontwerp opgeeft, inclusief de bestandsnaamextensie. Als u naar een formulierontwerp verwijst dat deel uitmaakt van een Forms-toepassing, moet u het volledige pad opgeven, zoals
-
De formuliergegevensstroom naar de webbrowser van de client schrijven
- Een
com.adobe.idp.Document
door het object aan te roepenFormsResult
object 'sgetOutputContent
methode. - Hiermee wordt het inhoudstype van het dialoogvenster
com.adobe.idp.Document
object aanroepengetContentType
methode. - Stel de
javax.servlet.http.HttpServletResponse
inhoudstype van object aanroepensetContentType
en geeft u het inhoudstype van het dialoogvenster doorcom.adobe.idp.Document
object. - Een
javax.servlet.ServletOutputStream
object dat wordt gebruikt om de formuliergegevensstroom naar de webbrowser van de client te schrijven door het aanroepen van dejavax.servlet.http.HttpServletResponse
objectgetOutputStream
methode. - Een
java.io.InputStream
door het object aan te roepencom.adobe.idp.Document
objectgetInputStream
methode. - Maak een bytearray die deze met de formuliergegevensstroom vult door de
InputStream
objectread
en de bytearray doorgeven als een argument. - De
javax.servlet.ServletOutputStream
objectwrite
methode om de formuliergegevensstroom naar de webbrowser van de client te verzenden. Geef de bytearray door aan dewrite
methode.
- Een
Zie ook
Forms renderen op basis van fragmenten
Snel starten (SOAP-modus): Een formulier weergeven op basis van fragmenten met de Java API
Inclusief AEM Forms Java-bibliotheekbestanden
Verbindingseigenschappen instellen
Formulieren weergeven op basis van fragmenten met de webservice-API render-forms-based-on-fragments-using-the-web-service-api
Een formulier weergeven op basis van fragmenten met de Forms API (webservice):
-
Projectbestanden opnemen
- Maak Java-proxyklassen die gebruikmaken van de Forms-service WSDL.
- Neem de Java-proxyklassen op in het klassepad.
-
Een Forms Client API-object maken
Een
FormsService
-object en stel verificatiewaarden in. -
URI-waarden opgeven
- Een
URLSpec
object dat URI-waarden opslaat met de constructor ervan. - De
URLSpec
objectsetApplicationWebRoot
en geeft een tekenreekswaarde door die de hoofdmap van de toepassing vertegenwoordigt. - De
URLSpec
objectsetContentRootURI
methode en geef een tekenreekswaarde door die de URI-waarde van de inhoudsbasis opgeeft. Zorg ervoor dat het formulierontwerp zich in de URI van de inhoudsbasis bevindt. Als niet, werpt de dienst van Forms een uitzondering. Als u naar de gegevensopslagruimte wilt verwijzen, geeft urepository://
. - De
URLSpec
objectsetTargetURL
en geeft een tekenreekswaarde door die de doel-URL-waarde opgeeft waarnaar formuliergegevens worden gepost. Als u de doel-URL in het formulierontwerp definieert, kunt u een lege tekenreeks doorgeven. U kunt ook de URL opgeven waarnaar een formulier wordt verzonden om berekeningen uit te voeren.
- Een
-
Het formulier renderen
De
FormsService
objectrenderPDFForm
en geeft de volgende waarden door:- Een tekenreekswaarde die de naam van het formulierontwerp opgeeft, inclusief de bestandsnaamextensie. Als u naar een formulierontwerp verwijst dat deel uitmaakt van een Forms-toepassing, moet u het volledige pad opgeven, zoals
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
. - A
BLOB
object dat gegevens bevat die met het formulier moeten worden samengevoegd. Als u geen gegevens wilt samenvoegen, geeft u doornull
. - A
PDFFormRenderSpec
-object dat uitvoeringsopties opslaat. De optie Gelabelde PDF kan niet worden ingesteld als het invoerdocument een PDF-document is. Als het invoerbestand een XDP-bestand is, kunt u de optie voor gecodeerde PDF instellen. - A
URLSpec
object dat URI-waarden bevat die door de Forms-service worden vereist. - A
java.util.HashMap
object waarin bestandsbijlagen zijn opgeslagen. Dit is een optionele parameter en u kuntnull
als u geen bestanden aan het formulier wilt koppelen. - Een leeg
com.adobe.idp.services.holders.BLOBHolder
object dat door de methode wordt gevuld. Met deze parameter wordt het gegenereerde formulier opgeslagen. - Een leeg
javax.xml.rpc.holders.LongHolder
object dat door de methode wordt gevuld. In dit argument wordt het aantal pagina's in het formulier opgeslagen. - Een leeg
javax.xml.rpc.holders.StringHolder
object dat door de methode wordt gevuld. In dit argument wordt de waarde van de landinstelling opgeslagen. - Een leeg
com.adobe.idp.services.holders.FormsResultHolder
-object dat de resultaten van deze bewerking bevat.
De
renderPDFForm
wordt decom.adobe.idp.services.holders.FormsResultHolder
object dat wordt doorgegeven als de laatste argumentwaarde met een formuliergegevensstroom die naar de webbrowser van de client moet worden geschreven. - Een tekenreekswaarde die de naam van het formulierontwerp opgeeft, inclusief de bestandsnaamextensie. Als u naar een formulierontwerp verwijst dat deel uitmaakt van een Forms-toepassing, moet u het volledige pad opgeven, zoals
-
De formuliergegevensstroom naar de webbrowser van de client schrijven
- Een
FormResult
object door de waarde van het object op te halencom.adobe.idp.services.holders.FormsResultHolder
objectvalue
lid. - Een
BLOB
object dat formuliergegevens bevat door hetFormsResult
objectgetOutputContent
methode. - Hiermee wordt het inhoudstype van het dialoogvenster
BLOB
object aanroepengetContentType
methode. - Stel de
javax.servlet.http.HttpServletResponse
inhoudstype van object aanroepensetContentType
en geeft u het inhoudstype van het dialoogvenster doorBLOB
object. - Een
javax.servlet.ServletOutputStream
object dat wordt gebruikt om de formuliergegevensstroom naar de webbrowser van de client te schrijven door het aanroepen van dejavax.servlet.http.HttpServletResponse
objectgetOutputStream
methode. - Maak een bytearray en vul deze door het
BLOB
objectgetBinaryData
methode. Deze taak wijst de inhoud van toeFormsResult
object naar de bytearray. - De
javax.servlet.http.HttpServletResponse
objectwrite
methode om de formuliergegevensstroom naar de webbrowser van de client te verzenden. Geef de bytearray door aan dewrite
methode.
- Een
Zie ook
Forms renderen op basis van fragmenten
AEM Forms aanroepen met Base64-codering