Beräknar formulärdata calculating-form-data

Exempel och exempel i det här dokumentet är bara för AEM Forms i JEE-miljö.

Forms-tjänsten kan beräkna de värden som en användare anger i ett formulär och visa resultaten. Om du vill beräkna formulärdata måste du utföra två uppgifter. Först skapar du ett formulärdesignskript som beräknar formulärdata. En formulärdesign har stöd för tre typer av skript. En skripttyp körs på klienten, en annan på servern och den tredje typen körs på både servern och klienten. Skripttypen som beskrivs i det här avsnittet körs på servern. Serverberäkningar stöds för omformningar av HTML, PDF och formulärguiden (utgått).

Som en del av formulärdesignprocessen kan du använda beräkningar och skript för att ge en bättre användarupplevelse. Beräkningar och skript kan läggas till i de flesta formulärfält och objekt. Skapa ett formulärdesignskript för att utföra beräkningsåtgärder på data som användaren matar in i ett interaktivt formulär.

Användaren anger värden i formuläret och klickar på knappen Beräkna för att visa resultatet. I följande process beskrivs ett exempelprogram som gör att en användare kan beräkna data:

  • Användaren kommer åt en HTML-sida med namnet StartLoan.html som fungerar som webbprogrammets startsida. Den här sidan anropar en Java-server med namnet GetLoanForm.
  • The GetLoanForm för att återge ett låneformulär. Det här formuläret innehåller ett skript, interaktiva fält, en beräkningsknapp och en skicka-knapp.
  • Användaren anger värden i formulärets fält och klickar på knappen Beräkna. Formuläret skickas till CalculateData Java Servlet där skriptet körs. Formuläret skickas tillbaka till användaren med beräkningsresultaten visade i formuläret.
  • Användaren fortsätter att ange och beräkna värden tills ett tillfredsställande resultat visas. När användaren är nöjd klickar han/hon på knappen Skicka för att bearbeta formuläret. Formuläret skickas till en annan Java-server med namnet ProcessForm som ansvarar för att hämta skickade data. (Se Hantera skickade Forms.)

I följande diagram visas programmets logikflöde.

cf_cf_finsrv_loancalcapp_v1

I följande tabell beskrivs stegen i det här diagrammet.

Steg
Beskrivning
1
The GetLoanForm Java Servlet anropas från startsidan för HTML.
2
The GetLoanForm Java Servlet använder Forms klient-API:t för att återge låneformuläret till klientens webbläsare. Skillnaden mellan återgivning av ett formulär som innehåller ett skript som är konfigurerat att köras på servern och återgivning av ett formulär som inte innehåller något skript är att du måste ange målplatsen som används för att köra skriptet. Om ingen målplats anges körs inte ett skript som är konfigurerat att köras på servern. Tänk dig till exempel programmet som introducerades i det här avsnittet. The CalculateData Java Servlet är den målplats där skriptet körs.
3
Användaren anger data i interaktiva fält och klickar på knappen Beräkna. Formuläret skickas till CalculateData Java Servlet, där skriptet körs.
4
Formuläret återges i webbläsaren med beräkningsresultaten i formuläret.
5
Användaren klickar på knappen Skicka när värdena är tillräckliga. Formuläret skickas till en annan Java-server med namnet ProcessForm.

Vanligtvis innehåller ett formulär som skickas som PDF-innehåll skript som körs på klienten. Serverberäkningar kan dock också utföras. En Skicka-knapp kan inte användas för att beräkna skript. I det här fallet utförs inte beräkningar eftersom Forms-tjänsten anser att interaktionen är fullständig.

För att illustrera användningen av ett formulärdesignskript undersöker det här avsnittet ett enkelt interaktivt formulär som innehåller ett skript som är konfigurerat att köras på servern. I följande diagram visas en formulärdesign som innehåller ett skript som lägger till värden som en användare anger i de första två fälten och som visar resultatet i det tredje fältet.

cf_cf_caldata

S. Ett fält med namnet NumericField1 B. Ett fält med namnet NumericField2 C. Ett fält med namnet NumericField3

Skriptets syntax i den här formulärdesignen är följande:

     NumericField3 = NumericField2 + NumericField1

I den här formulärdesignen är knappen Beräkna en kommandoknapp och skriptet finns i knappens Click -händelse. När en användare anger värden i de två första fälten (NumericField1 och NumericField2) och klickar på knappen Beräkna, skickas formuläret till Forms-tjänsten där skriptet körs. Forms-tjänsten återger formuläret till klientenheten med resultatet av beräkningen som visas i fältet NumericField3.

