Trasmissione di documenti al servizio Forms passing-documents-to-the-formsservice

Gli esempi e gli esempi contenuti in questo documento sono solo per AEM Forms in ambiente JEE.

Il servizio AEM Forms esegue il rendering dei PDF forms interattivi sui dispositivi client, in genere i browser web, per raccogliere informazioni dagli utenti. Un modulo di PDF interattivo si basa su una struttura di modulo che in genere viene salvata come file XDP e creata in Designer. In AEM Forms, è possibile passare un oggetto com.adobe.idp.Document che contiene la struttura del modulo al servizio Forms. Il servizio Forms esegue quindi il rendering della struttura del modulo nell'oggetto com.adobe.idp.Document.

Un vantaggio del passaggio di un oggetto com.adobe.idp.Document al servizio Forms è che altre operazioni del servizio restituiscono un'istanza com.adobe.idp.Document. In altre parole, è possibile ottenere un'istanza com.adobe.idp.Document da un'altra operazione di servizio ed eseguirne il rendering. Si supponga, ad esempio, che un file XDP sia memorizzato in un nodo Content Services (obsoleto) denominato /Company Home/Form Designs, come illustrato nella figura seguente.

È possibile recuperare in modo programmatico Loan.xdp da Content Services (obsoleto) (obsoleto) e passare il file XDP al servizio Forms in un oggetto com.adobe.idp.Document.

NOTE
Per ulteriori informazioni sul servizio Forms, vedere Riferimento ai servizi per AEM Forms.

Riepilogo dei passaggi summary-of-steps

Per passare un documento ottenuto da Content Services (obsoleto) (obsoleto) al servizio Forms, eseguire le operazioni seguenti:

  1. Includi file di progetto.
  2. Creare un oggetto Forms e un oggetto API Client di Document Management.
  3. Recupera la progettazione del modulo da Content Services (obsoleto).
  4. Esegui il rendering del modulo di PDF interattivo.
  5. Eseguire un'azione con il flusso di dati del modulo.

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 si utilizzano servizi Web, includere i file proxy.

Creare un oggetto API client di gestione documenti e Forms

Prima di poter eseguire un'operazione API del servizio Forms a livello di programmazione, creare un oggetto API del client Forms. Inoltre, poiché questo flusso di lavoro recupera un file XDP da Content Services (obsoleto), crea un oggetto API di gestione dei documenti.

Recupera la progettazione del modulo da Content Services (obsoleto)

