Le capacità di assemblaggio dinamico del servizio Assembler consentono di unire i file XDP e di posizionare i frammenti nei punti di inserimento nei file XDP. Se i form designer utilizzano il comportamento predefinito di LiveCycle Designer ES2 di riferimento relativo a frammenti e immagini, altri servizi LiveCycle ES2 a volte hanno problemi di assemblaggio e rendering del modulo. In particolare, possono verificarsi questi problemi:
- Incapacità di risolvere i riferimenti relativi alle immagini che appaiono all'interno dei frammenti
- Mancata risoluzione di moduli XDP e frammenti che utilizzano riferimenti relativi ai frammenti
Queste limitazioni saranno risolte in un futuro service pack.
Utilizzo di frammenti e immagini per creare moduli
LiveCycle ES2 Designer e il servizio Assembler consentono di creare modelli di moduli XML che includono frammenti. Un frammento è una parte di un modulo che viene utilizzato in altri moduli. L'utilizzo di frammenti semplifica e velocizza la creazione e la manutenzione di un gran numero di moduli.
- Designer permette ai progettisti di creare moduli che includono frammenti.
- A partire da LiveCycle ES2 (9.0), il servizio Assembler supporta l'assemblaggio dinamico XDP, dove i documenti DDX specificano l'inserimento di frammenti in un modulo. (L'assemblaggio dinamico XDP può anche assemblare più documenti XDP in un unico documento XDP.) L'assemblaggio dinamico XDP migliora il supporto di Designer per i frammenti di modulo; cioè, utilizzando Design e l'assemblaggio dinamico XDP per includere i frammenti in un modulo in cui sono compatibili.
Ecco un'illustrazione che mostra come i frammenti e le immagini possono essere utilizzati in un modulo base. Il modulo base fa riferimento a due frammenti. Uno di quei frammenti fa riferimento ad un'immagine. Il modulo inferiore mostra l'aspetto del modulo assemblato e renderizzato.
Usare Designer per creare moduli che includono frammenti
I progettisti di moduli possono inserire frammenti in un modulo selezionando un frammento da una libreria di frammenti. Nella versione XML del modulo, Designer inserisce i riferimenti corrispondenti ai frammenti. Per impostazione predefinita, questi riferimenti sono relativi.
I sottomoduli di un modulo esistente possono essere estratti come frammento nella libreria dei frammenti. In questo caso, il form designer può sostituire il sottomodulo con un riferimento al frammento estratto (che è il comportamento predefinito) o mantenere il contenuto del sottomodulo così com'è.
Usare Designer per creare moduli che includono immagini
Quando i form designer aggiungono oggetti immagine a un modulo, possono specificare un URL o navigare fino alla posizione dell'immagine. In quest'ultimo caso, Designer di default utilizza un riferimento relativo per identificare la posizione del file immagine.
Problema:
Quando il servizio Moduli o Output rende un modulo XDP, non può risolvere i riferimenti relativi alle immagini (per esempio ../myImage.jpg) che appaiono all'interno dei frammenti utilizzati per costruire il modulo. Con i moduli XDP che hanno immagini non risolte, questi servizi rendono il modulo XDP, ma il risultato omette le immagini non risolte. Forniscono anche un avviso che indica che le immagini non possono essere risolte.
Soluzione:
I form designer possono assicurarsi che il servizio Moduli o Output possa risolvere i riferimenti dell'immagine incorporando l'immagine nel modulo o cambiando il riferimento dell'immagine in un URL assoluto che localizzi correttamente l'immagine. Ecco un esempio di URL assoluto: File:///myDirectory/myImage.jpg. Il comportamento predefinito di Designer ES2 è quello di utilizzare riferimenti relativi alle immagini.
Utilizzo del servizio Assembler per creare moduli che includono frammenti (assieme dinamico XDP)
Con l'assemblaggio dinamico XDP, gli sviluppatori creano documenti DDX che indirizzano il servizio Assembler per importare i frammenti nei punti di inserimento all'interno di un modello di modulo XML. Questi documenti DDX possono anche importare frammenti nei punti di inserimento di un altro frammento. Le espressioni DDX non possono specificare immagini da importare in un modulo o frammento. Invece, i form designer creano riferimenti di immagine.
Problema:
Quando il servizio Assembler elabora un documento DDX che specifica una sorgente XDP come oggetto documento (tramite la mappa di input) o come URL di file, non può risolvere i riferimenti relativi ai frammenti che appaiono all'interno di quella sorgente XDP. Inoltre, non può risolvere i riferimenti relativi a frammenti che appaiono all'interno di altri frammenti inclusi nella sorgente XDP (frammenti annidati). Ecco un esempio di un riferimento relativo ../myForm.xdp.
Al contrario, se il documento DDX utilizza un'applicazione o un URL di repository per specificare la sorgente XDP, e se il modulo XDP e i frammenti utilizzano anche URL di applicazioni o repository, allora il servizio Assembler può risolvere riferimenti relativi e assoluti ai frammenti.
Quando il servizio Assembler non è in grado di risolvere i riferimenti ai frammenti, termina il lavoro con questo errore:
L'operazione nome-operazione non è riuscita sul nome XDP.
L'XFA Dynamic assembler non è riuscito a rintracciare un frammento.
Soluzione:
Esistono due modi per risolvere questo inconveniente:
- Usa solo URL di applicazioni o repository per i tuoi riferimenti DDX e XDP. Tutti i riferimenti nel modulo DDX e XDP e i frammenti devono utilizzare in modo coerente gli URL dell'applicazione o del repository. All'interno della forma XDP e dei frammenti, questi riferimenti possono essere relativi.
- Utilizzare solo riferimenti assoluti all'interno del modulo XDP e dei frammenti. (Questa soluzione si applica solo se gli URL dell'applicazione o del repository non possono essere utilizzati in modo coerente). Quando i form designer aggiungono un frammento ad un modulo XDP (o ad un altro frammento), Designer ES2 crea un riferimento al frammento. Per impostazione predefinita, il riferimento è un riferimento relativo ad una libreria di frammenti. I form designer possono garantire che il servizio Assembler possa risolvere i riferimenti dei frammenti cambiando il riferimento relativo con un riferimento assoluto.