Le connecteur Cloud Storage autour d’un exemple Google Drive

Les versions K2 Five 5.3 et K2 Cloud Update 8 ont proposé des intégrations natives avec des outils de stockage de documents en ligne : le connecteur “Cloud Storage” (pour DropBox, Box, OneDrive, Google Drive). Nous allons voir, dans la suite de cet article, comment utiliser celui spécifique à Google Drive.

Dans un 1er temps, nous allons voir comment activer ce connecteur puis nous verrons ce que l’on peut faire avec et comment l’utiliser pour ajouter un document dans le drive depuis un formulaire K2 puis comment récupérer un ou des documents Google Drive dans un formulaire K2.

A quelques détails de nommage prêts, cet article est valable également pour Box, DropBox et OneDrive.

Activation et configuration du connecteur

On retrouve les différents connecteurs dans le menu Features du K2 Management Site. Tant que le connecteur n’est pas activé, vous aurez le message ci-dessous :

Message indiquant qu’il faut activer le connecteur avant utilisation

Il faut alors ouvrir un ticket support pour demander l’activation du connecteur. Si vous utilisez K2 Cloud, le KUID de votre environnement sera nécessaire (modèle de ticket de demande d’activation pour K2 Cloud). Si vous utilisez K2 Five, il sera nécessaire de fournir, dans le ticket support, vos Environement ID, Redirect URL et Database Name (voir modèle de ticket et méthode de récupération de ces informations dans la documentation K2).

Une fois le connecteur activé côté K2, le demandeur (et le Global Admin en cas K2 Cloud) reçoit le mail suivant :

Mail de confirmation d’activation

Vous allez alors pouvoir le configurer/instancier. En se basant sur la 1ère copie d’écran, il faut donc sélectionner la feature Google Drive et cliquer sur New Instance. Une nouvelle fenêtre va s’ouvrir vous demandant de choisir un nom et une description pour cette instance. Une fois ce choix fait, vous aurez cette fenêtre indiquant les grandes actions que K2 exécute pour la configuration :

Configuration de l’instance Google Drive

K2 crée d’abord la ressource OAuth qui sera utilisée puis ensuite, déclenche les pages Google permettant le consentement et la génération du token d’authentification Google, en fonction du compte que vous allez choisir.

Sélection du compte Google à utiliser
Eventuellement une petite vérification par SMS
Consentement des permissions à accorder à K2
Confirmation finale

Une fois que vous avez cliqué sur l’autorisation finale, vous devez recevoir un message de confirmation K2 :

Message de confirmation de création du Token.

Vous pouvez alors revenir sur la page de configuration de l’instance et cliquer sur le bouton Continue.

K2 génère alors le service instance et les smartobjects correspondant.

Que peut-on faire avec le connecteur ?

Dans notre exemple, nous travaillons avec Google Drive, cependant les méthodes disponibles pour les autres services de stockage de documents (Box, DropBox, OneDrive) sont exactement les mêmes, seul le nom de la catégorie variera :

Les smartobjects créés par l’instanciation
Voici les différentes méthodes disponibles

Files (méthodes liées aux fichiers) :

CopyCréation d’une copie d’un fichier
DeleteSuppression d’un fichier
DownloadRécupération d’un fichier disponible sur le drive.
Get infoRécupération des informations liées à un fichier (nom, description, taille)
Get info by ID *Comme la méthode précédente mais à partir de l’ID du document (et non de son chemin d’accès dans le drive).
Get Share URL by ID *Récupère l’URL de partage d’un document depuis son ID
Get Share URL *Idem depuis le chemin d’accès au document
MovePermet un couper/coller d’un document d’un endroit à l’autre au sein du drive.
Update TagsMise à jour des Tags d’un document
UploadDépôt d’un document sur le drive

Folder (méthodes liées aux répertoires) :

CopyCopie de tous les fichiers d’un répertoire (pour les mettre dans un autre)
CreateCréation d’un nouveau répertoire
DeleteSuppression d’un répertoire et de tout son contenu
Get infoRécupération des informations liées au répertoire (nom, description)
Get info by ID *Comme la méthode précédente mais à partir de l’ID du répertoire (et non de son chemin d’accès dans le drive).
Get Share URL by ID *Récupère l’URL de partage d’un répertoire depuis son ID
Get Share URL *Idem depuis le chemin d’accès au répertoire
List contentsRetourne la liste des fichiers et répertoires d’un répertoire
MovePermet un couper/coller d’un répertoire d’un endroit à l’autre au sein du drive.
Update TagsMise à jour des Tags d’un répertoire

Service :

Get quotaPermet de récupérer les différentes tailles de son drive (disponible, utilisée, partagée).
SearchPermet de faire une recherche de fichiers et répertoires à partir d’un chemin d’accès et de mots clés.

* Ces méthodes ne sont disponibles pour le moment que sur K2 Cloud (elles ont été ajoutées avec l’Update 9).

Utilisation du connecteur

Maintenant, utilisons le connecteur.

Télécharger un document dans son drive

Partons d’une vue très simple :