Recupera il file XDP da Content Services (obsoleto) utilizzando l’API Java o del servizio web. Il file XDP viene restituito all'interno di un'istanza com.adobe.idp.Document (o di un'istanza BLOB se si utilizzano i servizi Web). È quindi possibile passare l'istanza com.adobe.idp.Document al servizio Forms.

Eseguire il rendering di un modulo PDF interattivo

Per eseguire il rendering di un modulo interattivo, passare l'istanza com.adobe.idp.Document restituita da Content Services (obsoleta) al servizio Forms.

NOTE
È possibile passare un com.adobe.idp.Document che contiene la struttura del modulo al servizio Forms. Due nuovi metodi denominati renderPDFForm2 e renderHTMLForm2 accettano un oggetto com.adobe.idp.Document che contiene una struttura di modulo.

Esegui un'azione con il flusso di dati del modulo

A seconda del tipo di applicazione client, è possibile scrivere il modulo in un browser Web client o salvarlo come file PDF. In genere, un'applicazione basata sul Web scrive il modulo nel browser Web. Tuttavia, un'applicazione desktop in genere salva il modulo come file PDF.

Consulta anche

Inclusione dei file della libreria Java di AEM Forms

Impostazione delle proprietà di connessione

Guida introduttiva all’API di servizio Forms

Trasmettere i documenti al servizio Forms tramite API Java pass-documents-to-the-forms-service-using-the-java-api

Passa un documento ottenuto da Content Services (obsoleto) utilizzando il servizio Forms e l’API Content Services (obsoleto) (Java):

  1. Includi file di progetto

    Includi i file JAR client, come adobe-forms-client.jar e adobe-contentservices-client.jar, nel percorso di classe del progetto Java.

  2. Creare un oggetto Forms e un oggetto API client di Document Management

    • Creare un oggetto ServiceClientFactory contenente le proprietà di connessione. (Vedere Impostazione delle proprietà di connessione.)
    • Creare un oggetto FormsServiceClient utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory.
    • Creare un oggetto DocumentManagementServiceClientImpl utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory.
  3. Recuperare la progettazione del modulo da Content Services (obsoleto)

    Richiama il metodo retrieveContent dell'oggetto DocumentManagementServiceClientImpl e passa i seguenti valori:

    • Valore stringa che specifica l'archivio in cui viene aggiunto il contenuto. L'archivio predefinito è SpacesStore. Questo valore è un parametro obbligatorio.
    • Valore stringa che specifica il percorso completo del contenuto da recuperare, ad esempio /Company Home/Form Designs/Loan.xdp. Questo valore è un parametro obbligatorio.
    • Valore stringa che specifica la versione. Questo valore è un parametro facoltativo e puoi trasmettere una stringa vuota. In questa situazione, viene recuperata la versione più recente.

    Il metodo retrieveContent restituisce un oggetto CRCResult che contiene il file XDP. Ottenere un'istanza com.adobe.idp.Document richiamando il metodo getDocument dell'oggetto CRCResult.

  4. Rendering di un modulo PDF interattivo

    Richiama il metodo renderPDFForm2 dell'oggetto FormsServiceClient e passa i seguenti valori:

    • Oggetto com.adobe.idp.Document contenente la struttura del modulo recuperato da Content Services (obsoleto).
    • Oggetto com.adobe.idp.Document contenente dati da unire al modulo. Se non si desidera unire i dati, passare un oggetto com.adobe.idp.Document vuoto.
    • Un oggetto PDFFormRenderSpec che memorizza le opzioni di runtime. Questo valore è un parametro facoltativo ed è possibile specificare null se non si desidera specificare le opzioni di runtime.
    • Oggetto URLSpec contenente valori URI. Questo valore è un parametro facoltativo ed è possibile specificare null.
    • Oggetto java.util.HashMap che memorizza gli allegati. Questo valore è un parametro facoltativo ed è possibile specificare null se non si desidera allegare file al modulo.

    Il metodo renderPDFForm restituisce un oggetto FormsResult che contiene un flusso di dati del modulo che deve essere scritto nel browser Web client.

  5. Eseguire un'azione con il flusso di dati del modulo

    • Creare un oggetto com.adobe.idp.Document richiamando il metodo getOutputContent dell'oggetto FormsResult.
    • Ottenere il tipo di contenuto dell'oggetto com.adobe.idp.Document richiamando il relativo metodo getContentType.
    • Impostare il tipo di contenuto dell'oggetto javax.servlet.http.HttpServletResponse richiamando il relativo metodo setContentType e passando il tipo di contenuto dell'oggetto com.adobe.idp.Document.
    • Creare un oggetto javax.servlet.ServletOutputStream utilizzato per scrivere il flusso di dati del modulo nel browser Web client richiamando il metodo getOutputStream dell'oggetto javax.servlet.http.HttpServletResponse.
    • Creare un oggetto java.io.InputStream richiamando il metodo getInputStream dell'oggetto com.adobe.idp.Document.
    • Creare una matrice di byte e popolarla con il flusso di dati del modulo richiamando il metodo read dell'oggetto InputStream. Passa la matrice di byte come argomento.
    • Richiama il metodo write dell'oggetto javax.servlet.ServletOutputStream per inviare il flusso di dati del modulo al browser Web client. Passare la matrice di byte al metodo write.

Consulta anche

Quick Start (modalità SOAP): trasmissione di documenti al servizio Forms tramite l’API Java

Inclusione dei file della libreria Java di AEM Forms

Impostazione delle proprietà di connessione

Trasmettere i documenti al servizio Forms utilizzando l’API del servizio web pass-documents-to-the-forms-service-using-the-web-service-api

Passa un documento ottenuto da Content Services (obsoleto) utilizzando il servizio Forms e Content Services (obsoleto) API (servizio web):

  1. Includi file di progetto

    Creare un progetto Microsoft .NET che utilizza MTOM. Poiché questa applicazione client richiama due servizi AEM Forms, creare due riferimenti al servizio. Utilizzare la seguente definizione WSDL per il riferimento al servizio associato al servizio Forms: http://localhost:8080/soap/services/FormsService?WSDL&lc_version=9.0.1.

    Utilizzare la seguente definizione WSDL per il riferimento al servizio associato al servizio Document Management: http://localhost:8080/soap/services/DocumentManagementService?WSDL&lc_version=9.0.1.

    Poiché il tipo di dati BLOB è comune a entrambi i riferimenti al servizio, il tipo di dati BLOB viene completamente qualificato quando viene utilizzato. Nel servizio Web corrispondente, avvio rapido, tutte le BLOB istanze sono completamente qualificate.

    note note
    NOTE
    Sostituisci localhost con l'indirizzo IP del server che ospita AEM Forms.
  2. Creare un oggetto Forms e un oggetto API client di Document Management

    • Creare un oggetto FormsServiceClient utilizzando il relativo costruttore predefinito.

    • Creare un oggetto FormsServiceClient.Endpoint.Address utilizzando il costruttore System.ServiceModel.EndpointAddress. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/FormsService?WSDL). Non è necessario utilizzare l'attributo lc_version. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.)

    • Creare un oggetto System.ServiceModel.BasicHttpBinding ottenendo il valore del campo FormsServiceClient.Endpoint.Binding. Eseguire il cast del valore restituito in BasicHttpBinding.

    • Impostare il campo MessageEncoding dell'oggetto System.ServiceModel.BasicHttpBinding su WSMessageEncoding.Mtom. Questo valore assicura che venga utilizzato MTOM.

    • Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:

      • Assegnare il nome utente dei moduli AEM al campo FormsServiceClient.ClientCredentials.UserName.UserName.
      • Assegnare il valore della password corrispondente al campo FormsServiceClient.ClientCredentials.UserName.Password.
      • Assegnare il valore costante HttpClientCredentialType.Basic al campo BasicHttpBindingSecurity.Transport.ClientCredentialType.
    • Assegnare il valore costante BasicHttpSecurityMode.TransportCredentialOnly al campo BasicHttpBindingSecurity.Security.Mode.

    note note
    NOTE
    Ripetere questi passaggi per il client del servizio DocumentManagementServiceClient.
  3. Recuperare la progettazione del modulo da Content Services (obsoleto)

    Recuperare il contenuto richiamando il metodo retrieveContent dell'oggetto DocumentManagementServiceClient e passando i valori seguenti:

    • Valore stringa che specifica l'archivio in cui viene aggiunto il contenuto. L'archivio predefinito è SpacesStore. Questo valore è un parametro obbligatorio.
    • Valore stringa che specifica il percorso completo del contenuto da recuperare, ad esempio /Company Home/Form Designs/Loan.xdp. Questo valore è un parametro obbligatorio.
    • Valore stringa che specifica la versione. Questo valore è un parametro facoltativo e puoi trasmettere una stringa vuota. In questa situazione, viene recuperata la versione più recente.
    • Parametro di output stringa che memorizza il valore del collegamento Sfoglia.
    • Un parametro di output BLOB che memorizza il contenuto. Puoi utilizzare questo parametro di output per recuperare il contenuto.
    • Un parametro di output ServiceReference1.MyMapOf_xsd_string_To_xsd_anyType che memorizza gli attributi del contenuto.
    • Un parametro di output CRCResult. Anziché utilizzare questo oggetto, è possibile utilizzare il parametro di output BLOB per ottenere il contenuto.
  4. Rendering di un modulo PDF interattivo

    Richiama il metodo renderPDFForm2 dell'oggetto FormsServiceClient e passa i seguenti valori:

    • Oggetto BLOB contenente la struttura del modulo recuperato da Content Services (obsoleto).
    • Oggetto BLOB contenente dati da unire al modulo. Se non si desidera unire i dati, passare un oggetto BLOB vuoto.
    • Un oggetto PDFFormRenderSpec che memorizza le opzioni di runtime. Questo valore è un parametro facoltativo ed è possibile specificare null se non si desidera specificare le opzioni di runtime.
    • Oggetto URLSpec contenente valori URI. Questo valore è un parametro facoltativo ed è possibile specificare null.
    • Oggetto Map che memorizza gli allegati. Questo valore è un parametro facoltativo ed è possibile specificare null se non si desidera allegare file al modulo.
    • Un parametro di output lungo utilizzato per memorizzare il conteggio delle pagine.
    • Parametro di output stringa utilizzato per memorizzare il valore delle impostazioni locali.
    • Un parametro di output FormsResult utilizzato per memorizzare il modulo di interactrive PDF .

    Il metodo renderPDFForm2 restituisce un oggetto FormsResult che contiene il modulo PDF interattivo.

  5. Eseguire un'azione con il flusso di dati del modulo

    • Creare un oggetto BLOB contenente dati del modulo ottenendo il valore del campo outputContent dell'oggetto FormsResult.
    • Creare un oggetto System.IO.FileStream richiamando il relativo costruttore. Passa un valore stringa che rappresenta la posizione del file del documento interattivo di PDF e la modalità di apertura del file.
    • Creare una matrice di byte che memorizza il contenuto dell'oggetto BLOB recuperato dall'oggetto FormsResult. Popolare la matrice di byte ottenendo il valore del membro dati MTOM dell'oggetto BLOB.
    • Creare un oggetto System.IO.BinaryWriter richiamandone il costruttore e passando l'oggetto System.IO.FileStream.
    • Scrivere il contenuto della matrice di byte in un file PDF richiamando il metodo Write dell'oggetto System.IO.BinaryWriter e passando la matrice di byte.

Consulta anche

Richiamare AEM Forms tramite MTOM

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