Durante il debug di calcoli e script tenere presente i suggerimenti riportati di seguito.
Dati campione
Ricordare di specificare un file dati di anteprima nella finestra di dialogo Proprietà del modulo. La specificazione di un file dati di anteprima non determina il salvataggio dei dati nel PDF finale.
Pagine master
Per eseguire il debug delle pagine master, posizionare un oggetto diverso su ciascuna pagina master per scoprire quale di questi è specificato.
Prima pagina di un modulo
In Designer, si esegue la ricerca nel sottomodulo principale per determinare la pagina iniziale del modulo. Se il sottomodulo principale non è in grado di determinare tale pagina, si utilizza per impostazione predefinita la prima pagina master.
Debug incrementale
Durante il debug di una struttura del modulo, iniziare rimuovendo parti del modulo fino a quando il problema smette di presentarsi. Provare a isolare la fonte del problema dopo aver controllato ogni script e proprietà oggetto. Per eseguire il debug dei sottomoduli, specificare un bordo colorato in grassetto attorno al modulo, oppure usare un riempimento. Colori o riempimenti sono utili per indicare il sottomodulo impiegato e la sua estensione. Generalmente, questa tecnica funziona bene quando si desidera determinare i contorni di un oggetto e mostrare la ragione per la quale è posizionato in una determinata area.
Visualizzazione Gerarchia
Esaminare la struttura del modulo tramite la visualizzazione Gerarchia. L'ordine degli oggetti elencati nella gerarchia indica l'ordine del loro posizionamento nella pagina. Alcuni oggetti non sono cliccabili se posizionati l'uno sotto l'altro.
Messaggi di errore script
In Designer, i messaggi di errore script appaiono sulla scheda Registro della palette Rapporto al momento dell'anteprima del modulo. Se la struttura del modulo contiene script FormCalc e si verifica un errore sul server, l'avviso è visualizzato nella scheda Registro. Se l'errore di script FormCalc si verifica sul client, il messaggio è visualizzato in Adobe Reader o Acrobat.
Un errore nello script FormCalc arresta l'esecuzione dell'intero script.
Un errore in JavaScript è eseguito fino al suo rilevamento.
Errori di sintassi in FormCalc
Gli errori di sintassi in FormCalc sono, a volte, difficili da risolvere. Se viene visualizzato il messaggio "Errore di sintassi vicino al token '%1', riga %2, colonna %3", in genere la variabile %1 contiene il token (la parola) più prossimo all'errore. Di conseguenza, il token è corretto e l'errore è identificato in termini di sua prossimità. Ad esempio, lo script di seguito genera l'errore 7008: "Errore di sintassi vicino al token 'then', riga x, colonna y."
var b = abc(1)
if (b ne 1) then
//comment
Il problema è causato dalla mancanza di un token endif nello script. L'ultimo token corretto è then (i commenti non contano come token). Per risolvere il problema, è sufficiente terminare lo script con un'istruzione endif.
Funzioni definite in un oggetto script
È possibile richiamare esclusivamente funzioni definite in un oggetto script creato in JavaScript. Assicurarsi di commutare il linguaggio di script in JavaScript all'interno dell'Editor di script. In caso contrario, è visualizzato un messaggio che avvisa dell'impossibilità di definire l'oggetto script in Designer. Lo stesso errore può occorrere in caso di un problema di natura sintattica interno all'oggetto script.
Chiamate a servizi Web
Durante la creazione di chiamate a servizi Web, utilizzare l'evento postExecute per vedere cosa è restituito e se il servizio Web genera eventuali messaggi di errore.
Espressioni SOM lunghe
Durante la digitazione di un'espressione SOM lunga a più livelli, premere il tasto Ctrl e fare clic sull'oggetto posizionato all'interno della tela quadro. Il comando inserisce l'espressione SOM dell'oggetto all'interno dello script. L'espressione SOM è relativa all'oggetto che ospita lo script. Per inserire l'espressione SOM assoluta, premere Ctrl+Maiusc e fare clic sull'oggetto. Questi comandi funzionano quando si fa clic sugli oggetti nella visualizzazione Struttura e non nella visualizzazione Gerarchia.
Verifica delle espressioni SOM
In caso di errore in un'espressione SOM lunga, partire dall'elemento principale dell'espressione e verificare ogni punto con className fino ad individuare il problema. Ad esempio, verificare a.b.c.d partendo dall'elemento principale:
console.println(a.className)
console.println(a.b.className)
console.println(a.b.c.className)
console.println(a.b.c.d.className)
Uso degli oggetti script per il debug di strutture del modulo
Utilizzare un oggetto script, ad esempio un frammento, per eseguire il debug delle strutture del modulo:
Eseguire il dump della gerarchia nodi al di sotto di un nodo.
Trasmettere il valore della proprietà o dell'attributo di un nodo.
Trasmettere informazioni in merito alla presenza di proprietà o attributi specifici per il nodo.
Trasmettere l'espressione SOM del nodo.
Eseguire il dump degli elementi xml src di un dato nodo.
Di seguito è presentato l'esempio di un oggetto script contenente diverse funzioni di debug:
<script contentType="application/x-javascript" name="XFADEBUG">
//This script object provides several tracing functions to help debug a form design
//Dump out node hierarchy to console.println()
function printNode(node) {... }
//Dump out SOM expression to console.println() function printSOM(node) {... }
//Dump out property or attribute value function printValue(node, attrOrPropertyName) {...}
function printXMLSource(node) { ....}
function printHasPropertySpecified(node, prop) {...}\\
</script>
Cosa evitare durante la creazione di moduli
Se si richiama xfa.layout.relayout(). in corrispondenza di docReady even, si verificano dei problemi perchè l'evento docReady viene attivato ogni volta che il layout è pronto.
Posizionare un contenitore scorrevole all'interno di uno con testo posizionato causa problemi in termini di interruzioni di pagina, sovrapposizione di oggetti e sottomoduli di ripetizione. Il sottomodulo principale è un contenitore scorrevole. Sfruttare questa caratteristica e posizionare i contenitori scorrevoli all'interno del sottomodulo principale, estraendo i sottomoduli pagina al completamento del layout. In alternativa, impostare i sottomoduli pagina su Flusso.
Problemi con pagine vuote (Acrobat 7.1 o versione precedente). In fase di progettazione, è visualizzata una pagina vuota quando il sottomodulo non si adatta ai bordi dell'area di contenuto. Per risolvere questo problema, ridurre le dimensioni del sottomodulo o consentire l'interruzione di pagina. Se si utilizza Acrobat 7.1 o la versione precedente, il sottomodulo di secondo livello è visualizzato su un'altra pagina.