Verzonden XML-gegevens verwerken

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.

hs_hs_loanformdata

In de volgende afbeelding ziet u de overeenkomstige XML-gegevens die zijn opgehaald met de Forms Service Client API.

hs_hs_loandata

De velden in het leningformulier. Deze waarden kunnen worden opgehaald
Java XML-klassen gebruiken.

OPMERKING
Gegevens die als XML-gegevens moeten worden verzonden, moeten correct zijn geconfigureerd in Designer. Als u het formulierontwerp correct wilt configureren voor het verzenden van XML-gegevens, moet u ervoor zorgen dat de knop Verzenden die zich in het formulierontwerp bevindt, is ingesteld op het verzenden van XML-gegevens. Voor informatie over het plaatsen van de Submit knoop om de gegevens van XML voor te leggen, zie AEM Forms Designer.

Ingediende PDF-gegevens verwerken

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.

hs_hs_savingforms

In de volgende tabel worden de stappen in dit diagram beschreven.

StapBeschrijving
1Een webpagina bevat een koppeling die toegang krijgt tot een Java Servlet die de Forms-service aanroept.
2De Forms-service geeft een interactief PDF-formulier weer aan de webbrowser van de client.
3De gebruiker vult een interactief formulier in en klikt op een verzendknop. Het formulier wordt als PDF-gegevens teruggestuurd naar de Forms-service. Deze optie is ingesteld in Designer.
4De Forms-service slaat de PDF-gegevens op als een PDF-bestand.

Verzonden URL UTF-16-gegevens verwerken

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.

OPMERKING
Voor meer informatie over de dienst van Forms, zie Verwijzing van de Diensten voor AEM Forms.

Overzicht van de stappen

Voer de volgende taken uit om verzonden formulieren te verwerken:

  1. Inclusief projectbestanden.
  2. Maak een Forms Client API-object.
  3. Formuliergegevens ophalen.
  4. Bepaal of de formulierverzending bestandsbijlagen bevat.
  5. Verwerk de verzonden gegevens.

omvat projectdossiers

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.

creeer een voorwerp van Forms Cliënt API

Voordat u programmatisch een client-API-bewerking voor Forms-services kunt uitvoeren, moet u een Forms-serviceclient maken. Maak een FormsServiceClient -object als u de Java API gebruikt. Maak een FormsService -object als u de Forms-API voor webservices gebruikt.

wint vormgegevens terug

Als u verzonden formuliergegevens wilt ophalen, roept u de methode processFormSubmission van het object FormsServiceClient aan. 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 methode processFormSubmission als parameter voor het inhoudstype: CONTENT_TYPE=application/pdf .
  • Stel de PDFToXDP -waarde true van het object RenderOptionsSpec in
  • Stel de ExportDataFormat -waarde XMLData van het object RenderOptionsSpec in

U geeft het inhoudstype van het verzonden formulier op wanneer u de methode processFormSubmission aanroept. In de volgende lijst worden de toepasselijke waarden voor inhoudstypen aangegeven:

  • text/xml: Vertegenwoordigt het inhoudstype aan gebruik wanneer een vorm van PDF formuliergegevens als XML voorlegt.
  • toepassing/x-www-vorm-urlencoded: Vertegenwoordigt het inhoudstype aan gebruik wanneer een vorm van HTML gegevens als XML voorlegt.
  • toepassing/pdf: Vertegenwoordigt het inhoudstype aan gebruik wanneer een vorm van de PDF gegevens als PDF voorlegt.
OPMERKING
Er zijn drie bijbehorende snelstarthandleidingen gekoppeld aan de sectie Verzendde Forms afhandelen. De PDF forms die worden verzonden als PDF met de Java API Quick start tonen aan hoe de verzonden PDF-gegevens moeten worden verwerkt. Het inhoudstype dat in deze snelle start wordt opgegeven, is application/pdf . De PDF forms die worden verzonden als XML met de snelle start van de Java API laten zien hoe de verzonden XML-gegevens worden verwerkt die worden verzonden vanuit een PDF-formulier. 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 (voorlegt): Voorgelegde gegevens zijn klaar om te worden verwerkt.
  • 1 (Bereken): de dienst van Forms voerde een berekeningsverrichting op de gegevens uit en de resultaten moeten terug naar de gebruiker worden teruggegeven.
  • 2 (Valideren): de dienst van Forms bevestigde vormgegevens en de resultaten moeten terug naar de gebruiker worden teruggegeven.
  • 3 (Volgende): De huidige pagina is veranderd met resultaten die aan de cliënttoepassing moeten worden geschreven.
  • 4 (Vorige): De huidige pagina is veranderd met resultaten die aan de cliënttoepassing moeten worden geschreven.
