Comments? Feedback?

This wiki does not yet support public comments (a limitation of Google Sites), so we encourage you to post your comments either:

On Twitter by responding to @orbeon.

On our community mailing list: subscribe sending an email to ops-users-subscribe@ow2.org (content of subject/body doesn't matter), you'll get a response with the email to use to send your message to the community mailing list.

Recent site activity

Documentation‎ > ‎I. User Guide‎ > ‎

Orbeon Form Builder - Guide Utilisateur

Contents

  1. 1 Introduction
    1. 1.1 Orbeon Form Builder
    2. 1.2 Connaissances préliminaires
    3. 1.3 Glossaire
    4. 1.4 Logiciel nécessaire
  2. 2 Cycle de vie d'un formulaire
    1. 2.1 Introduction
    2. 2.2 Publication
  3. 3 Page de sommaire de Form Builder
    1. 3.1 Utilité
    2. 3.2 Accéder à la page de sommaire
    3. 3.3 Rechercher et naviguer les définitions de formulaires
    4. 3.4 Créer une nouvelle définition de formulaire
    5. 3.5 Supprimer une définition de formulaire
    6. 3.6 Tester une définition de formulaire
  4. 4 L'éditeur de formulaire
    1. 4.1 Créer votre première définition de formulaire
    2. 4.2 Disposition générale de Form Builder
    3. 4.3 Barre du sommet
    4. 4.4 Barre du fond
  5. 5 La boîte à outils de Form Builder
    1. 5.1 Couper, copier et coller
    2. 5.2 Contrôles
    3. 5.3 Bouton "Nouvelle section"
    4. 5.4 Bouton "Nouvelle grille"
    5. 5.5 Contrôles texte
    6. 5.6 Contrôles typés
    7. 5.7 Contrôles de sélection
    8. 5.8 Autres contrôles
    9. 5.9 Modèles de sections
    10. 5.10 Cycle de vie des contrôles et modèles de sections dans la boîte à outils
  6. 6 La zone WYSIWYG de Form Builder
    1. 6.1 Introduction
    2. 6.2 Edition en place
    3. 6.3 Logo, titre, et description du formulaire
    4. 6.4 Sections et grilles
    5. 6.5 Cellules et contrôles
    6. 6.6 Espace réservé pour les boutons du formulaire
  7. 7 Dialogue "Détails de la section"
  8. 8 Dialogue "Détails du contrôle"
  9. 9 Dialogue "Propriétés de validation"
  10. 10 Dialogue "Edition de l'aide"
  11. 11 Editeur de listes de choix
  12. 12 Localisation du formulaire
    1. 12.1 Disponibilité
    2. 12.2 Travailler avec la localisation
  13. 13 Changer les métadonnées du formulaire
  14. 14 Génération PDF
    1. 14.1 Introduction
    2. 14.2 Disponibilité
    3. 14.3 Fonctionnement des modèles PDF
    4. 14.4 Créer un modèle PDF utilisable avec Form Builder
  15. 15 Avancé : import de Schéma XML
    1. 15.1 Disponibilité
    2. 15.2 Travailler avec un Schéma XML
  16. 16 Avancé : expressions XPath dans les dialogues "Détails du contrôle" et "Détails de la section"
    1. 16.1 Expressions XPath
    2. 16.2 Dialogue "Détails du contrôle"
    3. 16.3 Dialogue "Détails de la section"
    4. 16.4 Référencer des valeurs de contrôles
    5. 16.5 Spécifier une valeur initiale dynamique
    6. 16.6 Valeurs calculées
    7. 16.7 Scénario : vérifier le(s) rôle(s) de l'utilisateur courant
    8. 16.8 Scénario : accéder des headers HTTP lors de l'initialisation du formulaire
    9. 16.9 Scénario : vérifier le type d'un fichier joint
    10. 16.10 Scénario : valider la longueur d'une valeur
  17. 17 Avancé : services et actions
  18. 18 Avancé : services HTTP
    1. 18.1 Disponibilité
    2. 18.2 Configuration
  19. 19 Avancé : services base de données
    1. 19.1 Disponibilité
    2. 19.2 Configuration
  20. 20 Avancé : actions
    1. 20.1 Disponibilité
    2. 20.2 Introduction
    3. 20.3 Configuration de base de l'action
    4. 20.4 Passer des paramètres au service
    5. 20.5 Gérer la réponse du service
    6. 20.6 Exemples
  21. 21 Avancé : représentation XML des données du formulaire
    1. 21.1 Bases
    2. 21.2 Fichiers joints
    3. 21.3 Editer le code source du formulaire
  22. 22 Fin du document

Introduction

Orbeon Form Builder

Orbeon Form Builder est un outil visuel qui vous permet de créer et publier des formulaires rapidement depuis votre navigateur web.

Voici quelques-unes des fonctionnalités de Form Builder :
  • 100% implémenté en technologies web. Form Builder ne requiert pas d'installation de logiciel sur l'ordinateur de l'utilisateur : vous n'avez besoin que d'un navigateur récent tel que Firefox, Safari, Google Chrome ou Internet Explorer, sans installation de plugins ou d'extensions.
  • Disposition simple en grille. Form Builder utilise une disposition basée sur des sections et des grilles, dans lesquelles vous placez les éléments de formulaire. Vous vous concentrez sur les données à capturer, et non sur les détails ennuyants.
  • Richesse des contrôles et de la validation de données. Form Builder supporte la validation de types de données courants, ainsi que des fichiers et images joints. Il vous permet également d'importer votre propre Schéma XML pour la définition de types simples.
  • Sortie HTML et PDF automatique.  Les formulaires que vous créez avec Form Builder produisent automatiquement une sortie HTML et PDF élégantes.
  • Internationalisation. Avec Form Builder, tout formulaire peut facilement inclure plusieurs langues, y compris pour les libellés, l'aide, et les messages d'erreur.
  • Mode "expert" avec XForms. Pour les experts, Form Builder permet de communiquer avec le monde extérieur grâce à son éditeur de Services Web, et les auteurs avancés peuvent fournir leur propre code XForms.
  • Formulaires accessibles. Les formulaires produisent soit de l'Ajax ou un format HTML plus accessible qui n'utilise pas de scripts.
  • Environnement d'exécution intégré. D'un simple clic, vous publiez votre formulaire dans l'environnement Form Runner, et vos utilisateurs peuvent commencer à entrer des données.
  • Actions et services. Créez des services et actions simples directement depuis l'éditeur, sans programmation.

Connaissances préliminaires

Form Builder peut être utilisé sans beaucoup de connaissances techniques pour créer de nombreux types de formulaires. Certaines des fonctionnalités avancées nécessitent des connaissances techniques, mais vous n'avez pas nécessairement besoin de les utiliser, et si oui vous pouvez déléguer ces tâches puisque Form Builder se prête bien au travail en équipe.

Glossaire

Voici quelques termes utilisés dans ce document :
  • Contrôle de formulaire. Un contrôle de formulaire est un élément d'interface utilisateur tel qu'une ligne de texte, un groupe de boutons radio, un champ email ou valeur monétaire, etc.
  • Définition de formulaire. Une définition de formulaire (aussi parfois simplement appelée "un formulaire") inclut un ensemble de contrôles, une disposition de ces contrôles à l'écran, une représentation des données à capturer (par ex. un format de document en XML), et optionnellement des événements et actions définissant un comportement lorsque l'utilisateur interagit avec les contrôles, ainsi que des règles qui peuvent s'appliquer aux données.
  • Données de formulaire. Les données de formulaire sont les données capturées ou éditées par une définition de formulaire.
  • Auteur de formulaire. L'auteur du formulaire est la personne créant une définition de formulaire (en utilisant un outil visuel, ou en écrivant du code).
  • Entrée de données. Action d'entrer des données dans un formulaire.
  • Utilisateur de formulaire. L'utilisateur du formulaire, à l'opposé de l'auteur du formulaire, est la personne qui entre des données dans un formulaire.
  • Form Builder. Le logiciel, décrit dans ce document, utilisé par l'auteur du formulaire pour créer une définition de formulaire.
  • Form Runner. L'environnement d'exécution d'Orbeon Forms, qui s'occupe de présenter une définition de formulaire à l'utilisateur du formulaire.
  • Edition. Période durant laquelle le formulaire est édité dans Form Builder.
  • Exécution. Période durant laquelle le formulaire est exécuté par Form Runner, et durant laquelle l'utilisateur peut entrer des données.

Logiciel nécessaire

Sur le client, Form Builder nécessite un navigateur web moderne, par exemple :
  • Firefox 3 ou plus récent
  • Safari 3 ou plus récent
  • Google Chrome
  • Opera 10 ou plus récent
  • Internet Explorer 7 (pas recommandé) ou plus récent
Plus le navigateur est rapide, meilleure sera l'expérience de l'auteur du formulaire. Pour cette raison, le navigateur que nous recommandons le moins est Internet Explorer 7.

Les formulaires produits par Form Builder fonctionnent également sur IE 6 et des navigateurs plus anciens.


Cycle de vie d'un formulaire

Introduction

Les cas d'usage pour le déploiement de Form Builder et Form Runner peuvent varier en fonction de la configuration, mais voici un scénario typique :
  • Edition. L'auteur du formulaire
    • Initie la création d'une nouvelle définition de formulaire dans la page de sommaire de Form Builder
    • Edite la définition de formulaire dans l'éditeur de Form Builder
    • Sauvegarde la définition de formulaire
    • Teste la définition de formulaire
    • Plusieurs cycles édition/sauvegarde/test peuvent avoir lieu
    • Publie la définition de formulaire
  • Exécution. L'utilisateur du formulaire
    • Initie la création de nouvelles données de formulaire dans la page de sommaire du formulaire
    • Entre des données dans le formulaire
    • Revoit, sauvegarde, soumet, ou télécharge les données entrées
Les définitions de formulaire, ainsi que les données de formulaire, peuvent également être recherchées et supprimées.

Publication

La notion de publication est centrale à Form Builder/Form Runner.
  • En tant qu'auteur de formulaire, vous travaillez sur une définition de formulaire dans un espace spécial où le formulaire peut être modifié, sauvegardé, et testé.
  • Lorsque la définition de formulaire est prête, vous la publiez vers Form Runner.
  • Après ce moment-là :
    • le formulaire devient disponible pour les utilisateurs du formulaire pour l'entrée de données
    • Form Builder n'est plus impliqué
NOTE : En date de juin 2009, Form Builder a du support très limité pour le versionage des définition de formulaire. Vous pouvez publier un formulaire plusieurs fois, mais les nouvelles versions remplacent les anciennes. Il faut donc être prudent lors de multiples publications.


Page de sommaire de Form Builder

Utilité

La page de sommaire de Form Builder est votre point de départ lorsque vous travaillez avec Form Builder. Elle permet de :
  • Lister, chercher, et naviguer les définition de formulaire
  • Créer de nouvelles définition de formulaire
  • Editer les définition de formulaire
  • Supprimer les définition de formulaire
  • Tester les définition de formulaire
NOTE : Les définition de formulaire sont généralement stockées dans une base de données sur le serveur. En général vous ne les gardez pas sur votre propre ordinateur.

Accéder à la page de sommaire

Vous accédez à la page de sommaire depuis votre navigateur par un URL (ou adresse web) de la forme :

http://[SERVER NAME]/orbeon/fr/orbeon/builder/summary/

NOTE : Il se peut que l'URL exact soit fourni par votre organisation.

Une fois la page de sommaire visible,  vous devez voir soit une liste vide, soit une liste des définition de formulaire existantes, comme visible sur cette copie d'écran :


Pour chaque définition de formulaire, la liste montre :
  • La date de création
  • La date de dernière modification
  • Le nom d'application
  • Le nom du formulaire
  • Le titre du formulaire
  • La description du formulaire si présente
Si la liste ne tient pas entièrement sur une page, vous pouvez naviguer vers les pages supplémentaires en utilisant les flèches au bas de la liste de résultats.

Si la liste est trop large, un ascenseur horizontal apparait au fond de la liste et vous permet de naviguer horizontalement.

Par défaut, la page de sommaire liste toutes les définitions de formulaire auxquelles vous avez accès.

NOTE : En fonction de vos permissions, les champs Nom d'application/Nom de formulaire peuvent être des champs de texte, ou des menus qui restreignent votre choix.

Rechercher et naviguer les définitions de formulaires

Le sommet de la page de sommaire montre des champs de recherche. Il y a deux types de recherche :
  • Recherche libre. Ceci recherche un texte quelconque dans la définition de formulaire.
  • Recherche structurée. Ceci recherche par Nom d'application, Nom de formulaire, Titre de formulaire, ou Description de formulaire.
Pour rechercher : entrer un terme de recherche, et pressez le bouton "Rechercher" ou la touche "Enter".

Conseil : pour remettre la recherche à zéro et lister à nouveau toutes les définitions, vider tous les champs de recherche et pressez le bouton "Rechercher" ou la touche "Enter".

Créer une nouvelle définition de formulaire

Pour créer une nouvelle définition de formulaire, presser le bouton "New" au fond de la page. Ceci ouvre l'éditeur de Form Builder dans une nouvelle fenêtre ou un nouvel onglet du navigateur.

Supprimer une définition de formulaire

A l'aide des case à cocher qui apparaissent sur chaque ligne, sélectionner les définitions à supprimer, puis presser le bouton "Supprimer".

Tester une définition de formulaire

A l'aide des case à cocher qui apparaissent sur chaque ligne, sélectionner une seule définitions à tester, puis presser le bouton "Tester".

Une nouvelle fenêtre ou un nouvel onglet du navigateur s'ouvre et montre le formulaire en mode de test. Notez que vous pouvez également tester le formulaire directement depuis l'éditeur.


L'éditeur de formulaire

Créer votre première définition de formulaire

Après avoir pressé le bouton "New" de la page de sommaire, vous atteignez l'éditeur. Form Builder a besoin de deux informations initiales :
  • Nom d'application. Chaque définition de formulaire a un nom d'application, qui identifie un groupe de formulaires groupés logiquement. En pratique, un nom de formulaire peut correspondre à un projet, un département, une entreprise. Par exemple, tous les formulaires faits par Orbeon ont le nom d'application "orbeon".
    NOTE : En fonction de vos permissions, le nom d'application peut déjà être sélectionné. Il se peut aussi que vous ayez un choix limité de noms prédéfinis.
  • Nom de formulaire. Chaque définition a aussi un nom de formulaire, qui identifie un formulaire unique dans une application donnée.

Aussi bien le nom d'application que de formulaire doivent suivre un format donné :
  • Utiliser des lettres et optionnellement des chiffres et séparateurs tels que "-" et "_"
  • Commencer par une lettre
  • Ne pas utiliser d'espaces
NOTE : Une raison d'être de ces restrictions est que ces noms sont utilisés dans les URLs créés par Form Runner lorsque le formulaire est publié, et que de cette façon les URLs sont plus "propres".

Pour votre premier formulaire, ne vous souciez pas trop de ces noms : entrez n'importe quelle valeur valide. Vous pouvez toujours les changer plus tard !

Disposition générale de Form Builder

L'éditeur de Form Builder est organisé en 4 régions :
  • Sommet : zone de titre  avec information d'état et sélection de la langue de l'interface de Form Builder.
  • Gauche : boîte à outils, qui peut être déplacée verticalement en fonction de la taille du navigateur ou du moniteur.
  • Fond : icônes d'état et boutons.
  • Centre : zone WYSIWYG où vous éditez effectivement la définition de formulaire. Cette région peut avoir un ascenseur vertical et/ou horizontal en fonction de la taille du navigateur ou du moniteur, ou de celle du formulaire en cours d'édition.

Barre du sommet

En haut à droite de la barre du sommet, vous pouvez changer la langue de l'interface de Form Builder en cliquant sur une des langues disponibles. En date de juin 2009, l'anglais et le français sont disponibles. Des langues supplémentaires pourront être rajoutées dans le futur.

Changer la langue met à jour l'interface de Form Builder immédiatement : vous n'avez pas même besoin de sauvegarder votre formulaire avant un changement de langue.

NOTE : Cette fonction contrôle seulement l'interface utilisateur de Form Builder. Pour la fonction de localisation du formulaire en cours d'édition, voir plus loin.


De plus, la barre du sommet affiche certaines informations d'état, comme ce message indiquant que la définition de formulaire a été sauvegardée avec succès.

Barre du fond

La barre du fond de Form Builder contient deux types d'objets :
  • Icônes d'état
    • Icône "Erreurs dans le formulaire". Cette icône rouge indique si le formulaire contient des erreurs, tel un titre de formulaire ou de section manquant. Si cette icône apparait, vous ne pouvez pas sauvegarder la définition de formulaire.
    • Icône "Changements non sauvegardés". Cette icône indique que le formulaire a des changements non sauvegardés.
  • Boutons
    • Bouton "Fermer". Ferme la fenêtre ou l'onglet du navigateur dans lequel l'éditeur est ouvert.
      • Si le formulaire a des changements non sauvegardés, un message d'avertissement apparait.
      • Sinon, la fenêtre ou l'onglet se ferme et ramène à la page de sommaire de Form Builder.
    • Bouton "Tester". Teste le formulaire courant. Si le formulaire contient des erreurs, ce bouton est grisé.
    • Bouton "Publier". Publie le formulaire courant. Si le formulaire contient des erreurs ou n'est pas sauvegardé, ce bouton est grisé. Vous devez corriger toute erreur et sauvegarder le formulaire avant de pouvoir le publier.
    • Bouton "Sauvegarder". Sauvegarde le formulaire en base de données.


La boîte à outils de Form Builder

La boîte à outils est organisée en plusieurs catégories :
  • Contrôles
    • Icônes globales couper/copier/coller et "Recharger les contrôles".
    • Boutons "Nouvelle section" et "Nouvelle grille".
    • Tous les contrôles que vous pouvez insérer dans le formulaire.
  • Métadonnées. Vous permet de modifier le nom d'application et nom de formulaire.
  • Fonctions avancées. Inclut les fonctions avancées telles que Schéma XML, PDF, et vue code source.
  • Services & actions. Editeur de services et actions simples.
En fonction de la taille du navigateur ou du moniteur, vous pouvez utiliser l'ascenseur à droite de la boîte à outils pour accéder aux fonctions supplémentaires de celle-ci. Chaque catégorie de la boîte à outils peut être ouverte ou fermée en cliquant sur le titre de la catégorie.

Les catégories sont détaillées ci-dessous.

Couper, copier et coller

Les icônes couper/copier/coller sont situées au sommet de la boîte à outils :

Elles permettent les fonctions usuelles couper/copier/coller sur les contrôles.

  • Copier : copie le contrôle dans la cellule couramment sélectionnée vers le presse-papier de Form Builder. Si la cellule est vide, rien ne se passe.
  • Couper : même chose que copier, mais le contrôle est supprimé de sa position initiale. Si la cellule est vide, rien ne se passe.
  • Coller : colle le contrôle dans le presse-papier de Form Builder vers la prochaine cellule disponible. S'il n'y a aucune contrôle dans le presse-papier, rien ne se passe.
NOTE : Ces opérations sont restreintes à l'instance courante de Form Builder. Elles ne fonctionnent pas entre différentes fenêtres ou onglets contenant Form Builder, ou entre sessions d'édition.

Les informations suivantes sont copiées et collées :
  • Type du contrôle
  • Nom
  • Libellé, conseil à l'entrée ("hint" en anglais), et aide
  • Listes de choix
  • Réglages de validation y compris le type de données et les contraintes
  • Toutes les ressources localisées associées
Lorsque le contrôle est collé, si son nom n'est couramment pas en usage dans le formulaire, il est utilisé tel quel. Sinon, un nouveau nom est choisi par Form Builder.

Contrôles

La boîte à outils contient les contrôles de formulaire que vous pouvez insérer, groupés par catégorie :
  • Contrôles texte. Contrôles qui capturent ou montre du texte.
  • Contrôles typés. Contrôles qui ont un type de donnée associé, tels email, numéro de téléphone, fichiers joints, etc.
  • Contrôles de sélection. Contrôles qui permettent une sélection d'une ou plusieurs valeurs, tels menus, boutons radio, etc.
  • Autres contrôles. Pour l'instant, ceci n'inclut que des boutons.
  • Modèles de sections. Contrôles sur mesure qui représentent une section entière.
Pour insérer un contrôle dans votre formulaire, simplement cliquer sur le contrôle. La logique suivante s'applique :
  • Si la cellule couramment sélectionnée est vide, le contrôle s'y insère.
  • Sinon, si la cellule à droite de la cellule couramment sélectionnée est vide, le contrôle s'y insère.
  • Sinon, si  le contrôle est le dernier de la grille, une nouvelle rangée est insérée et le contrôle s'insère dans la première cellule de la nouvelle rangée.
  • Sinon, les contrôles dans la boîte à outils sont grisés et vous ne pouvez pas insérer un nouveau contrôle.
Les contrôles apparaissent dans la grille de deux façons :
  • La plupart des contrôles apparaisssent de façon WYSIWYG.
  • Certains contrôles sont représentés simplement sous forme d'une icône. Ceci est le cas de certains contrôles tels que numéro de téléphone, etc.
NOTE : Orbeon s'attend à du retour sur les contrôles marqués comme expérimentaux ci-dessous.

Bouton "Nouvelle section"

Cliquer ce bouton insère une nouvelle section dans le formulaire. La section est insérée après la section couramment sélectionnée, c'est-à-dire la section contenant le contrôle couramment sélectionné.

Après insertion, la nouvelle section a un titre vide. Vous pouvez le changer en cliquant.

Bouton "Nouvelle grille"

Cliquer ce bouton insère une nouvelle grille dans le formulaire. La grille est insérée après la grille couramment sélectionnée dans la section courante, c'est-à-dire la grille contenant le contrôle couramment sélectionné.

Après insertion, la nouvelle grille a une colonne et une cellule. Vous pouvez en changer les dimensions en utilisant les icônes de grille.

Contrôles texte

Les contrôles texte suivants sont disponibles dans la boîte à outils :
  • Standard
    • Ligne de texte : simple ligne de texte
    • Zone de texte : simple zone de texte multi-ligne.
      • Zone texte HTML : zone de texte riche.
        • NOTE : Durant l'édition, apparait pour l'instant comme une zone de texte multi-ligne.
        • NOTE : A l'exécution, ne supporte pas le mode accessible.
      • Sortie texte : simple sortie texte. Ce contrôle ne permet pas l'entrée de données à l'exécution : il montre simplement le texte capturé durant l'édition.
  • Expérimental
    • Entrée en place : comme la ligne de texte standard, mais nécessite un clic sur le texte pour passer dans un mode d'édition qui permet de changer le texte.
      • NOTE : A l'exécution, ne supporte pas le mode accessible.

Les contrôles apparaissent comme suit dans Form Builder :


A l'exécution, avec des données entrées :

A l'exécution, en mode prévisualisation :


Contrôles typés

Les contrôles typés suivants sont disponibles dans la boîte à outils :
  • Standard
    • Date : champ de date avec sélecteur.
    • Heure : champ d'heure.
    • Date et heure : champ date et heure.
    • Adresse email : champ de texte qui valide que le contenu est une adresse email.
    • Image statique : image affichée dans le formulaire à l'édition. Il n'est pas possible de modifier l'image à l'exécution.
    • Image jointe : image qui peut être attachée au formulaire à l'édition, mais qui peut aussi être changée ou supprimée à l'exécution.
    • Fichier joint : fichier qui peut être attaché au formulaire à l'édition. Il peut aussi être changé ou supprimé à l'exécution.
  • Expérimental
    • Date avec menu : sélecteur de date qui utilise des menus.
    • Date avec champs : sélecteur de date qui utilise trois champs de texte séparés.
    • Sélecteur de date : sélecteur de date sous la forme d'un simple sélecteur.
    • Téléphone US : numéro de téléphone US avec région et numéro dans deux champs de texte séparés.
    • Milliers de dollars : champ pour capturer un montant en milliers de dollars.
Les contrôles apparaissent comme suit dans Form Builder :

A l'exécution, avec des données entrées :


A l'exécution, en mode prévisualisation :

Contrôles de sélection

Les contrôles de sélection suivants sont disponibles dans la boîte à outils :
  • Standard
    • Menu déroulant (sélection simple)
    • Boutons radio (sélection simple)
    • Cases à cocher (sélection multiple)
    • Liste simple (sélection simple)
    • Liste multiple (sélection multiple)
  • Expérimental
    • Sélection avec liens : ce contrôle de sélection simple apparait comme une série de liens cliquables.
Les contrôles apparaissent comme suit dans Form Builder :

A l'exécution, avec des données entrées :


A l'exécution, en mode prévisualisation :


Autres contrôles

Les contrôles divers suivants sont disponibles dans la boîte à outils :
  • Bouton : bouton standard du navigateur
  • Bouton YUI : bouton avec style identique entre navigateurs (basé sur la bibliothèque YUI).
Les contrôles apparaissent comme suit dans Form Builder :

A l'exécution, avec des données entrées :


NOTE : Les boutons n'apparaissent pas du tout en mode prévisualisation.

Les boutons ne permettent pas d'entrer des données, et par défaut ne font rien de significatif, mais ils peuvent être utilisés pour initier des actions avec l'éditeur d'actions.

Modèles de sections

Form Builder supporte la création de sections réutilisables appelées modèles de sections. Ils fonctionnent comme suit :
  • Créez des sections dans un formulaire spécial avec nom "library".
  • Publiez ce formulaire.
  • Pour chaque section de ce formulaire, Form Builder crée un composant réutilisable.
  • Le composant est visible dans la boîte à outils de Form Builder sous la catégorie "Modèles de sections".
  • Le titre de la section est utilisé comme titre du modèle dans la boîte à outils.
Par exemple, vous pouvez créer une section "Adresse US" générique et la réutiliser dans plusieurs formulaires :


Voici comment les modèles de sections apparaissent dans la boîte à outils de Form Builder :

La boîte à outils montre deux groupes de modèles de sections :
  • Modèles globaux, créés sous le formulaire "orbeon/library".
  • Modèles par application, créés sous le formulaire "library" d'une application particulière.
Lorsque vous cliquez sur un modèle de section, celui-ci s'insère dans le formulaire après la section couramment sélectionnée. Vous pouvez ensuite sélectionner un nouveau titre pour la section.

La section apparait en lecture seule, ce qui signifie que vous ne pouvez pas changer les propriétés des contrôles de cette section.



Cycle de vie des contrôles et modèles de sections dans la boîte à outils

Les composants inclus dans la boîte à outils ne sont pas nécessairement immuables. Ils ont le cycle de vie suivant :
  1. Lorsque vous ouvrez Form Builder, la dernière version des contrôles et modèles de sections est chargée.
  2. Lorsque vous sauvegardez une définition de formulaire, les contrôles et modèles de sections ne sont pas sauvegardés en base de données.
  3. Si vous (ou une tierce personne) avez effectué des modifications externes aux contrôles ou modèles de sections, vous pouvez rafraichir la boîte à outils pour refléter les derniers changements à l'aide du bouton "Recharger les contrôles" au sommet de la boîte à outils. Après rechargement :
    • La liste des contrôles et modèles de sections dans la boîte à outils est mise à jour
    • Les modèles de sections utilisés dans votre formulaire sont mis à jour avec la version juste rechargée
  4. Lorsque vous publiez le formulaire, la version des contrôles et modèles de sections couramment chargée dans Form Builder au moment de la publication est inclue avec le formulaire publié.
    • Ceci signifie que des modification subséquentes aux contrôles ou modèles de sections sont effectuées, elle n'affectent pas le formulaire publié.
    • Si vous avez besoin de mettre à jour un formulaire déjà publié avec une nouvelle version des contrôles ou modèles de sections, vous devez republier le formulaire.


La zone WYSIWYG de Form Builder

Introduction

L'apparence de la zone WYSIWYG est conçue pour ressembler le plus possible au formulaire publié.

Form Builder utilise des concepts simples pour la disposition des contrôles : sections et grilles. Ceci est considéré une bonne alternative :
  • au positionnement absolu, qui est rarement approprié pour les formulaires sur le web
  • aux dispositions complexes, qui souvent déroutent les auteurs de formulaires
Dans le futur, il se peut que d'autres dispositions soient ajoutées à Form Builder.

Edition en place

Form Builder vous permet d'éditer certaines informations en place. Ceci signifie simplement que le texte apparait tel qu'il le ferait dans le formulaire publié, mais devient éditable lorsque vous cliquez sur ce texte.

Pour éditer ce texte :
  • Cliquer sur le texte (ou conseil à l'entrée)
  • Un champ de texte apparait
  • Entrer ou modifier le texte
  • Presser le bouton "Appliquer"

Pour indiquer que le champ est éditable, un surlignage apparait lorsque la souris le survole.


Ce mécanisme permet d'éditer :
  • Le titre du formulaire
  • La description du formulaire
  • Le titre d'une section
  • Les libellés de contrôles
  • Les conseils à l'entrée de contrôles

Logo, titre, et description du formulaire

Form Builder vous permet d'importer un logo optionnel qui apparait au sommet de votre formulaire. Simplement utiliser le sélecteur de fichier pour spécifier ou remplacer le logo, et il apparait ensuite sur la page. Pour des raisons esthétiques, il est recommandé d'utiliser un petit logo horizontal, similaire au logo d'Orbeon.

Le titre du formulaire est obligatoire. Le tire peut être édité en place : simplement le cliquer pour faire apparaitre le champ de texte.

La description du formulaire est optionnelle. Vous l'éditez de la même façon que le titre.

Cette copie d'écran montre :
  • Le logo Orbeon
  • Le titre "Collection vidéo"
  • La description "Ce formulaire vous permet d'entrer des informations sur votre collection vidéo."

Sections et grilles

Form Builder représente chaque formulaire comme une série de sections :
  • Une section représente simplement un groupement logique de contrôles. Par exemple, un formulaire peut avoir une section "Adresse", et une section "Détails personnels".
  • Les sections sont ordonnées, l'une au-dessous de l'autre.
  • Chaque formulaire possède au moins une section.
  • Il n'y a pas de limite au nombre de sections dans un formulaire.
Vous pouvez effectuer les opérations suivantes sur une section :
  • Définir le titre de la section en cliquant sur celui-ci. Le titre est localisable.
  • Supprimer la section en cliquant sur l'icône poubelle. Si la section contient des contrôles, un message de confirmation apparait.
  • Définir un message d'aide optionnel pour la section, en cliquant sur l'icône d'aide. L'aide est localisable.
  • Définir les propriétés de la section.
  • Ouvrir ou fermer la section en cliquant sur la flèche à gauche du titre.
  • Déplacer la section vers le haut ou vers le bas en cliquant sur les flèches "Déplacer vers le haut"ou "Déplacer vers le bas". Ces flèches apparaissent lorsque nécessaire si plus d'une section est présente.
Chaque section contient une ou plusieurs grilles :
  • Une grille est un groupement logique des contrôles organisés en lignes et colonnes.
  • Une grille possède entre 1 et 4 colonnes.
  • Une grille peut posséder un nombre quelconque de lignes.
  • Une cellule peut contenir un seul contrôle, ou rester vide.
  • Une cellule peut couvrir plusieurs lignes.
  • Contrairement aux sections, une grille n'a pas de titre ou de propriétés.
Lorsque le pointeur de la souris survole une grille, les frontières de celle-ci, ainsi que des icônes, apparaissent.

La copie d'écran suivante montre deux sections, "Section 1" et "Section 2". La première section contient une grille de 3 colonnes par 2 lignes.

Vous pouvez effectuer les opérations suivantes sur une grille :
  • Ajouter des colonnes en cliquant sur les flèches gauche/droite au sommet de chaque colonne.
  • Ajouter des lignes en cliquant sur les flèches haut/bas à gauche de chaque ligne.
  • Supprimer une colonne en cliquant sur l'icône poubelle au sommet de la colonne.
  • Supprimer une ligne en cliquant sur l'icône poubelle à gauche de la ligne.
  • Supprimer toute la grille en cliquant sur l'icône poubelle en haut à gauche de la grille.
Pour les actions de suppression, un dialogue de confirmation apparait si des contrôles vont être détruits.


Cellules et contrôles

Chaque cellule peut contenir un seul contrôle, ou être vide. Si un contrôle est présent, les actions suivantes sont possibles :
  • Définir le libellé : cliquer sur le libellé (édition en place)
    • Un libellé apparait en général au dessus du contrôle. Le but du libellé est de fournir une description simple de la fonction du contrôle.
    • Exemples : "Prénom", "Rue", "Numéro de téléphone".
  • Définir le message d'aide : cliquer sur l'icône "point d'interrogation" pour ouvrir le dialogue "Edition de l'aide"
  • Définir le conseil à l'entrée : cliquer sur le conseil à l'entrée (édition en place)
    • Le conseil à l'entrée d'un contrôle apparait en général sous le contrôle. Le but est de fournir une indication simple sur la manière de remplir le champ.
    • Exemples : "Votre prénom", "Date au format jj/mm/aaaa".
  • Définir une valeur par défaut : simplement entrer le texte, ou sélectionner une valeur
  • Editer la liste de choix du contrôles : cliquer sur le texte ou l'icône "Editer la liste" pour ouvrir le dialogue "Editeur de listes de choix" (contrôles de sélection seulement)
Lorsque votre pointeur de souris survole une cellule contenant un contrôle, certaines icônes apparaissent :
  • Icône "Supprimer le contrôle" : supprimer le contrôle.
    • Ceci aussi supprime les informations associées au contrôle, y compris les propriétés de validation et la représentation XML.
  • Icône "Détails du contrôle" : ouvre le dialogue "Détails du contrôle".
  • Icône "Réglage de la validation" : ouvre le dialogue "Réglage de la validation".
  • Icône "Etendre : étend la cellule vers le bas si possible.
    • Ceci permet au contrôle de prendre deux lignes ou plus dans la grille, par exemple pour une longue liste de boutons radio.
    • Si le contrôle prend plus d'une ligne, une icône "Rétrécir" apparait pour effectuer l'opération inverse.
  • Icône "Changer l'apparence" : change l'apparence entre types de contrôles de sélection (contrôles de sélection seulement)

Espace réservé pour les boutons du formulaire

Ceci est simplement une région vide montrant où les boutons de votre formulaire, tels que "Sauvegarder", "Fermer", etc. seront affichés par Form Runner.



Dialogue "Détails de la section"

Chaque section a :
  • un nom ou identifiant, qui détermine la façon dont les données sont représentées en XML
  • des expressions XPath qui déterminent la visibilité et l'accès en lecture seule (fonction avancée)

Le nom de la section spécifie un identifiant pour celle-ci, unique pour le formulaire.

Si aucun nom de section n'est spécifié, Form Builder assigne un nom par défaut, par ex. "section-1".

Les expressions XPath contrôlent :
  • Visibilité : est-ce que la section est visible ou non.
  • Lecture seule : est-ce que la section est en lecture seule ou non
Les expressions XPath sont décrites en plus de détails plus loin.


Dialogue "Détails du contrôle"

Chaque contrôle a des propriétés générales :

  • un nom ou identifiant, qui détermine la façon dont les données sont représentées en XML
  • des options qui peuvent être activées ou désactivées

Le nom du contrôle spécifie un identifiant pour celui-ci, unique pour le formulaire. L'identifiant est utilisé pour les fonctionnalités avancées suivantes :

  • pour référer à la valeur du contrôle depuis une expression XPath
  • pour déterminer comment la valeur du contrôle est représentée en XML
Si aucun nom de contrôle n'est spécifié, Form Builder assigne un nom par défaut, par ex. "control-42".

Les options suivantes sont disponibles :

  • Montrer dans le sommaire : quand activée, la valeur du contrôle est visible dans une colonne de la page de sommaire
  • Montrer dans la recherche : quand activée, la valeur du contrôle est cherchable dans la page de sommaire
  • Destinataire email : quand activée, le contrôle est utilisé pour déterminer un destinataire d'email dans le cas où les données du formulaires sont envoyées par email
  • Utiliser comme sujet d'email : quand activée, la valeur du contrôle est utilisée comme partie du sujet de l'email dans le cas où les données du formulaires sont envoyées par email


Dialogue "Propriétés de validation"

Chaque contrôle possède un ensemble de propriétés liées à sa validité :
  • Type de donnée
    • Type de base : un type de donnée (par ex. chaîne de caractères, nombre, etc.) pour la donnée capturée par le contrôle.
    • Type de schéma : types additionnels provenant du Schéma XML importé (fonction avancée).
    • Obligatoire : est-ce que la valeur est obligatoire ou non.
  • Expressions
    • Contrainte : est-ce que le contrôle est valide.
    • Visibilité : est-ce que la valeur est visible ou non
    • Lecture seule : est-ce que la valeur est en lecture seule ou non.
    • Valeur initiale : valeur initiale calculée pour le contrôle.
    • Valeur calculée : valeur calculée pour le contrôle, qui se met à jour chaque fois qu'une autre valeur du formulaire change.
  • Message d'erreur : message d'erreur localisé s'affichant si le contrôle est invalide.
Les expressions XPath sont décrites en plus de détails plus loin.


Une valeur de contrôle (entrée par l'utilisateur, constante, ou calculée ) est soit valide soit invalide. Elle est invalide si au moins une des conditions suivantes est respectée :
  • Type incorrect : la valeur ne satisfait pas le type spécifié (type de base ou type Schéma XML).
    • Par exemple, si la valeur doit être un entier, la valeur "Jean" est invalide.
  • Obligatoire mais vide : la valeur est obligatoire, mais le champ reste vide.
  • Contrainte non satisfaite : l'expression XPath "Contrainte" retourne false().
Si le contrôle est de type "string", n'a pas de contrainte et n'est pas obligatoire, toute valeur entrée est valide.

Si la valeur est invalide à l'exécution, le contrôle est mis en évidence et/ou un message d'erreur s'affiche. Le message est soit :
  • Le message localisé entré dans ce dialogue
  • Si non spécifié, un message par défaut de Form Runner
Le message d'erreur apparait :
  • Sous la valeur du contrôle
  • Dans le Résumé des erreur de Form Runner
La liste des types de base inclut :
  • Les types courants tels chaîne de caractère, nombres, date,  heure, date et heure, booléen, et email.
  • Les types standards Schéma XML (avancé)
Dans la plupart des cas, les types de base courants suffisent.


NOTE : Pour certains contrôles dans la boîte à outils, comme email, date, heure, et date/heure, le type de donnée est automatiquement lié au contrôle par Form Builder. Changer le type de donnée dans ce dialogue peut avoir pour conséquence le changement de l'apparence du contrôle pour correspondre au type choisi.

Si un Schéma XML contenant des types simples est présent, ceux-ci sont listés dans un menu "Type de schéma".

Soit un type de base, soit un type Schéma XML peut être sélectionné. Si vous sélectionnez un type Schéma XML, le type de base est remis à zéro automatiquement.  De même, si vous sélectionnez un type de base, le type Schéma XML est remis à zéro.

Lorsqu'un type Schéma XML est sélectionné, vous ne pouvez plus contrôler la case à cocher "Obligatoire" : la valeur doit correspondre à la définition du type pour être valide.


Dialogue "Edition de l'aide"

Ce dialogue vous permet d'entrer un texte d'aide pour un contrôle :


L'aide est disponible à l'exécution par une icône positionnée près du contrôle :
  • Par défaut, l'icône ouvre le message d'aide dans un petit dialogue.
  • En mode accessible, l'icône pointe sur une section d'aide au fond du formulaire.
Le texte d'aide est localisable.


Editeur de listes de choix

L'éditeur de liste de choix vous permet d'entrer des choix pour un contrôle de sélection.

Chaque choix possède :
  • Un libellé localisable, qui apparait à l'utilisateur du formulaire.
  • Une valeur, qui est stockée en base de données.

Lors de la première ouverture du dialogue, une seule entrée vide est présente. Vous ajoutez des choix avec le bouton "+", et les supprimez avec les icônes poubelles.

Notes d'utilisabilité :
  • Dans un champ libellé, presser la touche "tab" vers une valeur vide crée automatiquement une valeur par défaut. Par ex. :
    • "Pomme" devient "pomme"
    • "Jamalac blanc" devient "jamalac-blanc"
  • Dans un champ de valeur, presser la touche "enter" ajoute automatiquement un nouveau choix après le choix courant.
Il y a des contraintes sur les valeurs acceptables :
  • Pour les contrôles de sélection simples (par ex. boutons radio), la valeur peut être une chaîne de caractères quelconque.
  • Pour les contrôles de sélection multiple (par ex. cases à cocher), la valeur ne doit pas contenir d'espaces.
Pour vous faciliter la vie, l'éditeur vous permet de passer d'une langue à l'autre sans fermer le dialogue.

Les valeurs associées aux choix ne sont pas localisables : elles restent les mêmes pour chaque langue. Par contre, les libellés sont localisables. Par ex. :
  • Français
    • Nom : "Pomme"
    • Valeur : "pomme"
  • Anglais
    • Nom : "Apple"
    • Valeur : "pomme"
Ceci assure que les données capturées sont lisibles par du logiciel même si l'interface utilisateur change.


Localisation du formulaire

Disponibilité

Ceci est une fonction Orbeon Forms PE.

Travailler avec la localisation

Form Builder supporte des formulaires localisés. Ceci signifie que vos titres de formulaire, libellés, message d'aide, etc. peuvent être spécifiés en plus d'une langue. A l'exécution, l'utilisateur du formulaire peut choisir la langue ou utiliser la langue par défaut.

Par défaut, seule une langue est présente, typiquement le français. La langue par défaut est configurable dans Form Builder par un administrateur système.


Presser l'icône "+" fait apparaitre le menu suivant :


La liste vous permet de choisir une nouvelle langue à ajouter à la liste des langues du formulaire :

Lorsqu'une nouvelle langue est ajoutée :
  • Elle apparait dans la liste des langues en haut à droite de la zone WYSIWYG
  • Toutes les ressources localisées de la langue courante précédente sont copiées vers la nouvelle langue
Vous passez d'une langue à l'autre en cliquant sur la langue à sélectionner :
  • La langue courante est reconnaissable car elle n'est pas soulignée comme un lien.
  • Toute édition de ressource localisable se fait dans la langue couramment sélectionnée.
Vous pouvez supprimer la langue courante en pressant l'icône "-". Ceci supprime toutes les ressources associées à cette langue. Vous devez donc être prudent en supprimant une langue. Un message d'avertissement apparait avant que la suppression ne se fasse.

Voici les étapes typiques pour créer un formulaire en deux langues :
  • Créer le formulaire dans la langue principale et entrer toutes les ressources localisables tels que libellés, messages d'aide, conseils à l'entrée, etc.
  • Ajouter la seconde langue.
  • Traduire les ressources localisables qui sont maintenant visible sur le formulaire.
  • En testant le formulaire, vous pouvez passer d'une langue à l'autre pour vous assurer qu'aucune ressource n'a été omise.

Changer les métadonnées du formulaire

La catégorie "Métadonnées" vous permet de changer le nom de l'application et du formulaire. Simplement cliquer le lien "Editer métadonnées" pour mettre à jour les champs.

Génération PDF

Introduction

Form Builder et Form Runner peuvent produire une sortie PDF de deux façons :
  • Automatique
    • Le PDF est produit en fonction de l'apparence du formulaire dans votre navigateur. La sortie est similaire à une version en lecture seule de votre formulaire à l'écran.
    • En tant qu'auteur de formulaire, aucune configuration spéciale n'est nécessaire pour ce mode.
  • Basée sur un PDF modèle
    • Vous importez un fichier PDF en utilisant le dialogue "Importer PDF" dans la boîte à outils. A l'exécution, Form Runner remplit les champs Acrobat contenus dans le modèle.
    • Ce mode est activé automatiquement si un modèle PDF est annexé au formulaire.

Disponibilité

  • La génération automatique est disponible dans Orbeon Forms CE et PE.
  • Les modèles sont une fonction Orbeon Forms PE.

Fonctionnement des modèles PDF

Le but des modèles PDF est de permettre l'utilisation de fichiers PDF existants et d'utiliser Form Runner pour les remplir. Ceci a les atouts suivants :
  • Il se peut que votre organisation ait déjà de nombreux formulaires au format PDF.
  • Ces formulaires on probablement fait l'objet d'une conception précise pour l'impression ou l'archivage.
Un modèle PDF doit inclure des champs de formulaire Acrobat. Ceux-ci peuvent être créés avec Acrobat Professional.

A l'exécution, lors de la production de la sortie PDF finale, Form Runner effectue les opérations suivantes :
  • Le modèle PDF est lu
  • Les données du formulaire remplies au format XML sont lues
  • Pour chaque contrôle, un nom est construit, sous la forme "nom-de-section$nom-de-champ". Par ex. :
    • Le nom du contrôle est "prénom" (défini dans le dialogue "Détails du contrôle")
    • Le contrôle est dans une section appelée "adresse" (défini dans le dialogue "Détails de la section")
    • Le nom de champ PDF produit est : "adresse$prénom"
    • Ceci est le nom de champ qui doit être utilisé dans le modèle PDF de sorte que Form Runner soit capable d'en effectuer le remplissage !

Créer un modèle PDF utilisable avec Form Builder

Pour créer un modèle PDF, vous devez utiliser Acrobat Professional ou un outil similaire pour l'édition de fichiers PDF. Ci-dessous nous supposons Acrobat Professional.

Etapes principales :
  1. Ouvrir un fichier PDF existant
  2. Effectuer la détection automatique de champs
  3. Supprimer les régions incorrectement détectées, et rajouter les champs manquants
  4. Entrer tous les noms de champs, en suivant la consigne "nom-de-section$nom-de-champ" expliquée ci-dessus
  5. Zones de texte multi-ligne
    • Activer le mode "multi-line" dans Acrobat pour le champ
    • Mettre si nécessaire un fond blanc pour cacher par ex. des lignes pointillées venant du formulaire original
  6. Cases à cocher exclusives
    • Utiliser des boutons radio PDF avec apparence "Cross" ou "Check"
    • Utiliser le même nom pour tous les boutons liés
    • Utiliser par contre une "export value" différente pour chaque bouton
    • La valeur du choix du contrôle (et NON le libellé) est utilisée par Form Runner pour l'associer à l'"export value"
  7. Cases à cocher non-exclusive
    • Utiliser des cases à cocher PDF
    • Utiliser le même nom pour tous les boutons liés
    • Utiliser par contre une "export value" différente pour chaque bouton
    • La valeur du choix du contrôle (et NON le libellé) est utilisée par Form Runner pour l'associer à l'"export value"
  8. Menu
    • Utiliser un champ de texte PDF simple
  9. Pour une langue comme le français, s'assurer que les champs aient une fonte Arial et non Helvetica. Ne pas utiliser Arial peut causer des problèmes avec les accents.
Exemple montrant comment entrer le nom de la case à cocher :

Exemple montrant comment entrer le Style et Export Value de la case à cocher :


Avancé : import de Schéma XML

Disponibilité

Ceci est une fonction Orbeon Forms PE.

Travailler avec un Schéma XML

Le bouton "Importer schéma" dans la catégorie "Fonctions avancées" vous permet d'importer un Schéma XML au formulaire. Ceci a deux buts :
  • Le schéma est utilisé pour valider les données du formulaire.
  • Le types simple présents dans le schéma sont mis à disposition dans le dialogue "Réglage de la validation".

NOTE : En date de juin 2009, Form Builder n'est pas capable de gérer des sous-schémas importés/inclus. Si vous essayez d'importer de tels schémas, un message d'avertissement s'affiche.

Avancé : expressions XPath dans les dialogues "Détails du contrôle" et "Détails de la section"

Expressions XPath

XPath est un langage d'expressions pour XML. Il ne permet pas de modifier du XML, mais permet d'effectuer des recherches sur du XML et de calculer des valeurs.

En général, vous n'avez pas besoin de connaitre XPath dans Form Builder, à l'exception de certaines propriétés des dialogues "Détails du contrôle" et "Détails de la section". Les expressions XPath sont considérées une fonction avancée de Form Builder, qui peut nécessiter des connaissances de programmation.

NOTE : Des expressions XPath incorrectes peuvent rendre le formulaire non fonctionnel. Il faut donc être prudent avec cette fonctionnalité.

Dialogue "Détails du contrôle"

Dans le dialogue "Détails du contrôle", les expressions XPath expressions sont utilisées pour spécifier les aspects suivants d'un contrôle :

  • Contrainte : expression booléenne spécifiant si le contrôle est valide.
    • Si ce champ est vide, le contrôle est valide en fonction du type de donnée assigné au contrôle et de l'option "Obligatoire".
    • Sinon, le contrôle est valide si en plus le résultat de l'expression booléenne est true().
  • Visibilité : expression booléenne spécifiant si le contrôle est visible.
    • Si ce champ est vide, le contrôle est toujours visible, sauf si la section n'est pas visible.
    • Sinon, il est visible seulement si le résultat de l'expression booléenne est true().
  • Lecture seule : expression booléenne spécifiant si le contrôle est en lecture seule (pas éditable).
    • Si ce champ est vide, le contrôle est toujours éditable, sauf si la section est en lecture seule.
    • Sinon, le contrôle est éditable seulement si le résultat de l'expression booléenne est false().
  • Valeur initiale : expression retournant la valeur initiale du contrôle à l'initialisation du formulaire.
    • Défaut : la valeur par défaut mise dans le champ lors de la création du formulaire (en générale une valeur vide).
  • Valeur calculée : expression retournant une valeurs calculée spécifiant la valeur du contrôle, qui se met à jour lorsque l'utilisateur interagit avec le formulaire.
    • Défaut : la valeur par défaut du contrôle, ou la valeur entrée par l'utilisateur du formulaire.

Dialogue "Détails de la section"

Dans le dialogue "Détails de la section", les expressions XPath expressions sont utilisées pour spécifier les aspects suivants d'une section :

  • Visibilité : expression booléenne spécifiant si la section est visible ou non.
    • Si ce champ est vide, la section est toujours visible.
    • Sinon, elle est visible seulement si le résultat de l'expression booléenne est true().
  • Lecture seule : expression booléenne spécifiant si la section est en lecture seule ou non.
    • Si ce champ est vide, le contenu de la section est toujours éditable.
    • Sinon, le contenu de la section est éditable seulement si le résultat de l'expression booléenne est false().

Référencer des valeurs de contrôles

Les expressions XPath peuvent référencer des valeurs d'autres contrôles de la page, en utilisant des variables nommées d'après les noms de contrôles.

Scénario : rendre un contrôle en lecture seule si la valeur du contrôle "first-name" est vide :

Expression :

normalize-space($first-name) = ''

Explication :
  • $first-name retourne la valeur du contrôle nommé "first-name"
  • normalize-space() supprime tous les espaces au début et à la fin, et combine les espaces internes. L'utilisation de cette fonction assure que si la valeur du contrôle ne contient que des espaces vides, elle est considérée vide.
  • = '' compare le résultat de la fonction à la chaîne vide

Spécifier une valeur initiale dynamique

Scénario : en tant qu'auteur de formulaire, vous pouvez spécifier une valeur initiale statique pour un contrôle simplement en entrant cette valeur lors de l'édition du formulaire. Par ex. :
  • Entrer une valeur dans un champ de texte
  • Sélectionner un choix dans un menu déroulant
Cependant toutes les valeurs initiales ne peuvent être statiques. Par exemple, on peut vouloir qu'un contrôle de sélection de date contienne la date courante jusqu'à ce que l'utilisateur la change. Dans ce cas, vous pouvez utiliser une expression "Valeur initiale".

Expression "Valeur initiale" :

current-date()

Explication :
  • current-date() est une fonction XPath standard qui retourne la date courante.

Valeurs calculées

Scénario : calculer la somme de deux nombres entrés par l'utilisateur dans deux champs, "quantity1" and "quantity2".

Expression "Valeur calculée" :

if ($quantity1 castable as xs:integer and $quantity2 castable as xs:integer)
  then $quantity1 + $quantity2
  else ''

Explication :
  • if (...) then ... else ... évalue une condition et retourne l'une des deux branches
  • la condition quantity1 castable as xs:integer vérifie que la valeur du champ "quantity1" est un nombre entier
  • quantity1 + $quantity2 simplement additionne les deux valeurs
  • la valeur '' représente la chaîne vide
Ceci peut être spécifié par exemple sur un contrôle "Sortie texte".

NOTE : Si la valeur d'un contrôle est calculée, par default elle est aussi marquée automatiquement en lecture seule. Si vous voulez qu'une valeur calculée soit toujours éditable par l'utilisateur, mettez l'expression "Lecture seule" explicitement à false().

Scénario : vérifier le(s) rôle(s) de l'utilisateur courant

Une variable XPath spéciale, $fr-roles, définie par Form Runner est exposée à toutes les expressions XPath :
  • Elle contient la liste (sous forme de séquence XPath) des rôles de l'utilisateur courant, si présents. Chaque rôle est représenté par une chaîne.
  • Ceci permet, par exemple, de montrer ou cacher une section en fonction des rôles courants.
Exemple d'expression "Visibilité" qui rend une section visible seulement si un des rôles a la valeur "admin" :

$fr-roles = 'admin'

A cause de la logique de XPath utilisée pour la comparaison des séquences, cette expression retourne true() si au moins l'un des rôles est "admin", même si d'autres rôles sont disponibles.

Scénario : accéder des headers HTTP lors de l'initialisation du formulaire

Il peut être utile d'accéder aux headers HTTP pour mettre des valeurs par défaut lors de l'initialisation du formulaire, par exemple si un système de single sign-on utilise des headers HTTP pour communiquer des informations à l'application.

Les expressions XPath ont accès à une fonction spéciale, xxforms:request-header(), qui retourne la valeur d'un header à partir de son nom. Par exemple, pour mettre la valeur initiale d'un champ :

xxforms:get-request-header('full-name')

NOTE : Les headers ne peuvent pas être accédés après l'initialisation du formulaire. Il est donc recommandé d'utiliser cette fonction pour spécifier des valeurs initiales seulement.

Scénario : vérifier le type d'un fichier joint

Scénario : le champ "my-attachment" doit être un fichier PDF.

Expression "Contrainte" :

ends-with(lower-case($my-attachment/@filename), '.pdf')

Explication :
  • Form Runner enregistre des informations sur le fichier dans des attributs XML :
    • @filename pointe sur le nom de fichier spécifié par le navigateur
    • @mediatype pointe sur le type de fichier spécifié par le navigateur
    • @size pointe sur la taille du fichier
  • $my-attachment/@filename retourne le nom de fichier associé au fichier joint "my-attachment"
  • La fonction lower-case() convertit ce nom de fichier en minuscules
  • La fonction ends-with() vérifie que le premier argument se termine par le second argument
De même, vous pouvez tester le type du fichier :

$my-attachment/@mediatype = 'application/pdf'

NOTE : Le nom et le type du fichier sont envoyés par le navigateur de l'utilisateur. Du point de vue de la sécurité, vous ne pouvez donc pas faire confiance à ce valeurs et elles ne doivent être utilisées que pour un premier niveau de validation des données. Une validation supplémentaire basée sur le contenu doit être effectuée plus tard si nécessaire.

Scénario : valider la longueur d'une valeur

Scénario : la valeur maximale d'une de contrôle "last-name" est de 30 caractères.

Expression "Contrainte" :

string-length($last-name) <= 30

Explication :
  • La fonction standard string-length() retourne la longueur de l'argument
  • Le comparateur <= ou lt signifie "plus petit que ou égal à"


Avancé : services et actions

Form Builder fournit un éditeur de services et actions simples. Dans la boîte à outils, simplement sélectionner la catégorie "Services & actions" pour accéder à ces fonctions :

Avancé : services HTTP

Disponibilité

Ceci est une fonction Orbeon Forms PE.

Configuration

L'éditeur de services HTTP vous permet de créer des services REST simples. Un formulaire peut appeler un service, en passant et recevant des données XML. L'éditeur de services HTTP suit de près la sémantique d'une soumission XForms.

Pour créer un nouveau service HTTP, cliquez l'icône "Ajouter" sous "Services HTTP". L'éditeur de service HTTP s'ouvre. La copie d'écran suivante montre un exemple de service configuré pour poster un message à Twitter :

La signification des champs est la suivante :
  • Nom du service. Ceci est le nom du service, vu par Form Builder. Il doit commencer par une lettre et ne peut pas contenir d'espaces.
  • URL de la ressource. URL HTTP ou HTTPS auquel le service réside.
  • Méthode. Méthode HTTP à utiliser : GET, POST, PUT ou DELETE.
  • Sérialisation. Contrôle comment le corps de la requête est envoyé pour POST ou PUT.
    • XML : Envoie le corps de la requête comme XML (application/xml)
    • HTML Form : Envoie le corps de la requête comme données de formulaire HTML (application/x-www-form-urlencoded)
  • Service SOAP. Spécifie si ceci est un service SOAP.
    • SOAP Action. Si sélectionné, valeur du header SOAPAction.
  • Authentification HTTP. Spécifie si l'authentification HTTP doit être utilisée.
    • Nom d'utilisateur. Nom d'utilisateur à utiliser.
    • Mot de passe. Mot de passe à utiliser.
  • Corps de la requête. Document XML à envoyer au service.

Le bouton "Tester" vous permet de tester l'appel de service. Avant de procéder, il se peut que vous deviez mettre des données de test dans le corps de la requête. Form Builder exécute le service, et produit ensuite des informations sur la réponse retournée, y compris :

  • Est-ce qu'une erreur s'est produite (mise en évidence verte ou rouge)
  • URL appelé
  • "Status code" de la réponse
  • Headers de la réponse
  • Corps de la réponse
Ceci vous permet de déverminer l'appel au service.

Une fois le service défini, le bouton "Sauvegarder" l'enregistre dans le formulaire. Vous pouvez revenir sur ce service plus tard et le modifier en cliquant l'icône "Editer" près du nom du service. Vous pouvez aussi supprimer le service en utilisant l'icône poubelle.

Avancé : services base de données

Disponibilité

Ceci est une fonction Orbeon Forms PE.

Configuration

L'éditeur de services base de données vous permet de créer des services simples en utilisant SQL. Vous créez un modèle de requête SQL, qui ensuite s'exécute au travers d'une datasource Java.

La signification des champs est la suivante :

  • Service Name. Ceci est le nom du service, vu par Form Builder. Il doit commencer par une lettre et ne peut pas contenir d'espaces.
  • Datasource. Nom JNDI de la datasource (sans le jdbc/ initial).
  • SQL Query. Modèle de la requête SQL à exécuter.
Vous écrivez une requête SQL comme envoyée à votre base de données, sauf que les paramètres (si présents) doivent être représentés sous forme d'éléments XML. Ils doivent être écris ainsi :

<sql:param type="xs:string" select=""/>

L'attribut "type" correspond au type SQL à utiliser :
  • xs:string pour une chaîne de caractères
  • xs:integer pour un entier
  • Etc.
L'attribut "select' doit rester vide. Il est rempli par l'éditeur d'actions lorsque le service est appelé.

Le service base de données retourne des données en XML comme suit :
  • Un élément racine <response>
  • Pour chaque ligne de résultat retournée, un élément <row>
  • Dans chaque élément <row>, un élément par colonne retournée
Par exemple, si la requête retourne des colonnes appelées :
  • id
  • first_name
  • last_name
  • phone_number
La réponse peut ressembler à ceci :

<response>
    <row>
        <id>12</id>
        <first_name>John</first_name>
        <last_name>Smith</last_name>
        <phone_number>(555) 123 4567</phone_number>
    </row>
    <row>
        <id>34</id>
        <first_name>Alice</first_name>
        <last_name>Martin</last_name>
        <phone_number>(555) 987 6543</phone_number>
    </row>
</response>

De même que pour un service HTTP, le bouton "Sauvegarder" enregistre le service dans le formulaire. Vous pouvez revenir sur ce service plus tard et le modifier en cliquant l'icône "Editer" près du nom du service. Vous pouvez aussi supprimer le service en utilisant l'icône poubelle.

Avancé : actions

Disponibilité

Ceci est une fonction Orbeon Forms PE.

Introduction

L'éditeur d'action vous permet de créer des actions simples dans votre formulaire. La philosophie de base est la suivante :
  • Une action réagit à un événement se passant dans le formulaire, tel que le chargement du formulaire ou une action de l'utilisateur
  • Elle appelle un service HTTP ou base de données
    • en lui passant des paramètres provenant du formulaire
    • et en recevant en retour des paramètres provenant du service
  • Elle peut ensuite utiliser les paramètres retournés pour mettre à jour le formulaire
NOTE : Les actions sont fortement liées aux services. Dans le futur, l'utilisation d'actions ne nécessitant pas de services peut être envisagée.

Configuration de base de l'action

La signification des champs est la suivante :
  • Nom de l'action. Ceci est le nom de l'action, vu par Form Builder. Il doit commencer par une lettre et ne peut pas contenir d'espaces.
  • Réagir à. L'événement qui démarre l'action. Peut avoir les valeurs suivantes :
    • Changement de valeur. La valeur d'un contrôle a changé.
    • Changement de valeur ou chargement du formulaire. La valeur d'un contrôle a changé OU le formulaire vient de se charger.
    • Activation. Un bouton a été cliqué ou la touche "Enter" a été pressée dans une ligne de texte.
    • Chargement du formulaire. Le formulaire vient de se charger.
  • Contrôle. Sauf pour l'événement "Chargement du formulaire" qui ne dépend pas d'un contrôle particulier, ceci spécifie le contrôle auquel l'événement est lié.
  • Service à appeler. Le service a appeler.
De même que pour les services, une fois l'action définie, le bouton "Sauvegarder" l'enregistre dans le formulaire. Vous pouvez revenir sur cette action plus tard et la modifier en cliquant l'icône "Editer" près du nom de l'action. Vous pouvez aussi supprimer l'action en utilisant l'icône poubelle.

Passer des paramètres au service

  • Paramètres de la requête au service.
    • Utilisé avec les services HTTP seulement
    • Fonction : utilise la valeur d'un contrôle et l'enregistre dans le corps de la requête XML passé à la requête.
      • Contrôle source. Spécifie le contrôle dont la valeur doit être utilisée.
      • Expression XPath destination. L'expression doit pointer vers un élément ou attribut dans le corps de la requête définie dans le service HTTP
    • Vous pouvez ajouter plusieurs rangées de paramètres en utilisant l'icône "+", et supprimer des paramètres existants avec l'icône poubelle.
  • Paramètres de la requête au service base de données.
    • Utilisé avec les services base de données seulement
    • Fonction : utilise la valeur d'un contrôle et l'enregistre en tant que paramètre numéro N dans la requête SQL définie dans le service base de données.
      • Source Control. Spécifie le contrôle dont la valeur doit être utilisée.
      • Numéro de paramètre. Pour spécifier le premier paramètre, utiliser la valeur "1" (sans les guillemets), le second, "2", etc.
    • Vous pouvez ajouter plusieurs rangées de paramètres en utilisant l'icône "+", et supprimer des paramètres existants avec l'icône poubelle.

Gérer la réponse du service

Ce qui suit est utilisé si l'appel au service est un succès :
  • Valeurs de contrôles provenant de la réponse.
    • Fonction : extrait une valeur retournée par le service pour mettre à jour la valeur d'un contrôle.
      • Contrôle destination. Spécifie le contrôle dont la valeur doit être mise à jour.
      • Expression XPath destination. L'expression doit pointer sur un élément ou attribut du corps de la réponse retournée par le service.
    • Vous pouvez ajouter plusieurs rangées en utilisant l'icône "+", et supprimer des paramètres existants avec l'icône poubelle.
  • Valeurs de liste de choix provenant de la réponse.
    • Fonction : extrait des valeurs retournées par le service pour mettre à jour une liste de choix.
      • Contrôle de sélection de destination. Spécifie le contrôle de sélection dont la liste de choix doit être mise à jour. Seuls les contrôle de sélection apparaissent dans cette liste.
      • Choix.
        • L'expression XPath doit pointer sur une séquence d'éléments ou d'attributs du corps de la réponse retournée par le service.
        • Pour chaque noeud retourné, un choix est créé.
      • Libellé. L'expression XPath doit retourner le texte du libellé du choix. Elle est relative aux noeuds retournés par l'expression de choix.
      • Valeur. L'expression XPath doit retourner le texte de la valeur du choix. Elle est relative aux noeuds retournés par l'expression de choix.
    • Tous les choix existants pour le contrôle sont remplacés avec ceux provenant de la réponse.
    • Vous pouvez ajouter plusieurs rangées en utilisant l'icône "+", et supprimer des paramètres existants avec l'icône poubelle.

Exemples

La copie d'écran suivante montre une action simple postant une mise à jour de status sur Twitter :


Dans cet exemple :
  1. L'action se nomme "tweet"
  2. Elle réagit à l'activation (clic) du bouton "Tweet!" (avec nom "tweet-button")
  3. Lorsque le bouton est activé, il appelle le service nommé "twitter-update"
  4. Avant d'appeler le service, mais après activation du bouton, la valeur du champ "Tweet Here" (avec nom "twitter-message") est utilisée pour mettre la valeur de l'élément <status> dans le corps de la requête, comme spécifié dans le service.
  5. Aucune action n'a lieu sur réponse du service.
Si le champ "twitter-message" contient la chaîne "Super content aujourd'hui de la sortie de la nouvelle version d'Orbeon Forms", le corps de la requête du service ressemble à ceci :

<status>Super content aujourd'hui de la sortie de la nouvelle version d'Orbeon Forms</status>

La façon dont le document XML est effectivement envoyée au service dépend des paramètres de configuration mis dans le dialogue de l'éditeur de service. Par exemple, le document XML peut être POSTé au service tel quel, ou il peut être sérialisé dans le format des formulaires HTML.

L'exemple suivant montre un service qui retourne de nouveaux choix pour un contrôle de sélection :


Dans cet exemple :
  1. L'action se nomme "populate"
  2. Elle réagit à l'activation (clic) du bouton "Populate" (nommé "populate-button")
  3. Lorsque le bouton est activé, elle appelle le service nommé "echo-service" (qui se trouve juste retourner les données qui lui sont envoyées)
  4. Avant d'appeler le service, mais après activation du bouton, la valeur des 4 champs est lue et enregistrée dans le corps de la requête
  5. Lorsque l'appel au service se termine avec succès
    • Tous les éléments /items/item sont parcourus et un choix est créé pour chacun d'eux
    • Pour chacun, les éléments label et value sont utilisés pour déterminer le libellé et la valeur du choix
    • Les choix sont placés sur le contrôle "Values" (nommé "list")
Par exemple, si la réponse est comme suit :

<items>
    <item>
        <label>Cat</label>
        <value>cat</value>
    </item>
    <item>
        <label>Dog</label>
        <value>dog</value>
    </item>
    <item>
        <label>Bird</label>
        <value>bird</value>
    </item>
</items>

Trois choix sont placés sur le contrôle "Values" dans l'ordre retourné par l'expression XPath pointant sur les choix :
  • Un choix avec libellé "Cat" et valeur "cat"
  • Un choix avec libellé "Dog" et valeur "dog"
  • Un choix avec libellé "Bird" et valeur "bird"


Avancé : représentation XML des données du formulaire

Bases

Lorsque vous créez une définition de formulaire avec Form Builder, une représentation XML des données capturées est automatiquement créée. Elle est organisée comme suit :
  • Un élément racine :
    <form>
  • Dans cet élément, pour chaque section, un sous-élément nommé d'après le nom de la section :
    <address>
  • Dans un élément de section, un sous-élément pour chaque contrôle dans la section, nommé d'après le nom du contrôle :
    <first-name>
  • Dans chaque élément de contrôle, la valeur du contrôle est enregistrée :
    <first-name>Alice</first-name>
Exemple :

<form>
    <details>
        <title/>
        <author/>
        <language/>
        <link/>
        <rating/>
        <publication-year/>
        <review/>
        <image filename="" mediatype="" size=""/>
    </details>
    <notes>
        <note/>
    </notes>
</form>

Noter que les grilles ne créent pas d'éléments correspondants.

Fichiers joints

Pour les fichiers joints, l'élément de contrôle est un peu différent :
  • Le contenu textuel est un URL pointant sur le fichier joint dans la couche de persistance :
    • <my-attachment>/fr/service/exist/crud/orbeon/builder/data/5277.../book.png</my-attachment>
  • Des attributs sont utilisés pour représenter :
    • le nom de fichier
    • le type de fichier
    • la taille du fichier
    • <my-attachment filename="book.png" mediatype="image/png" size="13245">/fr/...</my-attachment>

Editer le code source du formulaire

Le bouton  "Editer source" dans la boîte à outils ouvre le dialogue "Edition du code source".

Form Builder utilise XHTML+XForms comme représentation de la définition du formulaire. Le format doit être du XML bien formé. Le dialogue montre une zone de texte contenant cette représentation.

Vous pouvez éditer le XML de cette représentation directement dans le dialogue, ou le copier/coller vers un éditeur externe. Après sauvegarde des changements dans le dialogue, ceux-ci sont pris en compte directement par Form Builder.

NOTE : Il faut être prudent en effectuant des changements, car il est possible d'endommager le formulaire. Il est recommandé d'apprendre les bases de XForms avant d'effectuer de tels changements.


NOTE : En date de juin 2009, les commentaires XML ajoutés au formulaire sont perdus par Form Builder. Il est donc recommandé de ne pas utiliser de tels commentaires.

Fin du document