Assemblaggio di una struttura di modulo assemblata mediante frammenti
È possibile assemblare una struttura di modulo da passare al servizio Forms in base a più frammenti. Per assemblare più frammenti, utilizzare il servizio Assembler. Per visualizzare un esempio di utilizzo del servizio Assemble per la creazione di una struttura di modulo utilizzata da altri servizi Forms (il servizio di output), vedere Creazione di documenti PDF tramite frammenti. Invece di utilizzare il servizio di output, puoi eseguire lo stesso flusso di lavoro utilizzando il servizio Forms.
Quando si utilizza il servizio Assembler, si passa una progettazione di modulo che è stata assemblata utilizzando frammenti. La struttura del modulo creata non fa riferimento ad altri frammenti. In questo argomento viene invece illustrato come passare al servizio Forms una struttura di modulo che fa riferimento ad altri frammenti. Tuttavia, la progettazione del modulo non è stata assemblata da Assembler. È stato creato in Designer.
Riepilogo dei passaggi
Per eseguire il rendering di un modulo basato su frammenti, effettuare le seguenti operazioni:
- Includi file di progetto.
- Crea un oggetto API client di Forms.
- Specifica i valori URI.
- Eseguire il rendering del modulo.
- Scrivere il flusso di dati del modulo nel browser Web client.
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.
Specificare valori URI
Per eseguire correttamente il rendering di un modulo basato su frammenti, è necessario assicurarsi che il servizio Forms sia in grado di individuare sia il modulo che i frammenti (i file XDP) a cui fa riferimento il progetto del modulo. Si supponga ad esempio che il modulo sia denominato PO.xdp e che utilizzi due frammenti denominati FooterUS.xdp e FooterCanada.xdp. In questa situazione, il servizio Forms deve essere in grado di individuare tutti e tre i file XDP.
È possibile organizzare un modulo e i relativi frammenti posizionando il modulo in una posizione e i frammenti in un'altra, oppure è possibile posizionare tutti i file XDP nella stessa posizione. Ai fini di questa sezione, supponiamo che tutti i file XDP siano presenti nell’archivio AEM Forms. Per informazioni sul posizionamento dei file XDP nell'archivio di AEM Forms, vedere Scrittura delle risorse.
Quando si esegue il rendering di un modulo basato su frammenti, è necessario fare riferimento solo al modulo stesso e non ai frammenti. Ad esempio, è necessario fare riferimento a PO.xdp e non a FooterUS.xdp o FooterCanada.xdp. Assicurati di posizionare i frammenti in una posizione in cui il servizio Forms possa individuarli.
Rendering del modulo
Un modulo basato su frammenti può essere renderizzato nello stesso modo dei moduli non frammentati. In altre parole, è possibile eseguire il rendering del modulo come PDF, HTML o Guide del modulo (obsoleto). Nell'esempio di questa sezione viene eseguito il rendering di un modulo basato su frammenti come modulo PDF interattivo. (Vedi Rendering dei PDF forms interattivi.)
Scrivere il flusso di dati del modulo nel browser Web client
Quando il servizio Forms esegue il rendering di un modulo, restituisce un flusso di dati del modulo che è necessario scrivere nel browser Web client. Quando viene scritto nel browser Web client, il modulo è visibile all'utente.
Consulta anche
Eseguire il rendering di moduli basati su frammenti utilizzando l’API Java
Eseguire il rendering di moduli basati su frammenti utilizzando l’API del servizio web
Inclusione dei file della libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Guida introduttiva all’API di servizio Forms
Eseguire il rendering di moduli basati su frammenti utilizzando l’API Java
Eseguire il rendering di un modulo basato su frammenti 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
- Creare un oggetto
ServiceClientFactory
contenente le proprietà di connessione. - Creare un oggetto
FormsServiceClient
utilizzando il relativo costruttore e passando l'oggettoServiceClientFactory
.
- Creare un oggetto
-
Specificare i valori URI
- Creare un oggetto
URLSpec
che memorizza i valori URI utilizzando il relativo costruttore. - Richiama il metodo
setApplicationWebRoot
dell'oggettoURLSpec
e passa un valore stringa che rappresenta la radice web dell'applicazione. - Richiama il metodo
setContentRootURI
dell'oggettoURLSpec
e passa un valore stringa che specifica il valore URI della radice del contenuto. Assicurati che la progettazione del modulo e i frammenti siano nell’URI della directory principale del contenuto. In caso contrario, il servizio Forms genera un'eccezione. Per fare riferimento all'archivio, specificarerepository://
. - Richiama il metodo
setTargetURL
dell'oggettoURLSpec
e passa un valore stringa che specifica il valore dell'URL di destinazione in cui vengono inviati i dati del modulo. Se definisci l’URL di destinazione nella progettazione del modulo, puoi trasmettere una stringa vuota. È inoltre possibile specificare l'URL a cui viene inviato un modulo per eseguire i calcoli.
- Creare un oggetto
-
Rendering del modulo
Richiama il metodo
renderPDFForm
dell'oggettoFormsServiceClient
e passa i seguenti valori:- Valore stringa che specifica il nome della struttura del modulo, inclusa l'estensione del nome file. Se si fa riferimento a una struttura di modulo che fa parte di un'applicazione Forms, assicurarsi di specificare il percorso completo, ad esempio
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
. - Oggetto
com.adobe.idp.Document
contenente dati da unire al modulo. Se non si desidera unire i dati, passare un oggettocom.adobe.idp.Document
vuoto. - Un oggetto
PDFFormRenderSpec
che memorizza le opzioni di runtime. - Oggetto
URLSpec
contenente i valori URI richiesti dal servizio Forms per il rendering di un modulo basato su frammenti. - Oggetto
java.util.HashMap
che memorizza gli allegati. Questo è un parametro facoltativo ed è possibile specificarenull
se non si desidera allegare file al modulo.
Il metodo
renderPDFForm
restituisce un oggettoFormsResult
che contiene un flusso di dati del modulo che deve essere scritto nel browser Web client. - Valore stringa che specifica il nome della struttura del modulo, inclusa l'estensione del nome file. Se si fa riferimento a una struttura di modulo che fa parte di un'applicazione Forms, assicurarsi di specificare il percorso completo, ad esempio
-
Scrivere il flusso di dati del modulo nel browser Web client
- Creare un oggetto
com.adobe.idp.Document
richiamando il metodogetOutputContent
dell'oggettoFormsResult
. - Ottenere il tipo di contenuto dell'oggetto
com.adobe.idp.Document
richiamando il relativo metodogetContentType
. - Impostare il tipo di contenuto dell'oggetto
javax.servlet.http.HttpServletResponse
richiamando il relativo metodosetContentType
e passando il tipo di contenuto dell'oggettocom.adobe.idp.Document
. - Creare un oggetto
javax.servlet.ServletOutputStream
utilizzato per scrivere il flusso di dati del modulo nel browser Web client richiamando il metodogetOutputStream
dell'oggettojavax.servlet.http.HttpServletResponse
. - Creare un oggetto
java.io.InputStream
richiamando il metodogetInputStream
dell'oggettocom.adobe.idp.Document
. - Creare una matrice di byte popolarla con il flusso di dati del modulo richiamando il metodo
read
dell'oggettoInputStream
e passando la matrice di byte come argomento. - Richiama il metodo
write
dell'oggettojavax.servlet.ServletOutputStream
per inviare il flusso di dati del modulo al browser Web client. Passare la matrice di byte al metodowrite
.
- Creare un oggetto