Vue de test du connecteur

Un contrôle d’attachement de document, un textbox pour spécifier le nom d’un répertoire (à créer ou à utiliser) et un bouton pour exécuter le chargement du document dans le drive.

Ensuite, tout se passe au niveau de la règle à définir sur le clic du bouton :

Règle de surveillance du clic sur le bouton

On sélectionne alors le smartobject File de son instance de connecteur, puis on choisit la méthode Upload. Ensuite, en paramètre d’entrée :

Configuration de l’upload

Il n’y a plus qu’à configurer le chemin d’accès au fichier (les répertoires non existants seront créés sans avoir à passer par un Create Folder précédent), incluant le nom du fichier. Dans mon cas j’utilise le nom du fichier, mais il y a possibilité de le changer directement au moment de l’upload. Puis le contrôle File Attachment complet sera utilisé en association du paramètre File. Et c’est tout… résultat

Mon drive après upload depuis une vue K2
Charger un document depuis son drive

Voyons à présent la méthode inverse : “je souhaiterai charger dans une vue K2 un document provenant de mon drive”. Gardons notre vue précédente et ajoutons un champ permettant de spécifier le chemin d’accès du document à charger puis un contrôle File Attachment en lecture seule :

Modification de la vue pour y charger des document depuis le drive

Le chemin d’accès du document à récupérer est, dans notre cas, la concaténation du nom du répertoire et du nom du fichier. Cette valeur peut être enregistrée lors de l’upload grâce à la propriété Path qui est un paramètre de sortie. C’est ce que nous avons fait, afin de ne pas avoir à reconstituer le chemin (à noter qu’il serait également possible de récupérer l’Id du document), au moment du clic sur le bouton Upload.

Sauvegarde du Path au moment de l’upload.

Positionnons ensuite une règle sur le bouton charger un document qui utilisera la méthode Download du smartobject File :

Règle sur le bouton de chargement d’un document

Reste alors simplement à associer le champ File retourné par la méthode avec le contrôle File Attachment de la vue, après avoir passé le chemin d’accès du fichier voulu dans la propriété Path attendue en entrée de la méthode :

Association des champs fichiers
Parcourir l’arborescence du drive

Si, à présent, on souhaite parcourir le contenu de son drive (ou une partie du contenu) depuis un formulaire K2, puis charger certains documents… on peut alors ajouter un contrôle TreeView et le clic sur un fichier viendra mettre à jour notre TextBox de choix de fichier à télécharger. Améliorons donc notre vue en ce sens.

Ajoutons un contrôle de type TreeView, et configurons la source de données de base comme sur la copie d’écran ci-dessous :

Configuration de la dataSource du TreeView.

Au niveau spécifique de la configuration de la méthode list, vous pouvez paramétrer le chemin d’accès du point de départ du treeview. Pour afficher l’ensemble du contenu du drive, il suffit de mettre “/“. Puis, afin d’avoir un affichage avec les répertoires en 1er puis les fichiers ensuite par ordre alphabétique, il faut configurer le tri de la méthode list de la façon suivante :

Configuration du tri de l’affichage

Maintenant qu’on a le tronc de notre arbre :), on va devoir ajouter une nouvelle source de données pour gérer la récursivité de l’affichage. Il suffit alors d’ajouter une nouvelle source de données qui sera configurée approximativement de la même manière, mais en prenant soin de cocher la case Recursive, de choisir la propriété Path comme Parent Property :

Configuration de la source de données récursive

Au niveau de la méthode list, il faudra spécifier que le paramètre d’entrée pour le Path est le filtre utilisé par le parent. Puis il faudra penser à configurer le tri comme pour la source de données précédente :

Configuration du paramètre d’entrée de la méthode list

Ne reste plus que quelques paramètres généraux à régler en fonction de vos besoins. De mon côté, j’ajoute un mini module de recherche, puis je positionne le paramètre Load Ahead Level à (None). Ce paramètre permet de jouer sur les temps d’affichage, car il permet de définir le nombre de sous-niveaux de l’arborescence de votre source de données (donc ici de votre drive) qui va être évalué au chargement de la page, le mettre à (None) est donc très intéressant en cas de nombre important de documents dans l’espace parcouru car en le positionnant ainsi, seul le niveau courant est évalué. Les autres niveaux seront évalués au fur et à mesure des clics utilisateur.

Paramétrages généraux

Une fois notre TreeView fonctionnel, il n’y a plus qu’à paramétrer une règle qui permet de transférer le document sélectionné dans notre TextBox. Il faut alors surveiller la règle Changed du contrôle et utiliser la valeur Value de sa source de données :

Configuration de la règle de sélection de valeur sur l’arbre

Et au final, nous obtenons donc la vue suivante :

Voilà pour les bases de l’utilisation du connecteur Cloud Storage…

Happy K2ing!

jean

Directeur technique de K2 France depuis 2006 et passionné par les technologies, je travaille dans le monde du BPM et des applications métier depuis... que je travaille :). Vous pouvez également me suivre sur twitter, linkedin.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.