NOTE
Mer information om hur du skapar ett formulärdesignskript finns i Forms Designer.
NOTE
Mer information om tjänsten Forms finns i Tjänstreferens för AEM Forms.

Sammanfattning av steg summary-of-steps

Utför följande uppgifter för att beräkna formulärdata:

  1. Inkludera projektfiler.
  2. Skapa ett Forms Client API-objekt.
  3. Hämta ett formulär som innehåller ett beräkningsskript.
  4. Skriv tillbaka formulärdataströmmen till klientens webbläsare

Inkludera projektfiler

Inkludera nödvändiga filer i utvecklingsprojektet. Om du skapar ett klientprogram med Java, inkluderar du de JAR-filer som behövs. Om du använder webbtjänster måste du inkludera proxyfilerna.

Skapa ett Forms Client API-objekt

Innan du programmässigt kan utföra en API-åtgärd för Forms-tjänstklienten måste du skapa en Forms-tjänstklient. Om du använder Java API skapar du en FormsServiceClient -objekt. Om du använder Forms webbtjänst-API skapar du en FormsServiceService -objekt.

Hämta ett formulär som innehåller ett beräkningsskript

Du använder API:t för Forms-tjänstklienten för att skapa programlogik som hanterar ett formulär som innehåller ett skript som är konfigurerat att köras på servern. Processen liknar hantering av ett skickat formulär. (Se Hantera skickade Forms.)

Kontrollera att bearbetningstillståndet som är associerat med det skickade formuläret är 1 (Calculate), vilket innebär att Forms-tjänsten utför en beräkningsåtgärd för formulärdata och att resultaten måste skrivas tillbaka till användaren. I så fall körs ett skript som är konfigurerat att köras på servern automatiskt.

Skriv tillbaka formulärdataströmmen till klientens webbläsare

När du har verifierat bearbetningstillståndet som är kopplat till ett skickat formulär är 1måste du skriva tillbaka resultaten till webbläsaren. När formuläret visas visas det beräknade värdet i respektive fält.

Se även

Inkludera AEM Forms Java-biblioteksfiler
Beräkna formulärdata med Java API
Beräkna formulärdata med webbtjänstens API
Ange anslutningsegenskaper
Snabbstart för Forms Service API
Återger interaktiv PDF forms
Skapa webbprogram som återger Forms

Beräkna formulärdata med Java API calculate-form-data-using-the-java-api

Beräkna formulärdata med Forms API (Java):

  1. Inkludera projektfiler

    Inkludera JAR-klientfiler, t.ex. adobe-forms-client.jar, i Java-projektets klassökväg.

  2. Skapa ett Forms Client API-objekt

    • Skapa en ServiceClientFactory objekt som innehåller anslutningsegenskaper.
    • Skapa en FormsServiceClient genom att använda konstruktorn och skicka ServiceClientFactory -objekt.
  3. Hämta ett formulär som innehåller ett beräkningsskript

    • Skapa en com.adobe.idp.Document genom att använda konstruktorn och anropa javax.servlet.http.HttpServletResponse objektets getInputStream -metoden inifrån konstruktorn.

    • Anropa FormsServiceClient objektets processFormSubmission och skicka följande värden:

      • The com.adobe.idp.Document som innehåller formulärdata.
      • Ett strängvärde som anger miljövariabler inklusive alla relevanta HTTP-huvuden. Ange vilken innehållstyp som ska hanteras genom att ange ett eller flera värden för CONTENT_TYPE miljövariabel. Om du till exempel vill hantera XML- och PDF-data anger du följande strängvärde för den här parametern: CONTENT_TYPE=application/xml&CONTENT_TYPE=application/pdf
      • Ett strängvärde som anger HTTP_USER_AGENT rubrikvärde, till exempel Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322).
      • A RenderOptionsSpec objekt som lagrar körningsalternativ.

      The processFormSubmission returnerar en FormsResult objekt som innehåller resultaten av formuläröverföringen.

    • Kontrollera att bearbetningstillståndet som är associerat med ett skickat formulär är 1 genom att anropa FormsResult objektets getAction -metod. Om den här metoden returnerar värdet 1beräkningarna utfördes och data kan skrivas tillbaka till klientens webbläsare.

  4. Skriv tillbaka formulärdataströmmen till klientens webbläsare

    • Skapa en javax.servlet.ServletOutputStream som används för att skicka en formulärdataström till klientens webbläsare.
    • Skapa en com.adobe.idp.Document genom att anropa FormsResult objekt getOutputContent -metod.
    • Skapa en java.io.InputStream genom att anropa com.adobe.idp.Document objektets getInputStream -metod.
    • Skapa en bytearray och fylla den med formulärdataströmmen genom att anropa InputStream objektets read och skicka bytearrayen som ett argument.
    • Anropa javax.servlet.ServletOutputStream objektets write metod för att skicka formulärdataströmmen till klientens webbläsare. Skicka bytearrayen till write -metod.

