Conseils pour le débogage

Suivez les conseils ci-dessous pour déboguer des calculs ou des scripts.

Données d’exemple

Pensez à spécifier un fichier de données d’aperçu dans la boîte de dialogue Propriétés du formulaire. Le fait de spécifier un fichier de données d’aperçu n’enregistre pas les données dans le PDF final.

Gabarit

Pour déboguer un gabarit, placez un objet différent sur chaque gabarit pour savoir lequel est spécifié.

Première page d’un formulaire

Designer regarde au niveau du sous-formulaire racine pour déterminer à quelle page démarrer le formulaire. Si le sous-formulaire racine ne permet pas de déterminer la première page, c’est le premier gabarit qui est utilisé par défaut.

Débogage incrémentiel

Pour déboguer une conception de formulaire, commencez par retirer des parties du formulaire jusqu’à ce que le problème ne se produise plus. Essayez d’isoler la source du problème après avoir passé en revue chaque script et chaque propriété d’objet. Pour déboguer les sous-formulaires, vous pouvez spécifier une bordure de couleur épaisse autour du sous-formulaire ou utiliser un remplissage Les couleurs et les remplissages permettent d’indiquer quel sous-formulaire est utilisé ainsi que son étendue. Généralement, cette technique fonctionne bien lorsqu’il s’agit de déterminer les limites d’un objet et la raison pour laquelle il est placé à un certain endroit.

Vue Hiérarchie

Visualisez votre conception de formulaire avec la vue Hiérarchie afin d’en avoir une meilleure perception. L’ordre des objets figurant dans cette arborescence correspond à l’ordre dans lequel ils apparaissent sur la page. Certains objets, s’ils apparaissent en dessous d’autres objets, ne peuvent pas être suivis.

Messages d’erreur relatifs aux scripts

Dans Designer, les messages d’erreur relatifs aux scripts sont affichés dans l’onglet Journal de la palette Rapport en mode de prévisualisation du formulaire. Si la conception de formulaire contient des scripts FormCalc et que l’erreur se produit sur le serveur, les avertissements s’affichent dans l’onglet Journal. Si l’erreur de scripts FormCalc se produit sur le client, le message apparaît dans Acrobat Reader ou Acrobat.

Une erreur dans un script FormCalc empêche l’ensemble du script d’être exécuté.

En cas d’erreur dans un script JavaScript, celui-ci est exécuté jusqu’à ce qu’il atteigne l’erreur.

Erreurs de syntaxe dans FormCalc

Les erreurs de syntaxe dans FormCalc sont parfois difficiles à résoudre. Lorsque le message « Erreur de syntaxe près du jeton %1, sur la ligne %2, de la colonne %3 » apparaît, %1 contient généralement le jeton (mot) le plus près de l’erreur. Il se peut donc que le jeton soit correct et qu’il n’ait rien à voir avec l’erreur, si ce n’est la proximité au problème. Par exemple, le script suivant génère l’erreur 7008 : « Erreur de syntaxe près du jeton ’then’ sur la ligne x, colonne y ».

var b = abc(1) 
if (b ne 1) then 
//comment 

Le problème vient du fait qu’il manque un jeton endif dans le script. Le dernier jeton correct est then (Les commentaires ne sont pas considérés comme des jetons). L’ajout d’une instruction endif à la fin du script résout le problème.

Fonctions définies dans un objet de script

Vous pouvez uniquement appeler une fonction définie dans un objet de script s’il s’agit d’un script JavaScript. Veillez à modifier le langage de script en JavaScript dans l’éditeur de script. Si vous ne le faites pas, un message s’affichera indiquant que Designer n’est pas en mesure de résoudre l’objet de script. La même erreur peut se produire lorsqu’une erreur de syntaxe se produit dans l’objet de script.

Opérations de services Web

Pour créer des opérations de services Web, utilisez l’événement postExecute pour voir ce qui a été renvoyé et si le service Web a généré des messages d’erreur.

Expressions SOM longues

Pour taper une expression SOM longue à plusieurs calques, appuyez sur la touche Ctrl et cliquez sur l’objet dans la zone de travail. Cette commande permet d’insérer l’expression SOM de l’objet dans le script. L’expression SOM dépend de l’objet hébergeant le script. Pour insérer l’expression SOM absolue, appuyez sur Ctrl+Shift et cliquez sur l’objet. Ces commandes fonctionnent si vous cliquez sur les objets dans la vue Conception et non dans la vue Hiérarchie.

Tester les expressions SOM

Si une expression SOM longue échoue, revenez à la racine de l’expression et testez chaque point avec className jusqu’à ce que vous atteigniez le problème. Par exemple, testez a.b.c.d en démarrant à la racine :

  • console.println(a.className)

  • console.println(a.b.className)

  • console.println(a.b.c.className)

  • console.println(a.b.c.d.className)

Utiliser des objets de script pour déboguer des conceptions de formulaires

Utilisez un objet de script (un fragment par exemple) pour déboguer des conceptions de formulaire :

  • Extrayez une hiérarchie de nœuds sous un nœud.

  • Extrayez la valeur d’une propriété ou d’un attribut d’un nœud.

  • Extrayez et regardez si le nœud a une propriété ou un attribut spécifié(e).

  • Extrayez l’expression SOM d’un nœud.

  • Extrayez le xml src d’un nœud donné.

Voici l’exemple d’un objet de script contenant plusieurs fonctions de débogage :

<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>

Avertissements

  • Appel xfa.layout.relayout(). sur le docReady even entraîne des problèmes, car l’événement docReady se déclenche à chaque fois que la disposition est prête.

  • Placer un conteneur enchaîné à l’intérieur d’un conteneur positionné entraîne des problèmes de sauts de page, de chevauchement d’objets et de répétition de sous-formulaires. Le sous-formulaire racine est un conteneur enchaîné. Utilisez-le et placez-y vos conteneurs enchaînables en excluant les sous-formulaires une fois votre disposition terminée. Vous pouvez également définir l’enchaînement des sous-formulaires sur Enchaîné.

  • Problème de page vierge (Acrobat 7.1 ou versions antérieures) Au moment de la conception, une page vierge s’affiche lorsque le sous-formulaire ne rentre pas dans les limites de la zone de contenu. Pour supprimer cette page vierge, redimensionnez le sous-formulaire ou divisez-le en plusieurs pages. Si l’ordinateur de l’utilisateur est équipé d’Acrobat 7.1 ou d’une version antérieure, le sous-formulaire de deuxième niveau apparaît sur une autre page.