Formuliergegevens berekenen calculating-form-data
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. U moet een formulierontwerpscript maken 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 de startpagina van de webtoepassing. Deze pagina roept een Java-server aan met de naam
GetLoanForm
. - De
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 Servlet 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 de verzonden gegevens. (Zie Verzendde Forms afhandelen.)
Het volgende diagram toont de logische stroom van de toepassing.
In de volgende tabel worden de stappen in dit diagram beschreven.
GetLoanForm
Java Servlet wordt aangeroepen vanaf de startpagina HTML.GetLoanForm
Java Servlet gebruikt de Forms Service Client API om het leningformulier te genereren naar de webbrowser van de client. 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 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 Servlet is de doellocatie waar het script wordt uitgevoerd.CalculateData
Java Servlet, 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 veld met de naam NumericField1 B. Een veld met de naam NumericField2 C. Een veld met de naam 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 map Click
gebeurtenis. 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
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 FormsServiceService
object.
Een formulier ophalen dat een berekeningsscript 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 Verzendde Forms afhandelen.)
Controleren of de verwerkingsstatus van het verzonden formulier gelijk is aan 1
(Calculate)
, wat betekent dat de Forms-service een berekening uitvoert voor de formuliergegevens en dat de resultaten moeten worden teruggeschreven naar de gebruiker. In deze situatie, wordt een manuscript dat wordt gevormd om op de server in werking te stellen automatisch uitgevoerd.
De formuliergegevensstroom terugschrijven naar de webbrowser van de client
Nadat u hebt gecontroleerd of de verwerkingsstatus van een verzonden formulier 1
, moet u de resultaten terugschrijven naar de clientwebbrowser. Wanneer het formulier wordt weergegeven, wordt de berekende waarde weergegeven in het (de) desbetreffende veld(en).
Zie ook
Inclusief AEM Forms Java-bibliotheekbestanden
Verbindingseigenschappen instellen
Interactieve PDF forms renderen
Webtoepassingen maken die Forms renderen
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 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
-
Een formulier ophalen dat een berekeningsscript bevat
-
Als u formuliergegevens wilt ophalen die een berekeningsscript bevatten, maakt u een
com.adobe.idp.Document
object door de constructor ervan te gebruiken en dejavax.servlet.http.HttpServletResponse
objectgetInputStream
methode vanuit de constructor. -
De
FormsServiceClient
objectprocessFormSubmission
en geeft de volgende waarden door:- De
com.adobe.idp.Document
object dat de formuliergegevens bevat. - Een tekenreekswaarde die omgevingsvariabelen opgeeft, inclusief alle relevante HTTP-headers. U moet het inhoudstype specificeren om te behandelen door één of meerdere waarden voor te specificeren
CONTENT_TYPE
omgevingsvariabele. 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
HTTP_USER_AGENT
koptekstwaarde; bijvoorbeeld:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
. - A
RenderOptionsSpec
-object dat uitvoeringsopties opslaat.
De
processFormSubmission
methode retourneert eenFormsResult
object met de resultaten van het verzenden van het formulier. - De
-
Controleren of de verwerkingsstatus van een verzonden formulier
1
door deFormsResult
objectgetAction
methode. Als deze methode de waarde retourneert1
, is de berekening uitgevoerd en kunnen de gegevens worden teruggeschreven naar de webbrowser van de client.
-
-
De formuliergegevensstroom terugschrijven naar de webbrowser van de client
- Een
javax.servlet.ServletOutputStream
object dat wordt gebruikt om een formuliergegevensstroom naar de webbrowser van de client te verzenden. - Een
com.adobe.idp.Document
door het object aan te roepenFormsResult
object 'sgetOutputContent
methode. - Een
java.io.InputStream
door het object aan te roepencom.adobe.idp.Document
objectgetInputStream
methode. - Maak een bytearray en vul deze met de formuliergegevensstroom 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
Inclusief AEM Forms Java-bibliotheekbestanden
Verbindingseigenschappen instellen
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
Een
FormsService
-object en stel 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 constructor. -
Een
java.io.InputStream
object gebruikenjavax.servlet.http.HttpServletResponse
objectgetInputStream
methode. -
Een
java.io.ByteArrayOutputStream
object door de constructor ervan te gebruiken en de lengte van het object door te gevenjava.io.InputStream
object. -
Kopieer de inhoud van het dialoogvenster
java.io.InputStream
in hetjava.io.ByteArrayOutputStream
object. -
Maak een bytearray door de
java.io.ByteArrayOutputStream
objecttoByteArray
methode. -
Vul de
BLOB
object aanroepensetBinaryData
en de bytearray doorgeven als een argument. -
Een
RenderOptionsSpec
object met behulp van de constructor. Stel de waarde van de landinstelling in door deRenderOptionsSpec
objectsetLocale
en het doorgeven van een tekenreekswaarde die de waarde van de landinstelling opgeeft. -
De
FormsServiceClient
objectprocessFormSubmission
en geeft de volgende waarden door:- De
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
HTTP_USER_AGENT
koptekstwaarde; bijvoorbeeld:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
. - A
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 is gevuld met het formulier dat wordt verzonden.
De
processFormSubmission
wordt deFormsResultHolder
met de resultaten van het verzenden van het formulier. DeprocessFormSubmission
methode retourneert eenFormsResult
object met de resultaten van het verzenden van het formulier. - De
-
Controleren of de verwerkingsstatus van een verzonden formulier
1
door deFormsResult
objectgetAction
methode. Als deze methode de waarde retourneert1
, is de berekening uitgevoerd en kunnen de gegevens worden teruggeschreven naar de webbrowser van de client.
-
-
De formuliergegevensstroom terugschrijven naar de webbrowser van de client
- Een
javax.servlet.ServletOutputStream
object dat wordt gebruikt om een formuliergegevensstroom naar de webbrowser van de client te verzenden. - Een
BLOB
object dat formuliergegevens bevat door hetFormsResult
objectgetOutputContent
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
AEM Forms aanroepen met Base64-codering