Se även

Inkludera AEM Forms Java-biblioteksfiler
Ange anslutningsegenskaper

Beräkna formulärdata med webbtjänstens API calculate-form-data-using-the-web-service-api

Beräkna formulärdata med Forms API (webbtjänst):

  1. Inkludera projektfiler

    • Skapa Java-proxyklasser som använder Forms tjänst-WSDL.
    • Inkludera Java-proxyklasserna i klassökvägen.
  2. Skapa ett Forms Client API-objekt

    Skapa en FormsService och ange autentiseringsvärden.

  3. Hämta ett formulär som innehåller ett beräkningsskript

    • Skapa en BLOB genom att använda dess konstruktor.

    • Skapa en java.io.InputStream genom att använda javax.servlet.http.HttpServletResponse objektets getInputStream -metod.

    • Skapa en java.io.ByteArrayOutputStream genom att använda dess konstruktor och skicka längden på java.io.InputStream -objekt.

    • Kopiera innehållet i java.io.InputStream objektet i java.io.ByteArrayOutputStream -objekt.

    • Skapa en bytearray genom att anropa java.io.ByteArrayOutputStream objektets toByteArray -metod.

    • Fyll i BLOB genom att anropa dess setBinaryData och skicka bytearrayen som ett argument.

    • Skapa en RenderOptionsSpec genom att använda dess konstruktor. Ange språkvärdet genom att anropa RenderOptionsSpec objektets setLocale och skickar ett strängvärde som anger språkvärdet.

    • Anropa FormsServiceClient objektets processFormSubmission och skicka följande värden:

      • The BLOB som innehåller formulärdata.
      • Ett strängvärde som anger miljövariabler inkluderade alla relevanta HTTP-huvuden. Du kan till exempel ange följande strängvärde: HTTP_REFERER=referrer&HTTP_CONNECTION=keep-alive&CONTENT_TYPE=application/xml
      • Ett strängvärde som anger HTTP_USER_AGENT rubrikvärde, till exempel Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322).
      • A RenderOptionsSpec objekt som lagrar körningsalternativ. Mer information finns i .
      • En tom BLOBHolder objekt som fylls i av metoden.
      • En tom javax.xml.rpc.holders.StringHolder objekt som fylls i av metoden.
      • En tom BLOBHolder objekt som fylls i av metoden.
      • En tom BLOBHolder objekt som fylls i av metoden.
      • En tom javax.xml.rpc.holders.ShortHolder objekt som fylls i av metoden.
      • En tom MyArrayOf_xsd_anyTypeHolder objekt som fylls i av metoden. Den här parametern används för att lagra bifogade filer som skickas tillsammans med formuläret.
      • En tom FormsResultHolder objekt som fylls i av metoden med det formulär som skickas.

      The processFormSubmission metoden fyller i FormsResultHolder parametern med resultaten av formuläröverföringen. The processFormSubmission returnerar en FormsResult objekt som innehåller resultaten av formuläröverföringen.

    • Kontrollera att bearbetningstillståndet som är associerat med ett skickat formulär är 1 genom att anropa FormsResult objektets getAction -metod. Om den här metoden returnerar värdet 1beräkningarna utfördes och data kan skrivas tillbaka till klientens webbläsare.

  4. Skriv tillbaka formulärdataströmmen till klientens webbläsare

    • Skapa en javax.servlet.ServletOutputStream som används för att skicka en formulärdataström till klientens webbläsare.
    • Skapa en BLOB objekt som innehåller formulärdata genom att anropa FormsResult objektets getOutputContent -metod.
    • Skapa en bytearray och fylla i den genom att anropa BLOB objektets getBinaryData -metod. Den här aktiviteten tilldelar innehållet i FormsResult till bytearrayen.
    • Anropa javax.servlet.http.HttpServletResponse objektets write metod för att skicka formulärdataströmmen till klientens webbläsare. Skicka bytearrayen till write -metod.

Se även
Anropa AEM Forms med Base64-kodning

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2