Formuliergegevens berekenen calculating-form-data
de Steekproeven en de voorbeelden in dit document zijn slechts voor AEM Forms op milieu JEE.
De Forms-service kan de waarden berekenen die een gebruiker in een formulier invoert en de resultaten weergeven. Als u formuliergegevens wilt berekenen, moet u twee taken uitvoeren. Eerst maakt u een formulierontwerpscript waarmee formuliergegevens worden berekend. Een formulierontwerp ondersteunt drie typen scripts. Één manuscripttype loopt op de cliënt, een andere looppas op de server, en het derde type loopt op zowel de server als de cliënt. Het manuscripttype dat in dit onderwerp wordt besproken loopt op de server. Berekeningen aan de serverzijde worden ondersteund voor (afgekeurde) transformaties van HTML, PDF en Form Guide.
Tijdens het ontwerpen van formulieren kunt u berekeningen en scripts gebruiken om gebruikers een rijkere ervaring te bieden. Berekeningen en scripts kunnen aan de meeste formuliervelden en objecten worden toegevoegd. Maak een formulierontwerpscript om rekenbewerkingen uit te voeren op gegevens die een gebruiker in een interactief formulier invoert.
De gebruiker voert waarden in het formulier in en klikt op de knop Berekenen om de resultaten weer te geven. In het volgende proces wordt een voorbeeldtoepassing beschreven waarmee een gebruiker gegevens kan berekenen:
- De gebruiker heeft toegang tot een HTML-pagina met de naam StartLoan.html die fungeert als startpagina van de webtoepassing. Deze pagina roept een Java-server met de naam
GetLoanForm
aan. - Het
GetLoanForm
servlet geeft een leningformulier weer. Dit formulier bevat een script, interactieve velden, een knop Berekenen en een knop Verzenden. - De gebruiker voert waarden in de velden van het formulier in en klikt op de knop Berekenen. Het formulier wordt verzonden naar de
CalculateData
Java Server waar het script wordt uitgevoerd. Het formulier wordt teruggestuurd naar de gebruiker met de berekeningsresultaten die in het formulier worden weergegeven. - De gebruiker gaat verder met het invoeren en berekenen van waarden totdat een bevredigend resultaat wordt weergegeven. Als de gebruiker tevreden is, klikt u op de knop Verzenden om het formulier te verwerken. Het formulier wordt verzonden naar een andere Java-server met de naam
ProcessForm
die verantwoordelijk is voor het ophalen van verzonden gegevens. (Zie Behandelend Voorgelegde Forms.)
Het volgende diagram toont de logische stroom van de toepassing.
In de volgende tabel worden de stappen in dit diagram beschreven.
GetLoanForm
wordt aangehaald van de HTML beginpagina.GetLoanForm
Java Server gebruikt de Forms Service Client API om het leningformulier te genereren naar de clientwebbrowser. Het verschil tussen het weergeven van een formulier met een script dat is geconfigureerd om op de server te worden uitgevoerd en het weergeven van een formulier dat geen script bevat, is dat u de doellocatie moet opgeven die wordt gebruikt om het script uit te voeren. Als er geen doellocatie is opgegeven, wordt een script dat is geconfigureerd om op de server te worden uitgevoerd, niet uitgevoerd. Neem bijvoorbeeld de toepassing die in deze sectie is geïntroduceerd. De CalculateData
Java Server is de doellocatie waar het script wordt uitgevoerd.CalculateData
Java Server, waar het script wordt uitgevoerd.ProcessForm
.Een formulier dat als PDF-inhoud wordt verzonden, bevat doorgaans scripts die op de client worden uitgevoerd. Aan de serverzijde kunnen echter ook berekeningen worden uitgevoerd. Een knop Verzenden kan niet worden gebruikt om scripts te berekenen. In deze situatie worden de berekeningen niet uitgevoerd omdat de Forms-service de interactie als voltooid beschouwt.
In deze sectie wordt een eenvoudig interactief formulier met een script dat is geconfigureerd om op de server te worden uitgevoerd, onderzocht om het gebruik van een formulierontwerpscript te illustreren. In het volgende diagram ziet u een formulierontwerp met een script waarmee waarden worden toegevoegd die een gebruiker invoert in de eerste twee velden en het resultaat wordt weergegeven in het derde veld.
A. Een gebied genoemd NumericField1 B. Een gebied genoemd NumericField2 C. Een gebied genoemd NumericField3
De syntaxis van het script in dit formulierontwerp is als volgt:
NumericField3 = NumericField2 + NumericField1
In dit formulierontwerp is de knop Berekenen een opdrachtknop en bevindt het script zich in de gebeurtenis Click
van deze knop. Wanneer een gebruiker waarden in de eerste twee velden invoert (NumericField1 en NumericField2) en op de knop Berekenen klikt, wordt het formulier verzonden naar de Forms-service waar het script wordt uitgevoerd. De Forms-service geeft het formulier terug naar het clientapparaat met de resultaten van de berekening die in het veld NumericField3 worden weergegeven.
Overzicht van de stappen summary-of-steps
Voer de volgende taken uit om formuliergegevens te berekenen:
- Inclusief projectbestanden.
- Maak een Forms Client API-object.
- Hiermee wordt een formulier met een berekeningsscript opgehaald.
- De formuliergegevensstroom terugschrijven naar de webbrowser van de client
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 FormsServiceService
-object als u de Forms-API voor webservices gebruikt.
wint een vorm terug die een berekeningsmanuscript bevat
U gebruikt de Forms Service Client API om toepassingslogica te maken die een formulier afhandelt dat een script bevat dat is geconfigureerd om op de server te worden uitgevoerd. Het proces is vergelijkbaar met het verwerken van een verzonden formulier. (Zie Behandelend Voorgelegde Forms.)
Controleer of de verwerkingsstatus van het verzonden formulier 1
(Calculate)
is. Dit houdt in dat de Forms-service een rekenbewerking uitvoert voor de formuliergegevens en dat de resultaten naar de gebruiker moeten worden teruggeschreven. In deze situatie, wordt een manuscript dat wordt gevormd om op de server in werking te stellen automatisch uitgevoerd.
schrijf de stroom van vormgegevens terug naar browser van het cliëntWeb
Nadat u hebt gecontroleerd of de verwerkingsstatus van een verzonden formulier 1
is, moet u de resultaten terugschrijven naar de webbrowser van de client. Wanneer het formulier wordt weergegeven, wordt de berekende waarde weergegeven in het juiste veld of de juiste velden.
zie ook
Met inbegrip van de bibliotheekdossiers van AEM Forms Java
berekent vormgegevens gebruikend Java API
berekent vormgegevens gebruikend de Webdienst API
Plaatsende verbindingseigenschappen
Snelle Start van de Dienst API van Forms
teruggevend Interactieve PDF forms
Creërend de Toepassingen van het Web die Formsteruggeven
Formuliergegevens berekenen met de Java API calculate-form-data-using-the-java-api
Formuliergegevens berekenen met de Forms API (Java):
-
Projectbestanden opnemen
Neem client-JAR-bestanden, zoals adobe-forms-client.jar, op in het klassepad van uw Java-project.
-
Een Forms Client API-object maken
- Maak een
ServiceClientFactory
-object dat verbindingseigenschappen bevat. - Maak een
FormsServiceClient
-object door de constructor ervan te gebruiken en hetServiceClientFactory
-object door te geven.
- Maak een
-
Een formulier ophalen dat een berekeningsscript bevat
-
Als u formuliergegevens wilt ophalen die een berekeningsscript bevatten, maakt u een
com.adobe.idp.Document
-object met behulp van de constructor ervan en roept u de methodejavax.servlet.http.HttpServletResponse
objectgetInputStream
aan vanuit de constructor. -
Roep de methode
processFormSubmission
van het objectFormsServiceClient
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 door een of meer waarden voor de omgevingsvariabele
CONTENT_TYPE
op te geven. Als u bijvoorbeeld XML- en PDF-gegevens wilt verwerken, geeft u de volgende tekenreekswaarde op voor deze parameter:CONTENT_TYPE=application/xml&CONTENT_TYPE=application/pdf
- Een tekenreekswaarde die de headerwaarde
HTTP_USER_AGENT
opgeeft, bijvoorbeeldMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
. - Een
RenderOptionsSpec
-object dat uitvoeringsopties opslaat.
De methode
processFormSubmission
retourneert eenFormsResult
-object dat de resultaten van het verzenden van het formulier bevat. - Het
-
Controleer of de verwerkingsstatus van een verzonden formulier
1
is door de methodeFormsResult
objectgetAction
aan te roepen. Als deze methode de waarde1
retourneert, is de berekening uitgevoerd en kunnen de gegevens naar de webbrowser van de client worden geschreven.
-
-
De formuliergegevensstroom terugschrijven naar de webbrowser van de client
- Maak een
javax.servlet.ServletOutputStream
-object dat wordt gebruikt om een formuliergegevensstroom naar de webbrowser van de client te verzenden. - Maak een
com.adobe.idp.Document
-object door de methodeFormsResult
objectgetOutputContent
aan te roepen. - Maak een
java.io.InputStream
-object door de methodecom.adobe.idp.Document
objectgetInputStream
aan te roepen. - Maak een bytearray en vul deze met de formuliergegevensstroom door de methode
read
van het objectInputStream
aan te roepen en de bytearray als een argument door te geven. - Roep de methode
write
van het objectjavax.servlet.ServletOutputStream
aan om de gegevensstroom van het formulier naar de webbrowser van de client te verzenden. Geef de bytearray door aan de methodewrite
.
- Maak een
zie ook
Met inbegrip van de bibliotheekdossiers van AEM Forms Java
Plaatsende verbindingseigenschappen
Formuliergegevens berekenen met de API voor webservices calculate-form-data-using-the-web-service-api
Formuliergegevens berekenen 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
Maak een
FormsService
-object en stel de verificatiewaarden in. -
Een formulier ophalen dat een berekeningsscript bevat
-
Als u formuliergegevens wilt ophalen die naar een Java Server zijn gepost, maakt u een
BLOB
-object met behulp van de bijbehorende constructor. -
Maak een
java.io.InputStream
-object met de methodejavax.servlet.http.HttpServletResponse
objectgetInputStream
. -
Maak een
java.io.ByteArrayOutputStream
-object door de constructor ervan te gebruiken en de lengte van hetjava.io.InputStream
-object door te geven. -
Kopieer de inhoud van het object
java.io.InputStream
naar het objectjava.io.ByteArrayOutputStream
. -
Maak een bytearray door de methode
toByteArray
van het objectjava.io.ByteArrayOutputStream
aan te roepen. -
Vul het object
BLOB
door de methodesetBinaryData
ervan aan te roepen en de bytearray als een argument door te geven. -
Maak een
RenderOptionsSpec
-object met behulp van de constructor. Stel de waarde van de landinstelling in door de methode van hetRenderOptionsSpec
-objectsetLocale
aan te roepen en een tekenreekswaarde door te geven die de waarde van de landinstelling opgeeft. -
Roep de methode
processFormSubmission
van het objectFormsServiceClient
aan en geef de volgende waarden door:- Het
BLOB
-object dat de formuliergegevens bevat. - Een tekenreekswaarde die omgevingsvariabelen opgeeft die alle relevante HTTP-headers bevatten. U kunt bijvoorbeeld de volgende tekenreekswaarde opgeven:
HTTP_REFERER=referrer&HTTP_CONNECTION=keep-alive&CONTENT_TYPE=application/xml
- Een tekenreekswaarde die de headerwaarde
HTTP_USER_AGENT
opgeeft, bijvoorbeeldMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
. - Een
RenderOptionsSpec
-object dat uitvoeringsopties opslaat. Voor meer informatie, . - Een leeg
BLOBHolder
-object dat door de methode wordt gevuld. - Een leeg
javax.xml.rpc.holders.StringHolder
-object dat door de methode wordt gevuld. - Een leeg
BLOBHolder
-object dat door de methode wordt gevuld. - Een leeg
BLOBHolder
-object dat door de methode wordt gevuld. - Een leeg
javax.xml.rpc.holders.ShortHolder
-object dat door de methode wordt gevuld. - Een leeg
MyArrayOf_xsd_anyTypeHolder
-object dat door de methode wordt gevuld. Met deze parameter worden bestandsbijlagen opgeslagen die samen met het formulier worden verzonden. - Een leeg
FormsResultHolder
-object dat door de methode wordt gevuld met het formulier dat wordt verzonden.
Met de methode
processFormSubmission
wordt de parameterFormsResultHolder
gevuld met de resultaten van het verzenden van het formulier. De methodeprocessFormSubmission
retourneert eenFormsResult
-object dat de resultaten van het verzenden van het formulier bevat. - Het
-
Controleer of de verwerkingsstatus van een verzonden formulier
1
is door de methodeFormsResult
objectgetAction
aan te roepen. Als deze methode de waarde1
retourneert, is de berekening uitgevoerd en kunnen de gegevens naar de webbrowser van de client worden geschreven.
-
-
De formuliergegevensstroom terugschrijven naar de webbrowser van de client
- Maak een
javax.servlet.ServletOutputStream
-object dat wordt gebruikt om een formuliergegevensstroom naar de webbrowser van de client te verzenden. - Maak een
BLOB
-object dat formuliergegevens bevat door de methodeFormsResult
objectgetOutputContent
aan te roepen. - Maak een bytearray en vul deze door de methode
getBinaryData
van het objectBLOB
aan te roepen. Hierdoor wordt de inhoud van hetFormsResult
-object toegewezen aan de bytearray. - Roep de methode
write
van het objectjavax.servlet.http.HttpServletResponse
aan om de gegevensstroom van het formulier naar de webbrowser van de client te verzenden. Geef de bytearray door aan de methodewrite
.
- Maak een
zie ook
Het aanhalen van AEM Forms die Base64 coderengebruikt