Introduction
La société TALEND édite un ETL open source. Ce dernier intègre un grand nombre de connecteurs. Parmi ces derniers, on trouve un connecteur pour alimenter la solution de gestion de contenus open source alfresco.
Dans ce premier article, nous allons voir comment utiliser TOS (talend open studio) pour créer un job qui va initialiser un plan de classement dans alfresco à partir de sa description contenue dans un fichier csv.
L’objectif est d’obtenir le plan de classement suivant :
-racine
—dos1
——ssdos11
——ssdos12
—dos2
——ssdos21
——ssdos22
—dos3
——ssdos31
——ssdos32
La source de données pour obtenir ce plan est stockée dans le fichier csv suivant.
La première colonne donne le “chemin” où sera créé le répertoire. Le répertoire sera créé dans alfresco avec le nom “nom” et nous initialiserons les métas title et description avec la colonne “libelle”.
Lecture du fichier csv
Grâce à un composant tfileinputdelimited, nous allons lire le fichier csv. Pour cela, après avoir créé un job, déposer le composant dans le job et configurer ce dernier comme indiqué dans la capture suivante.
Ne pas oublier de spécifier la taille de l’entête à 1 (Header) si votre fichier intègre une ligne pour le titre des colonnes. Ne pas oublier de spécifier au niveau de “Edit schema” le schéma du fichier csv comme sur l’image suivante.
Pour vérifier que tout fonctionne, mapper le composant tinputfile avec un composant tlogrow et vérifier que le job s’exécute correctement.
Nous allons maintenant substituer à notre composant tlogrow, le composant talfrescoOutput.
Configuration du composant talfrescoOutput
Pour une distribution de alfresco avec tomcat, déposer les fichiers “stax-api-1.0.1.jar”, “wstx-lgpl-3.2.7.jar”, “talendalfresco-client_1.0.jar” et “talendalfresco-alfresco_1.0.jar” dans le répertoire tomcat/webapps/alfresco/WEB-INF/lib du serveur alfresco. Redémarrer le serveur alfresco. Les fichiers sont livrés avec TOS au niveau du répertoire du composant talfrescoOutput (pluginsorg.talend.designer.components.localprovider_3.1.0.M2_r22164componentstAlfrescoOutput).
Nous sommes prêts à utiliser le composant alfresco. Déposer le composant dans votre job. Double cliquer sur le composant pour faire apparaitre la fenêtre suivante.
Dans l’ordre, cliquer sur le bouton add pour indiquer au composant vos fichiers contenant la description de vos modèles alfresco. Nous nous contentons de travailler avec le modèle standard de alfresco.
Dans la liste déroulante du haut nous sélectionnons le type folder que nous allons utiliser pour construire notre plan de classement. Enfin, nous sélectionnons l’aspect Titled de la liste de droite pour l’ajouter à la liste de gauche. Cliquer ensuite sur le bouton OK.
En résumé : Cette fenêtre permet d’indiquer au composant les fichiers du modèle de données alfresco à utiliser, de sélectionner le type alfresco qui sera utilisé dans le processus d’intégration des données et enfin de sélectionner les aspects pour choisir les métas que nous alimenterons.
Nous allons maintenant mapper le composant alfresco avec le flux du fichier csv.
Configurer les informations de la fenêtre component.
update du 07/05/2009 : ne pas mettre de guillemet au niveau de URL, login, password.
Attention à la syntaxe pour indiquer la racine de alfresco (propriété base de Target association ; tester avec un alfresco sous OS windows). Remarquer l’option result log file name qui permet de spécifier un emplacement pour un fichier des logs.
Veiller bien à supprimer la ligne inscrite par défaut dans “Association target mapping” au niveau des advanced setting.
Vous pouvez maintenant exécuter votre job depuis la fenêtre run. Si tout se passe bien, vous constatez la création du plan de classement dans alfresco.
Vous constatez que les métas title et description ont été initialisées.
Dans le paramétrage de base du composant nous avons spécifié l’option document mode à create only. Si vous modifiez la propriété libellée dans le fichier csv (par exemple remplacer devis par chiffrage au niveau du répertoire dos1) et que vous relancez votre job, les propriétés title et description du dossier dos1 ne sont pas modifiées. Passer l’option document mode à update et relancer votre job. Vous constatez que les propriétés ont été actualisées. L’option “document mode” s’applique à l’élément créé dans alfresco à partir de la définition fournie dans les Property Mapping de la fenêtre Basic settings et ceci indépendamment du fait que nous créons un document, un folder ou autre chose.
L’option Container mode est une autre fonction qui peut prendre deux valeurs. “Create or update” ou “Update only”. Un élément défini dans les “Property Mapping” est créé dans alfresco à un endroit défini au niveau de l’option Base dans “Target Location”. Si l’arborescence définie dans l’option base n’existe pas dans alfresco et que le Container mode est à “Create or update”, le processus d’intégration créera les répertoires manquants en utilisant un type folder (il est possible d’intervenir sur le type, mais cela dépasse l’objet de ce tutoriel). Si l’option est à update only et qu’il manque des répertoires, l’intégration de l’élément défini dans les Property Mapping ne sera pas réalisée.
Conclusion
Nous avons vu qu’il est très facile d’initialiser un plan de classement dans alfresco à l’aide d’un job TALEND. Dans un prochain article, nous verrons comment récupérer le fichier de log généré par le talfrescoOutput pour vérifier que l’intégration a bien été réalisée.
Nous verrons ensuite dans un prochain article comment envoyer des documents dans ce plan de classement. Bien qu’il soit possible d’envoyer des documents dans alfresco et en même temps de construire l’arborescence des répertoires si ils n’existent pas (en exploitant l’option “Container Mode”), il est préférable d’initialiser son plan de classement au préalable car c’est l’unique moyen d’alimenter proprement les méta-données des répertoires.
Cette création est mise à disposition sous un contrat Creative Commons