L'autre fonction principale d'Esup-signature est la possibilité de mettre rapidement en ligne des formulaires. Cette fonction s'appuie sur les PDF Forms (formulaires présent dans les fichiers PDF). Esup-signature est capable d'analyser les formulaires PDF, d'en effectuer le rendu (via PDF.js) et de stocker les données saisies dans sa base de données. |
La mise en place du formulaire basé sur un PDF se fait en 3 étapes : création du circuit des signatures, création du PDF puis import dans Esup-signature |
Pour éditer un fichier PDF et créer un formulaire, il faut se doter d'un outils dédié. L'université de Rouen utilise Adobe Acrobat PRO. Sous linux il existe Master PDF Editor (payant)
L'opération consiste à placer les champs de formulaire puis à les configurer de la bonne façon.
Les champs doivent être configurés comme suit:
Une nomenclature de nommage des champs peut être utilisée pour signifier à Esup-signature d'opéré un traitement spécifique à un champ. On peut, via un nommage correcte, préciser si le champ doit être pré-rempli par Esup-signature et à quelles étapes le champ est modifiable.
Depuis la version 1.2, la nomenclature des champs a changée. De plus, il n'est plus nécessaire de configurer ces comportements directement dans le fichier PDF. Il est maintenant possible de (re)définir la configuration après import du modèle PDF dans esup-signature Les comportements spécifiques sont à configurés dans l'onglet "Calcul" puis la partie "Script de calcul personnalisé" au niveau des propriétés des champs d'Acrobat Pro. |
La syntaxe à utiliser au niveau des scripts de calcul des champs est la suivante :
Fonction | Syntaxe | Traduction |
---|---|---|
Pré-remplissage d'un champ | prefill.ldap(person, sn); | esup-signature va pré-remplir le champ avec la valeur de l'attribut "sn" de l'objet "person" provenant de la source de données "ldap" et correspondant à l'utilisateur courant |
Auto complétion d'un champ | search.ldap(person, displayName); | lors de la saisie le champ va proposé les valeurs du "displayName" correspondant a la piste des "person" trouvés dans "ldap" |
Activation du champ en fonction de l'étape | step.update(1); | les champs seront modifiables aux étapes 0 et 1 |
Il n'y a plus d'étape 0. L'étape 1 correspond à la première étape du workflow. Si l'on veut que le créateur saisisse en premier le formulaire, il faut créer une étape 1 avec "visa" et "créateur de la demande" comme participant. |
Voici un exemple de l'édition des champs d'un formulaire dans l'interface administrateur d'esup-signature ("Admin" → "Formulaire" → "Modifier les champs" :
On voit ici les propriétés du champ modifiables via l'interface. Si la syntaxe mise en place dans le modèle PDF Form est correcte, les champs seront pré-configurés. Sinon il est possible de reprendre la configuration sur cet affichage accessible dans le menu "Admin" → "Formulaire" → "Liste des champs".
Sur cette copie d'écran on voit que le champ "prenom" est configuré comme suit : Obligatoire, pré-rempli du "givenName" de l"utilisateur courant, avec une auto-completion qui retour le givenName (exemple pas vraiment utile en temps normal mais qui illustre la possibilité de cumuler pré-remplissage et auto-completion) et enfin, modifiable à l'étape 0.
Esup-signature est fourni avec les classes DefaulExtValue et LdapExtValue. La classe DefaultExtValue est utilisable en mettant "default" dans le nom du service. Elle propose les données (calculées) suivante :
Comme c'est le cas pour les classes workflow, vous pouvez créer vos propre classes de données externes en implémentant le type "ExtValue" en reprenant DefaultExtValue.java par exemple.
Pour pré-remplir ou auto-compléter un formulaire, Esup-signature se base une une classe de "pré-remplissage" du type "PreFill". D'origine Esup-signature est fourni avec la classe DefaultPreFill qui prend en charge les données externes de type Default et Ldap. Ceci répond à une grande partie des besoins. Cependant, tout comme cela peut être le cas pour les workflows, il se peut qu'il soit nécessaire de calculer certaines données à pré-remplir spécifiquement pour un formulaire (donnée calculée en fonction de l'utilisateur courant par exemple). Dans ce cas il y a là encore la possibilité d'implémenter votre propre classe de type PreFill (voir DefaultPreFill.java pour l'exemple)
Lorsque le formulaire PDF est terminé, il faut l'importer dans Esup-signature. Pour cela il faut aller sur "Admin" puis "Formulaire" puis cliquer sur le bouton bleu "+" et enfin sur l'icone PDF.
Vous devez saisir un nom (technique) et un titre (beau titre), sélectionner votre modèle PDF Form, saisir un rôle pour definir qui peut accéder à ce formulaire, choisir le type de pré-remplissage, un circuit qui aura été créer au préalable et éventuellement un dossier de destination.
Lorsque vous validez le formulaire, Esup-signature analyse le PDF Form et constitue la structure du formulaire. Sur cet exemple, on voit qu'il a bien pris en compte la nomenclature des champs. Il est possible de modifier les informations saisies lors de la création en cliquant sur le bouton jaune "crayon"
Votre formulaire sera disponible sur la page d'accueil des personnes autorisées à y accéder. Voici un exemple du rendu dans Esup-signature :