Si vous lisez cet article, cela voudrait dire qu’il vous ait parut nécessaire de déployer et d’utiliser le Contrôle « Digital Signature ». « DigitalSignature » est un contrôle communautaire qui peut être intégré dans nos SmartForms et permet de faire des dessins (signatures numériques, ou autres dessins).

J’espère de tout cœur que cet article vous donnera envi de l’utiliser  😉

Pour le déployer il faut :

  • Le télécharger
  • L’installer
  • L’ajouter au formulaire
  • Enregistrer la Signature
  • Et enfin afficher la signature enregistrée

Téléchargement

La dernière version (v3) du contrôle se télécharge sur http://community.k2.com/t5/K2-blackpearl/Digital-Signature-v3/ba-p/93216

Installation

Après avoir décompressé le fichier téléchargé on accède à l’arborescence suivante.

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory
Le Répertoire « Source » contient la solution pour ceux qui veulent contribuer à l’amélioration du contrôle. Et le Répertoire « Deploy » qui contient les fichiers nécessaires à l’installation du contrôle est donc celui qui nous intéresse

        Déploiement du SmartObject « DigitalSignature-SmartObject-SmartBox_Service »

Pour déployer ce SmartObject qui se trouve dans le repertoire « Deploy », Il faut ouvrir « SmartObjects Services Tester» Puis cliquer sur Import SmartObjects

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

On choisit le SmartObject à déployer puis on clique sur  « OK »

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

On clique sur Import pour Déployer

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Le SmartObject est déployé

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory      Installation du contrôle

          Dans le Répertoire « Release », il y a un fichier .bat nommé RegisterCustomControl. Pour installer le contrôle il faut modifier ce fichier. Le fichier contient 2 lignes qui copie le fichier Dans le Runtime et dans le Design de K2. Donc la première modification consiste à spécifier le chemin absolu de la DLL du contrôle

“C:\Bertini\digital signature v3_1.3\k2-sf-digital-signature-control-v3\Deploy\Release\DigitalSignature.dll” dans mon cas

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Et la deuxième modification consiste à spécifier le chemin le chemin d’installation de K2 si ce n’est pas celui par défaut. Puis on enregistre et on Exécute le fichier en tant qu’administrateur, ce qui marque la fin de l’installation du contrôle.

Ajout au formulaire

      Ajout du contrôle

Pour utiliser le contrôle on crée juste un Formulaire ou une Vue puis on le glisse simplement

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Une fois que c’est fait on peut modifier les propriétés du contrôle :

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Quand on essaie d’exécuter. ❓  ❓  ❓ Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Rien du tout. Juste le Title de la signature qui s’affiche. Dans ce cas précis il s’agit du Label « Signature »

Pour que nous ayons ce qu’on veut il faut exécuter une méthode du contrôle nommée « Initialise For Signing » quand la vue s’initialise

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Et Hope !!!

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Jusqu’ici on peut dessiner une signature. Génial non ?  😎  😎  😎

    Configurer le Bouton Clear qui permet d’effacer tout le contenu du contrôle

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Après avoir ajouté le Bouton qui va effacer le contenu du contrôle, on exécute la méthode Clear du contrôle quand on clique sur bouton tel que l’illustre cette image

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Enregistrement de la signature dans un objet métier (Configuration du Bouton Save)

A quoi nous servirais de dessiner une signature si on ne peut la stocker pour une utilisation ultérieure ? L’enregistrement de la signature peut se faire de trois façons. Si l’objectif est de stocker la signature dans notre objet métier alors nous devons en créer un à l’avance qui aura les champs qui nous intéresse.

Pour cet article, notre objet métier aura tous les champs possibles pour tout mode d’enregistrement.

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Chaque champ de cet objet métier, exception faite de son identifiant, représente chacune des trois méthodes d’enregistrement suivantes :

  • Générer du code JSON à partir du contrôle puis le stocker dans un Objet Métier.
  • Enregistrer la signature sous forme de fichier dans un objet métier.
  • Enregistrer la signature en Base64 dans le SmartObject qu’on a déployé plus tôt puis stocker son ID dans notre objet métier
       JSON

La méthode qui consiste à stocker le JSON est relativement simple. Il suffit d’exécuter la méthode Create de notre objet métier et stocker le contrôle dans le champ adéquat.

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Avantages :

  • L’image est stockée directement dans le Smartobject métier.
  • Le code JSON est nettement plus léger que le Base64.

