Il servizio Forms può calcolare i valori immessi da un utente in un modulo e visualizzare i risultati. Per calcolare i dati del modulo, è necessario eseguire due attività. Innanzitutto, è necessario creare uno script della struttura del modulo che calcoli i dati del modulo. Una struttura del modulo supporta tre tipi di script. Un tipo di script viene eseguito sul client, un altro sul server e il terzo viene eseguito sia sul server che sul client. Il tipo di script descritto in questo argomento viene eseguito sul server. I calcoli lato server sono supportati per le trasformazioni HTML, PDF e Form Guide (obsoleto).
Come parte del processo di progettazione del modulo, è possibile utilizzare calcoli e script per migliorare l’esperienza utente. I calcoli e gli script possono essere aggiunti alla maggior parte dei campi e degli oggetti modulo. È necessario creare uno script della struttura del modulo per eseguire operazioni di calcolo sui dati immessi dall’utente in un modulo interattivo.
L’utente immette i valori nel modulo e fa clic sul pulsante Calcola per visualizzare i risultati. Il processo seguente descrive un'applicazione di esempio che consente a un utente di calcolare i dati:
GetLoanForm
.GetLoanForm
esegue il rendering di un modulo di prestito. Questo modulo contiene uno script, campi interattivi, un pulsante di calcolo e un pulsante di invio.CalculateData
Java Servlet in cui viene eseguito lo script. Il modulo viene inviato nuovamente all’utente con i risultati di calcolo visualizzati nel modulo.ProcessForm
responsabile del recupero dei dati inviati. (Consulta Gestione dei Forms inviati.)Il diagramma seguente mostra il flusso logico dell’applicazione.
La tabella seguente descrive i passaggi descritti in questo diagramma.
Incremento |
Descrizione |
---|---|
1 |
Il servlet Java |
2 |
Il |
3 |
L’utente immette i dati in campi interattivi e fa clic sul pulsante Calcola . Il modulo viene inviato al |
4 |
Viene eseguito il rendering del modulo nel browser Web con i risultati di calcolo visualizzati nel modulo. |
5 |
L’utente fa clic sul pulsante Invia quando i valori sono soddisfacenti. Il modulo viene inviato a un altro servlet Java denominato |
In genere, un modulo inviato come contenuto PDF contiene script eseguiti sul client. Tuttavia, è possibile eseguire anche calcoli sul lato server. Non è possibile utilizzare un pulsante Invia per calcolare gli script. In questa situazione, i calcoli non vengono eseguiti perché il servizio Forms considera l’interazione completa.
Per illustrare l’utilizzo di uno script della struttura del modulo, in questa sezione viene esaminato un semplice modulo interattivo contenente uno script configurato per l’esecuzione sul server. Il diagramma seguente mostra una struttura del modulo contenente uno script che aggiunge valori immessi dall’utente nei primi due campi e visualizza il risultato nel terzo campo.
A. Campo denominato NumericField1 B. Campo denominato NumericField2 C. Campo denominato NumericField3
La sintassi dello script in questa struttura del modulo è la seguente:
NumericField3 = NumericField2 + NumericField1
In questa struttura del modulo, il pulsante Calcola è un pulsante di comando e lo script si trova nell’evento Click
del pulsante. Quando un utente immette valori nei primi due campi (NumericField1 e NumericField2) e fa clic sul pulsante Calcola, il modulo viene inviato al servizio Forms, dove viene eseguito lo script. Il servizio Forms esegue il rendering del modulo sul dispositivo client con i risultati del calcolo visualizzato nel campo NumericField3 .
Per informazioni sulla creazione di uno script della struttura del modulo, vedere Forms Designer.
Per ulteriori informazioni sul servizio Forms, consulta Riferimento servizi per AEM Forms.
Per calcolare i dati del modulo, eseguire le operazioni seguenti:
Includi file di progetto
Includi i file necessari nel progetto di sviluppo. Se stai creando un'applicazione client utilizzando Java, includi i file JAR necessari. Se utilizzi i servizi web, assicurati di includere i file proxy.
Creare un oggetto API client Forms
Prima di poter eseguire programmaticamente un’operazione API client del servizio Forms, è necessario creare un client di servizio Forms. Se utilizzi l’API Java, crea un oggetto FormsServiceClient
. Se utilizzi l’API del servizio Web Forms, crea un oggetto FormsServiceService
.
Recupera un modulo contenente uno script di calcolo
L’API client del servizio Forms consente di creare una logica applicativa che gestisce un modulo contenente uno script configurato per l’esecuzione sul server. Il processo è simile alla gestione di un modulo inviato. (Consulta Gestione dei Forms inviati.)
Verificare che lo stato di elaborazione associato al modulo inviato sia 1
(Calculate)
, il che significa che il servizio Forms sta eseguendo un'operazione di calcolo sui dati del modulo e che i risultati debbano essere riscritti all'utente. In questa situazione, viene eseguito automaticamente uno script configurato per l'esecuzione sul server.
Riscrittura del flusso di dati del modulo nel browser Web client
Dopo aver verificato che lo stato di elaborazione associato a un modulo inviato sia 1
, è necessario riscrivere i risultati nel browser Web client. Quando il modulo viene visualizzato, il valore calcolato verrà visualizzato nei campi appropriati.
Consulta anche
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Avvio rapido API di Forms Service
Rendering di PDF forms interattivi
Creazione di applicazioni Web per il rendering di Forms
Calcola i dati del modulo utilizzando l’API Forms (Java):
Includi file di progetto
Includi file JAR client, ad esempio adobe-forms-client.jar nel percorso di classe del progetto Java.
Creare un oggetto API client Forms
ServiceClientFactory
contenente le proprietà di connessione.FormsServiceClient
utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory
.Recupera un modulo contenente uno script di calcolo
Per recuperare i dati del modulo contenenti uno script di calcolo, creare un oggetto com.adobe.idp.Document
utilizzando il relativo costruttore e richiamare il metodo javax.servlet.http.HttpServletResponse
dell'oggetto getInputStream
dall'interno del costruttore.
Richiama il metodo processFormSubmission
dell'oggetto FormsServiceClient
e passa i seguenti valori:
com.adobe.idp.Document
che contiene i dati del modulo.CONTENT_TYPE
. Ad esempio, per gestire i dati XML e PDF, specificare il seguente valore stringa per questo parametro: CONTENT_TYPE=application/xml&CONTENT_TYPE=application/pdf
HTTP_USER_AGENT
; ad esempio, Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
.RenderOptionsSpec
che memorizza le opzioni di esecuzione.Il metodo processFormSubmission
restituisce un oggetto FormsResult
contenente i risultati dell'invio del modulo.
Verificare che lo stato di elaborazione associato a un modulo inviato sia 1
richiamando il metodo FormsResult
dell'oggetto getAction
. Se questo metodo restituisce il valore 1
, il calcolo è stato eseguito e i dati possono essere riscritti nel browser Web client.
Riscrittura del flusso di dati del modulo nel browser Web client
javax.servlet.ServletOutputStream
utilizzato per inviare un flusso di dati del modulo al browser Web client.com.adobe.idp.Document
richiamando il metodo FormsResult
object ‘s getOutputContent
.java.io.InputStream
richiamando il metodo com.adobe.idp.Document
dell'oggetto getInputStream
.InputStream
dell'oggetto read
e passando la matrice di byte come argomento.write
dell’oggetto javax.servlet.ServletOutputStream
per inviare il flusso di dati del modulo al browser Web client. Passa l'array di byte al metodo write
.Consulta anche
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Calcola i dati del modulo utilizzando l’API Forms (servizio Web):
Includi file di progetto
Creare un oggetto API client Forms
Creare un oggetto FormsService
e impostare i valori di autenticazione.
Recupera un modulo contenente uno script di calcolo
Per recuperare i dati del modulo inviati a un servlet Java, creare un oggetto BLOB
utilizzando il relativo costruttore.
Creare un oggetto java.io.InputStream
utilizzando il metodo javax.servlet.http.HttpServletResponse
dell'oggetto getInputStream
.
Creare un oggetto java.io.ByteArrayOutputStream
utilizzando il relativo costruttore e passando la lunghezza dell'oggetto java.io.InputStream
.
Copiare il contenuto dell'oggetto java.io.InputStream
nell'oggetto java.io.ByteArrayOutputStream
.
Creare una matrice di byte richiamando il metodo toByteArray
dell'oggetto java.io.ByteArrayOutputStream
.
Compilare l'oggetto BLOB
richiamando il relativo metodo setBinaryData
e passando la matrice dei byte come argomento.
Creare un oggetto RenderOptionsSpec
utilizzando il relativo costruttore. Impostare il valore delle impostazioni internazionali richiamando il metodo setLocale
dell'oggetto RenderOptionsSpec
e passando un valore di stringa che specifica il valore delle impostazioni internazionali.
Richiama il metodo processFormSubmission
dell'oggetto FormsServiceClient
e passa i seguenti valori:
BLOB
che contiene i dati del modulo.HTTP_REFERER=referrer&HTTP_CONNECTION=keep-alive&CONTENT_TYPE=application/xml
HTTP_USER_AGENT
; ad esempio, Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
.RenderOptionsSpec
che memorizza le opzioni di esecuzione. Per ulteriori informazioni, .BLOBHolder
vuoto compilato dal metodo .javax.xml.rpc.holders.StringHolder
vuoto compilato dal metodo .BLOBHolder
vuoto compilato dal metodo .BLOBHolder
vuoto compilato dal metodo .javax.xml.rpc.holders.ShortHolder
vuoto compilato dal metodo .MyArrayOf_xsd_anyTypeHolder
vuoto compilato dal metodo . Questo parametro viene utilizzato per memorizzare gli allegati dei file inviati insieme al modulo.FormsResultHolder
vuoto compilato dal metodo con il modulo inviato.Il metodo processFormSubmission
compila il parametro FormsResultHolder
con i risultati dell’invio del modulo. Il metodo processFormSubmission
restituisce un oggetto FormsResult
contenente i risultati dell'invio del modulo.
Verificare che lo stato di elaborazione associato a un modulo inviato sia 1
richiamando il metodo FormsResult
dell'oggetto getAction
. Se questo metodo restituisce il valore 1
, il calcolo è stato eseguito e i dati possono essere riscritti nel browser Web client.
Riscrittura del flusso di dati del modulo nel browser Web client
javax.servlet.ServletOutputStream
utilizzato per inviare un flusso di dati del modulo al browser Web client.BLOB
che contiene dati del modulo richiamando il metodo FormsResult
dell'oggetto getOutputContent
.getBinaryData
dell'oggetto BLOB
. Questa attività assegna il contenuto dell'oggetto FormsResult
all'array di byte.write
dell’oggetto javax.servlet.http.HttpServletResponse
per inviare il flusso di dati del modulo al browser Web client. Passa l'array di byte al metodo write
.Consulta anche
Richiamo di AEM Forms con codifica Base64