OPMERKING
Berekeningen en validaties moeten worden teruggegeven aan de gebruiker. (Zie Berekend de Gegevens van de Vorm.

bepaalt als de vormvoorlegging dossiergehechtheid 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.

OPMERKING
Het formulier moet worden verzonden als PDF-gegevens om bestandsbijlagen op te halen. Als het formulier wordt verzonden als XML-gegevens, worden bestandsbijlagen niet verzonden.

Proces de voorgelegde gegevens

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 behulp van org.w3c.dom -klassen.

zie ook

Inclusief AEM Forms Java-bibliotheekbestanden

Verbindingseigenschappen instellen

Forms Service API Quick Start

Documenten doorgeven aan de Forms-service

Webtoepassingen maken die Forms renderen

Ingevulde formulieren verwerken met de Java API

Een verzonden formulier verwerken met de Forms API (Java):

  1. Projectbestanden opnemen

    Neem client-JAR-bestanden, zoals adobe-forms-client.jar, op in het klassenpad van uw Java-project.

  2. Een Forms Client API-object maken

    • Maak een ServiceClientFactory -object dat verbindingseigenschappen bevat.
    • Maak een FormsServiceClient -object door de constructor ervan te gebruiken en het ServiceClientFactory -object door te geven.
  3. Formuliergegevens ophalen

    • Als u formuliergegevens wilt ophalen die naar een Java Server zijn gepost, maakt u een com.adobe.idp.Document -object met de constructor ervan en roept u de methode javax.servlet.http.HttpServletResponse object getInputStream vanuit de constructor aan.
    • Maak een RenderOptionsSpec -object met behulp van de constructor. Stel de waarde van de landinstelling in door de methode van het RenderOptionsSpec -object setLocale aan te roepen en een tekenreekswaarde door te geven die de waarde van de landinstelling opgeeft.
    OPMERKING
    U kunt de Forms-service de instructie geven om XDP- of XML-gegevens te maken op basis van verzonden PDF-inhoud door de methode setPDF2XDP van het object RenderOptionsSpec aan te roepen en door te geven true en setXMLData en door te geven true . Vervolgens kunt u de methode getOutputXML van het object FormsResult aanroepen om de XML-gegevens op te halen die overeenkomen met de XDP/XML-gegevens. (Het object FormsResult wordt geretourneerd door de methode processFormSubmission , die in de volgende substap wordt beschreven.)
    • Roep de methode processFormSubmission van het object FormsServiceClient aan en geef de volgende waarden door:

      • Het com.adobe.idp.Document -object 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 voor deze parameter op: CONTENT_TYPE=text/xml . Als u PDF-gegevens wilt verwerken, geeft u de volgende tekenreekswaarde voor deze parameter op: CONTENT_TYPE=application/pdf .
      • Een tekenreekswaarde die bijvoorbeeld de headerwaarde HTTP_USER_AGENT opgeeft. Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322). Deze parameterwaarde is optioneel.
      • Een RenderOptionsSpec -object dat uitvoeringsopties opslaat.

      De methode processFormSubmission retourneert een FormsResult -object dat de resultaten van het verzenden van het formulier bevat.

    • Bepaal of de Forms-service de formuliergegevens heeft verwerkt door de methode getAction van het object FormsResult aan te roepen. Als deze methode de waarde 0 retourneert, kunnen de gegevens worden verwerkt.

  4. Bepalen of de formulierverzending bestandsbijlagen bevat

    • Roep de methode getAttachments van het object FormsResult aan. Deze methode retourneert een java.util.List -object dat bestanden bevat die met het formulier zijn verzonden.
    • Doorloop het java.util.List -object om te bepalen of er bestandsbijlagen zijn. Als er bestandsbijlagen zijn, is elk element een com.adobe.idp.Document -instantie. U kunt de bestandsbijlagen opslaan door de methode copyToFile van het object com.adobe.idp.Document aan te roepen en een object java.io.File door te geven.
    OPMERKING
    Deze stap is alleen van toepassing als het formulier wordt verzonden als PDF.
  5. De verzonden gegevens verwerken

    • Als het gegevenstype application/vnd.adobe.xdp+xml of text/xml is, maakt u toepassingslogica om XML-gegevenswaarden op te halen.

      • Maak een com.adobe.idp.Document -object door de methode FormsResult object getOutputContent aan te roepen.
      • Maak een java.io.InputStream -object door de java.io.DataInputStream -constructor aan te roepen en het com.adobe.idp.Document -object door te geven.
      • Maak een org.w3c.dom.DocumentBuilderFactory -object door de statische methode org.w3c.dom.DocumentBuilderFactory van het object newInstance aan te roepen.
      • Maak een org.w3c.dom.DocumentBuilder -object door de methode org.w3c.dom.DocumentBuilderFactory object newDocumentBuilder aan te roepen.
      • Maak een org.w3c.dom.Document -object door de methode org.w3c.dom.DocumentBuilder object parse aan te roepen en het java.io.InputStream -object door te geven.
      • Haal de waarde van elk knooppunt in het XML-document op. U kunt deze taak uitvoeren door een aangepaste methode te maken die twee parameters accepteert: het 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 aangepaste methode getNodeText genoemd. De hoofdtekst van deze methode wordt weergegeven.
    • Als het gegevenstype application/pdf is, maakt u toepassingslogica om de verzonden PDF-gegevens op te slaan als een PDF-bestand.

      • Maak een com.adobe.idp.Document -object door de methode FormsResult object getOutputContent aan te roepen.
      • Maak een java.io.File -object met behulp van de openbare constructor. Zorg ervoor dat u PDF opgeeft als bestandsextensie.
      • Vul het bestand PDF door de methode copyToFile van het object com.adobe.idp.Document aan te roepen en het object java.io.File door te geven.