Inconvénient :

  • obligation d’utiliser le contrôle signature pour réafficher la signature, même en lecture seule.
      Fichier

Enregistrer la signature sous forme de fichier dans un objet métier : Cette méthode se fait en 2 étapes.

  1. Exécuter la méthode du contrôle nommée ‘Get Image to File property’ qui ne prend aucun paramètre mais retourne un fichier (la signature) que l’on mappe dans un contrôle caché de type File Attachement
  2. Puis, stocker ce File Attachement dans notre objet métier

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Finalement on a ceci comme règle sur le Bouton Save

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Avantages :

  • Comme pour le code JSON, l’image est stockée directement dans le SmartObject métier.
  • L’image est stockée sous forme de fichier, ce qui permet de la télécharger facilement sur son propre ordinateur.

Inconvénient :

  • L’image est stockée sous forme de fichier, ce qui ne permet pas de l’afficher directement sur le formulaire. L’utilisateur est obligé de télécharger le fichier pour, par la suite, l’ouvrir dans son ordinateur
       Base64

Enregistrer la signature en Base64 dans le SmartObject qu’on a déployé : comme la précédente, cette méthode se fait en 2 étapes :

  1. Exécuter la méthode du contrôle nommée ‘Save As Image’ qui prend deux paramètres facultatifs. Le FQN (Fully Qualified Name) qui est une chaîne représentant le nom complet de l’utilisateur et le Form URL qui désigne le formulaire qui a été signé.
  2. Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

  3. Puis, stocker ce File Attachement dans notre objet métier

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Avantages :

  • Un Smartobject SmartBox avec tous les champs nécessaires pour le stockage des signatures
  • L’image est enregistrée sous forme de code Base64, ce qui permet de l’afficher comme n’importe quelle autre image en utilisant une concaténation avec la balise <img src=”” /> du HTML

Inconvénients :

  • Les signatures sont stockées dans un Smartobject Smartbox.
  • L’image est enregistrée sous forme de code Base64, plus gourmand en espace disque que du JSON.

Affichage d’une signature stockée dans un objet métier

A chaque méthode d’enregistrement correspond plus ou moins une méthode d’affichage

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

NB : Dans ce cas précis nous avons créé une vue liste des signatures. Pour afficher une signature, il faudra double-cliquer sur le nom de la signature à afficher

       Si la signature est stockée en JSON

L’affichage se fait en 2 étapes :

  • Un Transfer Data qui charge le code JSON de la signature choisie dans un contrôle caché (un Data Label dans notre cas)

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

  • Et on exécute une méthode du contrôle nommée ‘Display JSON Signature’ qui prend en paramètre le code JSON stocké précédemment dans un contrôle caché. Puis retourne un contrôle appelé Digital Signature qu’on mappe au contrôle du même nom dans notre vue

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

       Si la signature est stockée en SignatureID dans notre objet métier (Base 64 dans le SmartObject DigitalSignature)

Dans ce cas, il y 2 méthodes d’affichage :

  • La première ressemble en tout point à celle précédente (JSON)
    • Un Transfer Data qui charge l’ID de la signature choisie dans un contrôle caché
    • Et on exécute une méthode du contrôle nommée ‘Display Signature Image’ qui prend en paramètre l’ID stocké précédemment dans un contrôle caché. Puis retourne un contrôle appelé Digital Signature qu’on mappe au contrôle du même nom dans notre vue
  • La deuxième méthode dans notre cas, sera la plus compliquée. Elle se fait en 3 étapes
    • Un Transfer Data qui charge l’ID de la signature choisie dans un contrôle caché (File)
    • On exécute la méthode ‘Load’ du SmartObject DigitalSignature qui prendra en entrée l’ID stocké précédemment dans le contrôle caché (File) et retourner le code Base64 qu’on stocke dans un autre contrôle caché (Base64)

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory Broker

  • Pour afficher l’image dont le Code Base64 est déjà dans le Data Label ‘Base64’ on crée un Data Label Caché (Encore un autre) dont l’expression sera la concaténation de <img src=” + Base64 + “/>

Création d'une DigitalSignature avec K2 Blackpearl Flow Factory

        Si la signature est stockée comme un fichier

Exécuter la méthode Read, Load, List ou Get List de notre objet métier puis mapper le Fichier retourné à un contrôle « File Attachement »

Nous voici au terme de cet article j’espère qu’il vous a plu et qu’il vous a été utile. A bientôt pour plus d’aventures K2 🏃🏃🏃🏃🏃

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.