Gli esempi e gli esempi contenuti in questo documento sono solo per l’ambiente AEM Forms su JEE.
Il servizio Forms può calcolare i valori immessi da un utente in un modulo e visualizzarne i risultati. Per calcolare i dati del modulo, è necessario eseguire due attività. Innanzitutto, è possibile creare uno script di progettazione del modulo che calcola i dati del modulo. La progettazione di un modulo supporta tre tipi di script. Un tipo di script viene eseguito sul client, un altro sul server e il terzo sul server e 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 guida ai moduli (obsolete).
Come parte del processo di progettazione del modulo, è possibile utilizzare calcoli e script per fornire un’esperienza utente più ricca. È possibile aggiungere calcoli e script alla maggior parte dei campi e degli oggetti del modulo. È necessario creare uno script di progettazione del modulo per eseguire operazioni di calcolo sui dati immessi da un 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 esempio di applicazione che consente a un utente di calcolare i dati:
GetLoanForm
.GetLoanForm
servlet esegue il rendering di un modulo prestito. Questo modulo contiene uno script, campi interattivi, un pulsante di calcolo e un pulsante di invio.CalculateData
Servlet Java in cui viene eseguito lo script. Il modulo viene inviato nuovamente all’utente con i risultati del calcolo visualizzati nel modulo.ProcessForm
che è responsabile del recupero dei dati inviati. (vedere Gestione dei Forms inviati.)Il diagramma seguente mostra il flusso logico dell’applicazione.
Nella tabella seguente vengono descritti i passaggi del diagramma.
Passaggio |
Descrizione |
---|---|
1 |
Il |
2 |
Il |
3 |
L’utente immette i dati nei 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 del calcolo visualizzati nel modulo. |
5 |
Quando i valori sono soddisfacenti, l’utente fa clic sul pulsante Invia. Il modulo viene inviato a un altro servlet Java denominato |
In genere, un modulo inviato come contenuto PDF contiene script eseguiti sul client. Tuttavia, è anche possibile eseguire calcoli lato server. Impossibile 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 di progettazione di un modulo, in questa sezione viene esaminato un semplice modulo interattivo contenente uno script configurato per l'esecuzione sul server. Nel diagramma seguente viene illustrata una struttura di modulo contenente uno script che consente di aggiungere valori immessi da un utente nei primi due campi e di visualizzare il risultato nel terzo campo.
R. Campo denominato NumericField1 B. Campo denominato NumericField2 C. Campo denominato NumericField3
La sintassi dello script presente in questa struttura di modulo è la seguente:
NumericField3 = NumericField2 + NumericField1
In questa struttura di modulo, il pulsante Calcola è un pulsante di comando e lo script si trova nel pulsante Click
evento. 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 restituisce il modulo al dispositivo client con i risultati del calcolo visualizzati nel campo NumericField3.
Per informazioni sulla creazione di uno script di progettazione del modulo, vedere Forms Designer.
Per ulteriori informazioni sul servizio Forms, consulta Guida di riferimento dei servizi per AEM Forms.
Per calcolare i dati del modulo, effettuare le seguenti operazioni:
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, accertati di includere i file proxy.
Creare un oggetto API client di Forms
Prima di poter eseguire a livello di programmazione un'operazione API client del servizio Forms, è necessario creare un client del servizio Forms. Se utilizzi l’API Java, crea un’ FormsServiceClient
oggetto. Se utilizzi l’API del servizio web Forms, crea un’ FormsServiceService
oggetto.
Recuperare un modulo contenente uno script di calcolo
Utilizzare l'API client del servizio Forms per creare una logica dell'applicazione che gestisce un modulo contenente uno script configurato per l'esecuzione sul server. Il processo è simile alla gestione di un modulo inviato. (vedere Gestione dei Forms inviati.)
Verifica 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 devono essere riscritti all’utente. In questa situazione, uno script configurato per l'esecuzione sul server viene eseguito automaticamente.
Riscrivere il 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 viene visualizzato il modulo, il valore calcolato viene visualizzato nel campo o nei campi appropriati.
Consulta anche
Inclusione dei file della libreria Java di AEM Forms
Calcolare i dati del modulo utilizzando l’API Java
Calcolare i dati del modulo utilizzando l’API del servizio web
Impostazione delle proprietà di connessione
Guida introduttiva all’API di servizio Forms
Rendering dei 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 i file JAR client, ad esempio adobe-forms-client.jar nel percorso di classe del progetto Java.
Creare un oggetto API client di Forms
ServiceClientFactory
oggetto che contiene proprietà di connessione.FormsServiceClient
mediante il costruttore e passando il ServiceClientFactory
oggetto.Recuperare un modulo contenente uno script di calcolo
Per recuperare i dati del modulo che contengono uno script di calcolo, creare un com.adobe.idp.Document
mediante il costruttore e richiamando l'oggetto javax.servlet.http.HttpServletResponse
dell'oggetto getInputStream
metodo dall'interno del costruttore.
Richiama FormsServiceClient
dell'oggetto processFormSubmission
e trasmettere i seguenti valori:
com.adobe.idp.Document
oggetto che contiene i dati del modulo.CONTENT_TYPE
variabile di ambiente. 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
valore intestazione; ad esempio, Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
.RenderOptionsSpec
oggetto che memorizza le opzioni di runtime.Il processFormSubmission
il metodo restituisce un FormsResult
oggetto contenente i risultati dell’invio del modulo.
Verificare che lo stato di elaborazione associato a un modulo inviato sia 1
richiamando il FormsResult
dell'oggetto getAction
metodo. Se questo metodo restituisce il valore 1
, il calcolo è stato eseguito e i dati possono essere scritti nuovamente sul browser web client.
Riscrivere il flusso di dati del modulo nel browser Web client
javax.servlet.ServletOutputStream
oggetto utilizzato per inviare un flusso di dati modulo al browser web client.com.adobe.idp.Document
oggetto richiamando il FormsResult
oggetto "s getOutputContent
metodo.java.io.InputStream
oggetto richiamando il com.adobe.idp.Document
dell'oggetto getInputStream
metodo.InputStream
dell'oggetto read
e passando la matrice di byte come argomento.javax.servlet.ServletOutputStream
dell'oggetto write
metodo per inviare il flusso di dati del modulo al browser web client. Passare la matrice di byte al write
metodo.Consulta anche
Inclusione dei file della libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Calcola i dati del modulo utilizzando l’API di Forms (servizio web):
Includi file di progetto
Creare un oggetto API client di Forms
Creare un FormsService
e impostare i valori di autenticazione.
Recuperare un modulo contenente uno script di calcolo
Per recuperare i dati del modulo inviati a un servlet Java, crea un BLOB
mediante il costruttore.
Creare un java.io.InputStream
oggetto utilizzando javax.servlet.http.HttpServletResponse
dell'oggetto getInputStream
metodo.
Creare un java.io.ByteArrayOutputStream
dell'oggetto utilizzando il relativo costruttore e passando la lunghezza del java.io.InputStream
oggetto.
Copia il contenuto del java.io.InputStream
oggetto in java.io.ByteArrayOutputStream
oggetto.
Creare una matrice di byte richiamando java.io.ByteArrayOutputStream
dell'oggetto toByteArray
metodo.
Popolare il BLOB
oggetto richiamando il relativo setBinaryData
e passando la matrice di byte come argomento.
Creare un RenderOptionsSpec
mediante il costruttore. Impostare il valore locale richiamando RenderOptionsSpec
dell'oggetto setLocale
e passando un valore stringa che specifica il valore locale.
Richiama FormsServiceClient
dell'oggetto processFormSubmission
e trasmettere i seguenti valori:
BLOB
oggetto che contiene i dati del modulo.HTTP_REFERER=referrer&HTTP_CONNECTION=keep-alive&CONTENT_TYPE=application/xml
HTTP_USER_AGENT
valore intestazione; ad esempio, Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
.RenderOptionsSpec
oggetto che memorizza le opzioni di runtime. Per ulteriori informazioni, .BLOBHolder
oggetto popolato dal metodo.javax.xml.rpc.holders.StringHolder
oggetto popolato dal metodo.BLOBHolder
oggetto popolato dal metodo.BLOBHolder
oggetto popolato dal metodo.javax.xml.rpc.holders.ShortHolder
oggetto popolato dal metodo.MyArrayOf_xsd_anyTypeHolder
oggetto popolato dal metodo. Questo parametro viene utilizzato per memorizzare gli allegati dei file inviati insieme al modulo.FormsResultHolder
oggetto popolato dal metodo con il modulo inviato.Il processFormSubmission
il metodo compila FormsResultHolder
con i risultati dell'invio del modulo. Il processFormSubmission
il metodo restituisce un FormsResult
oggetto contenente i risultati dell’invio del modulo.
Verificare che lo stato di elaborazione associato a un modulo inviato sia 1
richiamando il FormsResult
dell'oggetto getAction
metodo. Se questo metodo restituisce il valore 1
, il calcolo è stato eseguito e i dati possono essere scritti nuovamente sul browser web client.
Riscrivere il flusso di dati del modulo nel browser Web client
javax.servlet.ServletOutputStream
oggetto utilizzato per inviare un flusso di dati modulo al browser web client.BLOB
oggetto che contiene i dati del modulo richiamando FormsResult
dell'oggetto getOutputContent
metodo.BLOB
dell'oggetto getBinaryData
metodo. Questa attività assegna il contenuto del FormsResult
alla matrice di byte.javax.servlet.http.HttpServletResponse
dell'oggetto write
metodo per inviare il flusso di dati del modulo al browser web client. Passare la matrice di byte al write
metodo.Vedi anche
Richiamare AEM Forms utilizzando la codifica Base64