Verzendde Forms afhandelen handling-submitted-forms
Web-based toepassingen die een gebruiker toelaten om interactieve vormen in te vullen vereisen dat de gegevens terug naar de server worden voorgelegd. Met de Forms-service kunt u de gegevens ophalen die de gebruiker in een interactief formulier heeft ingevoerd. Nadat u de gegevens hebt opgehaald, kunt u de gegevens verwerken om aan uw bedrijfsvereisten te voldoen. U kunt de gegevens bijvoorbeeld opslaan in een database, de gegevens naar een andere toepassing verzenden, de gegevens naar een andere service verzenden, de gegevens in een formulierontwerp samenvoegen, de gegevens weergeven in een webbrowser, enzovoort.
Formuliergegevens worden naar de Forms-service verzonden als XML- of PDF-gegevens. Dit is een optie die is ingesteld in Designer. Met een formulier dat als XML wordt verzonden, kunt u afzonderlijke waarden van veldgegevens extraheren. Met andere woorden, u kunt de waarde extraheren van elk formulierveld dat de gebruiker in het formulier heeft ingevoerd. Een formulier dat wordt verzonden als PDF-gegevens, is binaire gegevens, niet XML-gegevens. U kunt het formulier opslaan als een PDF-bestand of het formulier verzenden naar een andere service. Als u gegevens wilt extraheren uit een formulier dat als XML is verzonden en vervolgens de formuliergegevens wilt gebruiken om een PDF-document te maken, roept u een andere AEM Forms-bewerking op. (Zie PDF-documenten maken met verzonden XML-gegevens)
In het volgende diagram worden gegevens weergegeven die worden verzonden naar een Java-server met de naam HandleData van een interactief formulier dat wordt weergegeven in een webbrowser.
De volgende lijst verklaart de stappen in het diagram.
HandleData Java Servlet als XML-gegevens.HandleData Java Servlet bevat toepassingslogica om de gegevens op te halen.Verzonden XML-gegevens verwerken handling-submitted-xml-data
Wanneer formuliergegevens als XML worden verzonden, kunt u XML-gegevens ophalen die de verzonden gegevens vertegenwoordigen. Alle formuliervelden worden weergegeven als knooppunten in een XML-schema. De knoopwaarden komen overeen met de waarden die de gebruiker heeft ingevuld. Neem bijvoorbeeld een leningformulier waarin elk veld in het formulier wordt weergegeven als een knooppunt in de XML-gegevens. De waarde van elk knooppunt komt overeen met de waarde die een gebruiker invult. Stel dat een gebruiker het leningformulier vult met gegevens die in het volgende formulier worden getoond.
In de volgende afbeelding ziet u de overeenkomstige XML-gegevens die zijn opgehaald met de Forms Service Client API.
De velden in het leningformulier. Deze waarden kunnen worden opgehaald met Java XML-klassen.
Ingediende PDF-gegevens verwerken handling-submitted-pdf-data
Neem bijvoorbeeld een webtoepassing die de Forms-service oproept. Nadat de Forms-service een interactief PDF-formulier heeft gerenderd naar een clientwebbrowser, vult de gebruiker het formulier in en verzendt het terug als PDF-gegevens. Wanneer de Forms-service de PDF-gegevens ontvangt, kunnen de PDF-gegevens naar een andere service worden verzonden of worden opgeslagen als een PDF-bestand. Het volgende diagram toont de logische stroom van de toepassing.
In de volgende tabel worden de stappen in dit diagram beschreven.
Verzonden URL UTF-16-gegevens verwerken handling-submitted-url-utf-16-data
Als formuliergegevens worden verzonden als UTF-16-URL-gegevens, vereist de clientcomputer Adobe Reader of Acrobat 8.1 of hoger. Als het formulierontwerp een verzendknop bevat met URL-gecodeerde gegevens (HTTP Post) en de optie voor gegevenscodering UTF-16 is, moet het formulierontwerp worden gewijzigd in een teksteditor, zoals Kladblok. U kunt de coderingsoptie instellen op UTF-16LE of UTF-16BE voor de verzendknop. Designer biedt deze functionaliteit niet.
Overzicht van de stappen summary-of-steps
Voer de volgende taken uit om verzonden formulieren te verwerken:
- Inclusief projectbestanden.
- Maak een Forms Client API-object.
- Formuliergegevens ophalen.
- Bepaal of de formulierverzending bestandsbijlagen bevat.
- Verwerk de verzonden gegevens.
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. Als u de Java API gebruikt, maakt u een FormsServiceClient object. Als u de Forms-webservice-API gebruikt, maakt u een FormsService object.
Formuliergegevens ophalen
Als u verzonden formuliergegevens wilt ophalen, roept u de FormsServiceClient object processFormSubmission methode. Wanneer u deze methode aanroept, moet u het inhoudstype van het verzonden formulier opgeven. Wanneer gegevens vanuit een clientwebbrowser naar de Forms-service worden verzonden, kunnen deze als XML- of PDF-gegevens worden verzonden. Om de gegevens op te halen die in formuliervelden zijn ingevoerd, kunnen de gegevens als XML-gegevens worden verzonden.
U kunt ook formuliervelden ophalen uit een formulier dat als PDF-gegevens wordt verzonden door de volgende runtime-opties in te stellen:
- Geef de volgende waarde door aan de
processFormSubmissionmethode als parameter voor inhoudstype:CONTENT_TYPE=application/pdf. - Stel de
RenderOptionsSpecobjectPDFToXDPwaarde aantrue - Stel de
RenderOptionsSpecobjectExportDataFormatwaarde aanXMLData
U geeft het inhoudstype van het verzonden formulier op wanneer u het processFormSubmission methode. In de volgende lijst worden de toepasselijke waarden voor inhoudstypen aangegeven:
- text/xml: Geeft het inhoudstype aan dat moet worden gebruikt wanneer een PDF-formulier formuliergegevens als XML verzendt.
- application/x-www-form-urlencoded: Geeft het inhoudstype aan dat moet worden gebruikt wanneer een HTML-formulier gegevens als XML verzendt.
- application/pdf: Geeft het inhoudstype aan dat moet worden gebruikt wanneer een PDF-formulier gegevens verzendt als PDF.
application/pdf. De PDF forms voor verwerking die als XML worden verzonden met behulp van de Java API Quick start tonen aan hoe de verzonden XML-gegevens die vanuit een PDF-formulier worden verzonden, moeten worden afgehandeld. Het inhoudstype dat in deze snelle start wordt opgegeven, is text/xml. Op dezelfde manier tonen de HTML-formulieren voor verwerking die als XML worden verzonden met de snelle start van de Java API aan hoe de verzonden XML-gegevens die vanuit een HTML-formulier zijn verzonden, moeten worden afgehandeld. Het inhoudstype dat in deze snelle start wordt opgegeven, is application/x-www-form-urlencoded.U haalt formuliergegevens op die naar de Forms-service zijn verzonden en bepaalt de verwerkingsstatus. Dat wil zeggen dat wanneer gegevens worden ingediend bij de Forms-dienst, dit niet noodzakelijkerwijs betekent dat de Forms-dienst de gegevens heeft verwerkt en dat de gegevens klaar zijn om te worden verwerkt. Gegevens kunnen bijvoorbeeld naar de Forms-service worden verzonden, zodat een berekening kan worden uitgevoerd. Wanneer de berekening is voltooid, wordt het formulier teruggestuurd naar de gebruiker met de weergegeven berekeningsresultaten. Voordat u verzonden gegevens verwerkt, wordt u aangeraden te bepalen of de Forms-service de gegevens heeft verwerkt.
De Forms-service retourneert de volgende waarden om aan te geven of de verwerking van de gegevens is voltooid:
- 0 (Verzenden): De verzonden gegevens zijn klaar om te worden verwerkt.
- 1 (berekenen): De Forms-service heeft een rekenbewerking uitgevoerd op de gegevens en de resultaten moeten worden teruggegeven aan de gebruiker.
- 2 (Valideren): De door de Forms-service gevalideerde formuliergegevens en de resultaten moeten naar de gebruiker worden teruggestuurd.
- 3 (Volgende): De huidige pagina is gewijzigd met resultaten die naar de clienttoepassing moeten worden geschreven.
- 4 (Vorige): De huidige pagina is gewijzigd met resultaten die naar de clienttoepassing moeten worden geschreven.
Bepalen of de formulierverzending bestandsbijlagen bevat
Forms dat is verzonden naar de Forms-service kan bestandsbijlagen bevatten. Met het venster voor ingebouwde bijlagen van Acrobat kan een gebruiker bijvoorbeeld bestandsbijlagen selecteren die samen met het formulier moeten worden verzonden. Een gebruiker kan ook bestandsbijlagen selecteren met een HTML-werkbalk die wordt weergegeven met een HTML-bestand.
Nadat u hebt bepaald of een formulier bestandsbijlagen bevat, kunt u de gegevens verwerken. U kunt bijvoorbeeld de bestandsbijlage opslaan in het lokale bestandssysteem.
De verzonden gegevens verwerken
Afhankelijk van het inhoudstype van de verzonden gegevens, kunt u afzonderlijke formulierveldwaarden extraheren uit de verzonden XML-gegevens of de verzonden PDF-gegevens opslaan als een PDF-bestand (of deze naar een andere service verzenden). Als u afzonderlijke formuliervelden wilt extraheren, converteert u de ingediende XML-gegevens naar een XML-gegevensbron en haalt u vervolgens de XML-gegevensbronwaarden op met org.w3c.dom klassen.
Zie ook
Inclusief AEM Forms Java-bibliotheekbestanden
Verbindingseigenschappen instellen
Documenten doorgeven aan de Forms-service
Webtoepassingen maken die Forms renderen
Ingevulde formulieren verwerken met de Java API handle-submitted-forms-using-the-java-api
Een verzonden formulier verwerken 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
ServiceClientFactoryobject dat verbindingseigenschappen bevat. - Een
FormsServiceClientobject door de constructor ervan te gebruiken en door te gevenServiceClientFactoryobject.
- Een
-
Formuliergegevens ophalen
- Als u formuliergegevens wilt ophalen die naar een Java Server zijn gepost, maakt u een
com.adobe.idp.Documentobject door de constructor ervan te gebruiken en dejavax.servlet.http.HttpServletResponseobjectgetInputStreammethode vanuit de constructor. - Een
RenderOptionsSpecobject met behulp van de constructor. Stel de waarde van de landinstelling in door deRenderOptionsSpecobjectsetLocaleen het doorgeven van een tekenreekswaarde die de waarde van de landinstelling opgeeft.
note note NOTE U kunt de Forms-service opdragen om XDP- of XML-gegevens te maken van verzonden PDF-inhoud door het RenderOptionsSpecobjectsetPDF2XDPmethode en doorgeventrueen tevenssetXMLDataen passerentrue. Vervolgens kunt u de opdrachtFormsResultobjectgetOutputXMLmethode om de XML-gegevens op te halen die overeenkomen met de XDP/XML-gegevens. (DeFormsResultobject wordt geretourneerd door deprocessFormSubmission* methode, die in de volgende substap wordt toegelicht.)*-
De
FormsServiceClientobjectprocessFormSubmissionen geeft de volgende waarden door:- De
com.adobe.idp.Documentobject dat de formuliergegevens bevat. - Een tekenreekswaarde die omgevingsvariabelen opgeeft, inclusief alle relevante HTTP-headers. Geef het inhoudstype op dat u wilt afhandelen. Als u XML-gegevens wilt verwerken, geeft u de volgende tekenreekswaarde op voor deze parameter:
CONTENT_TYPE=text/xml. Als u PDF-gegevens wilt verwerken, geeft u de volgende tekenreekswaarde op voor deze parameter:CONTENT_TYPE=application/pdf. - Een tekenreekswaarde die de
HTTP_USER_AGENTheaderwaarde, bijvoorbeeld .Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322). Deze parameterwaarde is optioneel. - A
RenderOptionsSpec-object dat uitvoeringsopties opslaat.
De
processFormSubmissionmethode retourneert eenFormsResultobject met de resultaten van het verzenden van het formulier. - De
-
Bepaal of de Forms-service de formuliergegevens heeft verwerkt door het aanroepen van de
FormsResultobjectgetActionmethode. Als deze methode de waarde retourneert0De gegevens zijn klaar om te worden verwerkt.
- Als u formuliergegevens wilt ophalen die naar een Java Server zijn gepost, maakt u een
-
Bepalen of de formulierverzending bestandsbijlagen bevat
- De
FormsResultobjectgetAttachmentsmethode. Deze methode retourneert eenjava.util.Listobject dat bestanden bevat die met het formulier zijn verzonden. - Doorlopen
java.util.List-object om te bepalen of er bestandsbijlagen zijn. Als er bestandsbijlagen zijn, is elk element eencom.adobe.idp.Document-instantie. U kunt de bestandsbijlagen opslaan door decom.adobe.idp.DocumentobjectcopyToFilemethode en eenjava.io.Fileobject.
note note NOTE Deze stap is alleen van toepassing als het formulier wordt verzonden als PDF. - De
-
De verzonden gegevens verwerken
-
Als het gegevenstype van de gegevensinhoud
application/vnd.adobe.xdp+xmloftext/xml, maakt u toepassingslogica om XML-gegevenswaarden op te halen.- Een
com.adobe.idp.Documentdoor het object aan te roepenFormsResultobjectgetOutputContentmethode. - Een
java.io.InputStreamdoor het object aan te roepenjava.io.DataInputStreamaannemer en het overgaan vancom.adobe.idp.Documentobject. - Een
org.w3c.dom.DocumentBuilderFactoryobject door het statische object aan te roepenorg.w3c.dom.DocumentBuilderFactoryobjectnewInstancemethode. - Een
org.w3c.dom.DocumentBuilderdoor het object aan te roepenorg.w3c.dom.DocumentBuilderFactoryobjectnewDocumentBuildermethode. - Een
org.w3c.dom.Documentdoor het object aan te roepenorg.w3c.dom.DocumentBuilderobjectparseen het doorgeven van dejava.io.InputStreamobject. - Hiermee wordt de waarde van elk knooppunt in het XML-document opgehaald. U kunt deze taak uitvoeren door een aangepaste methode te maken die twee parameters accepteert: de
org.w3c.dom.Document-object en de naam van het knooppunt waarvan u de waarde wilt ophalen. Deze methode retourneert een tekenreekswaarde die de waarde van het knooppunt vertegenwoordigt. In het codevoorbeeld dat dit proces volgt, wordt deze douanemethode geroepengetNodeText. De hoofdtekst van deze methode wordt weergegeven.
- Een
-
Als het gegevenstype van de gegevensinhoud
application/pdf, maakt u toepassingslogica om de verzonden PDF-gegevens op te slaan als een PDF-bestand.- Een
com.adobe.idp.Documentdoor het object aan te roepenFormsResultobjectgetOutputContentmethode. - Een
java.io.Fileobject met behulp van de openbare constructor. Zorg ervoor dat u PDF opgeeft als de bestandsnaamextensie. - Vul het PDF-bestand door het
com.adobe.idp.DocumentobjectcopyToFileen het doorgeven van dejava.io.Fileobject.
- Een
-
Zie ook
Snel starten (SOAP-modus): PDF forms die als XML zijn verzonden, afhandelen met de Java API
Snel starten (SOAP-modus): HTML-formulieren verwerken die zijn verzonden als XML met de Java API
Snel starten (SOAP-modus): PDF forms verwerken die als PDF zijn verzonden met de Java API
Inclusief AEM Forms Java-bibliotheekbestanden
Verbindingseigenschappen instellen
Verzonden PDF-gegevens verwerken met de webservice-API handle-submitted-pdf-data-using-the-web-service-api
Een verzonden formulier verwerken 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. -
Formuliergegevens ophalen
-
Als u formuliergegevens wilt ophalen die naar een Java Server zijn gepost, maakt u een
BLOBobject met behulp van de constructor. -
Een
java.io.InputStreamdoor het object aan te roepenjavax.servlet.http.HttpServletResponseobjectgetInputStreammethode. -
Een
java.io.ByteArrayOutputStreamobject door de constructor ervan te gebruiken en de lengte van het object door te gevenjava.io.InputStreamobject. -
Kopieer de inhoud van het dialoogvenster
java.io.InputStreamin hetjava.io.ByteArrayOutputStreamobject. -
Maak een bytearray door de
java.io.ByteArrayOutputStreamobjecttoByteArraymethode. -
Vul de
BLOBobject aanroepensetBinaryDataen de bytearray doorgeven als een argument. -
Een
RenderOptionsSpecobject met behulp van de constructor. Stel de waarde van de landinstelling in door deRenderOptionsSpecobjectsetLocaleen het doorgeven van een tekenreekswaarde die de waarde van de landinstelling opgeeft. -
De
FormsServiceobjectprocessFormSubmissionen geeft de volgende waarden door:- De
BLOBobject dat de formuliergegevens bevat. - Een tekenreekswaarde die omgevingsvariabelen opgeeft, inclusief alle relevante HTTP-headers. Geef het inhoudstype op dat u wilt afhandelen. Als u XML-gegevens wilt verwerken, geeft u de volgende tekenreekswaarde op voor deze parameter:
CONTENT_TYPE=text/xml. Als u PDF-gegevens wilt verwerken, geeft u de volgende tekenreekswaarde op voor deze parameter:CONTENT_TYPE=application/pdf. - Een tekenreekswaarde die de
HTTP_USER_AGENTkoptekstwaarde; bijvoorbeeld:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322). - A
RenderOptionsSpec-object dat uitvoeringsopties opslaat. - Een leeg
BLOBHolderobject dat door de methode wordt gevuld. - Een leeg
javax.xml.rpc.holders.StringHolderobject dat door de methode wordt gevuld. - Een leeg
BLOBHolderobject dat door de methode wordt gevuld. - Een leeg
BLOBHolderobject dat door de methode wordt gevuld. - Een leeg
javax.xml.rpc.holders.ShortHolderobject dat door de methode wordt gevuld. - Een leeg
MyArrayOf_xsd_anyTypeHolderobject dat door de methode wordt gevuld. Met deze parameter worden bestandsbijlagen opgeslagen die samen met het formulier worden verzonden. - Een leeg
FormsResultHolderobject dat door de methode is gevuld met het formulier dat wordt verzonden.
De
processFormSubmissionwordt deFormsResultHoldermet de resultaten van het verzenden van het formulier. - De
-
Bepaal of de Forms-service de formuliergegevens heeft verwerkt door het aanroepen van de
FormsResultobjectgetActionmethode. Als deze methode de waarde retourneert0, zijn de formuliergegevens klaar om te worden verwerkt. U kunt eenFormsResultobject door de waarde van het object op te halenFormsResultHolderobjectvaluelid.
-
-
Bepalen of de formulierverzending bestandsbijlagen bevat
Hiermee wordt de waarde van de opdracht
MyArrayOf_xsd_anyTypeHolderobjectvaluelid van de gegevens (deMyArrayOf_xsd_anyTypeHolderobject is doorgegeven aan deprocessFormSubmissionmethode). Dit gegevenslid retourneert een array vanObjects. Elk element binnen deObjectarray is eenObjectdat overeenkomt met de dossiers die samen met het formulier zijn ingediend. U kunt elk element binnen de serie krijgen en het gieten aan eenBLOBobject. -
De verzonden gegevens verwerken
-
Als het gegevenstype van de gegevensinhoud
application/vnd.adobe.xdp+xmloftext/xml, maakt u toepassingslogica om XML-gegevenswaarden op te halen.- Een
BLOBdoor het object aan te roepenFormsResultobjectgetOutputContentmethode. - Maak een bytearray door de
BLOBobjectgetBinaryDatamethode. - Een
java.io.InputStreamdoor het object aan te roepenjava.io.ByteArrayInputStreamen de bytearray doorgeven. - Een
org.w3c.dom.DocumentBuilderFactoryobject door het statische object aan te roepenorg.w3c.dom.DocumentBuilderFactoryobjectnewInstancemethode. - Een
org.w3c.dom.DocumentBuilderdoor het object aan te roepenorg.w3c.dom.DocumentBuilderFactoryobjectnewDocumentBuildermethode. - Een
org.w3c.dom.Documentdoor het object aan te roepenorg.w3c.dom.DocumentBuilderobjectparseen het doorgeven van dejava.io.InputStreamobject. - Hiermee wordt de waarde van elk knooppunt in het XML-document opgehaald. U kunt deze taak uitvoeren door een aangepaste methode te maken die twee parameters accepteert: de
org.w3c.dom.Document-object en de naam van het knooppunt waarvan u de waarde wilt ophalen. Deze methode retourneert een tekenreekswaarde die de waarde van het knooppunt vertegenwoordigt. In het codevoorbeeld dat dit proces volgt, wordt deze douanemethode geroepengetNodeText. De hoofdtekst van deze methode wordt weergegeven.
- Een
-
Als het gegevenstype van de gegevensinhoud
application/pdf, maakt u toepassingslogica om de verzonden PDF-gegevens op te slaan als een PDF-bestand.- Een
BLOBdoor het object aan te roepenFormsResultobjectgetOutputContentmethode. - Maak een bytearray door de
BLOBobjectgetBinaryDatamethode. - Een
java.io.Fileobject met behulp van de openbare constructor. Zorg ervoor dat u PDF opgeeft als de bestandsnaamextensie. - Een
java.io.FileOutputStreamobject door de constructor ervan te gebruiken en door te gevenjava.io.Fileobject. - Vul het PDF-bestand door het
java.io.FileOutputStreamobjectwriteen geeft u de bytearray door.
- Een
-
Zie ook
AEM Forms aanroepen met Base64-codering