Utilisation du composant tAlfrescoOutput de l’ETL TALEND

Filed under ALFRESCO, TALEND

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.

csv

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.

csv_setting

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.

schema_csv

Pour vérifier que tout fonctionne, mapper le composant tinputfile avec un composant tlogrow et vérifier que le job s’exécute correctement.

run_with_tlogrow

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.

talfresco_mod

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.

job_alf

Configurer les informations de la fenêtre component.

talf_basic_setting

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.

talf_advance_setting

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.

plan-alfresco

Vous constatez que les métas title et description ont été initialisées.

meta

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.

Creative Commons License
Cette création est mise à disposition sous un contrat Creative Commons

27 Comments

  1. Hadril
    Posted 18 mars 2009 at 6 h 56 min | Permalink

    Bonjour, j’aimerai mettre en oeuvre vos recommandations mais après avoir installé Talend Open Studio v3.0.4 sur mon poste je m’apercois que le fichier talendalfresco-alfresco_1.0.jar n’est pas présent sous C:\TOS-Win32-r22164-V3.1.0M1\plugins\org.talend.designer.components.localprovider_3.1.0.M1_r22164\components\tAlfrescoOutput. Où puis-je, s’il vous plaît, récupérer ce fichier qui m’a quand même l’air indispensable. Merci beaucoup pour votre réponse.

  2. nferay
    Posted 18 mars 2009 at 9 h 41 min | Permalink

    Bonjour Hadril, pour tester le composant il faut télécharger la version 3.1.0.M2 et non pas la 3.0.4 qui est la dernière version en prod. Sur la 3.1.M2 tous les fichiers nécessaires sur la partie serveur alfresco sont présents.

  3. Hadril
    Posted 21 mars 2009 at 8 h 19 min | Permalink

    Merci pour votre réponse rapide. J’ai installé la version 3.1.0.M2 et récupéré tous les fichiers nécessaires. Je les ai copiés dans tomcat
    fresco/WEB-INF/lib\ mais au lancement d’Alfresco j’ai l’erreur suivante :

    07:48:48,141 ERROR [web.context.ContextLoader] Context initialization failed
    org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [fr.openwide.talendalfresco.re
    ommand.LoginCommand] for bean with name ‘talendalfresco.rest.loginCommand’ defined in URL [jar:file:/C:/bkl/tomcat
    fresco/WEB-INF/lib/talendalfresco-alfresco_1.0.jar!/alfresco/extension/talendalfresco-restcommand-context.xml]: pr
    class file or dependent class; nested exception is java.lang.NoClassDefFoundError: org/alfresco/web/app/servlet/co
    nd
    Caused by: java.lang.NoClassDefFoundError: org/alfresco/web/app/servlet/command/Command etc.
    Mon Alfresco ne marche plus. Ma version d’Alfresco est une 3.0. A vez-vous une idée d’où peut bien venir mon problème.

    Merci beaucoup.

  4. nferay
    Posted 21 mars 2009 at 11 h 10 min | Permalink

    à Hadril : as tu bien copié le fichier talendalfresco-alfresco_1.0.jar directement dans lib. Je viens de constater que dans la M2 il est livré dans un répertoire server_library.

    Je viens de tester avec une 3.0 stable et les fichiers de la M2, je n’ai pas rencontré d’erreur.

  5. Hadril
    Posted 22 mars 2009 at 19 h 13 min | Permalink

    Bonsoir Nicolas,

    oui les 4 fichiers ont bien été recopiés dans C:\Alfresco\tomcat\webapps\alfresco\WEB-INF\lib. J’ai effectué un test sous une installation XP ET WINDOWS 2003, j’ai exactement la même erreur. La version d’Alfresco est la dernière 3.0 stable (Alfresco Labs 3c) community téléchargeable sur le site d’Alfresco.
    Merci, pour ton aide.

  6. nferay
    Posted 23 mars 2009 at 13 h 51 min | Permalink

    Bonjour, Hadril. En utilsant un xp vierge j’ai reproduit ton problème. Je ne vois pas trop le problème sachant que j’ai un autre xp avec une 3.0 stable qui fonctionne avec le composant talfresco !! Pour tester et découvrir le composant je t’invite à utiliser la community 2.1, le composant a été développé et recetté pour cette version. Je vais continuer à fouiller pour essayer de voir pourquoi cela fonctionne sur mon autre instance sous xp avec une 3 :( (

  7. Hadril
    Posted 23 mars 2009 at 21 h 46 min | Permalink

    Bonsoir Nicolas,

    je vais essayer de tester sur une autre instance xp.
    Merci pour ton aide.

  8. nferay
    Posted 30 mars 2009 at 10 h 49 min | Permalink

    Après verif, il y a des problèmes avec les fichiers à mettre du coté alfresco packagés dans la M2. Il faut donc malheureusement attendre la M3

  9. Julien
    Posted 28 avril 2009 at 8 h 49 min | Permalink

    Bonjour,

    ce composant est-il compatible avec la version 2.9b d’Alfresco ?

    Merci d’avance,
    Julien

  10. Julien
    Posted 28 avril 2009 at 10 h 43 min | Permalink

    Re-Bonjour,

    J’ai effectué un test avec la 2.9b et la TOS RC02. Le déploiement des composants sous Alfresco s’est bien passé.
    J’arrive bien à développer le flux dans Talend, mais j’ai un message d’erreur à l’exécution :

    “fr.talend cannot be resolved as a type”

    Cela vient par exemple d’une des lignes suivantes :
    fr.talend.talendalfresco.acpxml.TalendAcpXmlWriter talendAcpXmlWriter_tAlfrescoOutput_1 = new fr.talend.talendalfresco.acpxml.TalendAcpXmlWriter();

    Le préfixe “fr.talend” semble lui poser problème.

    Je ne sais pas comment corriger ce problème, please Help !

    Julien

  11. nferay
    Posted 28 avril 2009 at 10 h 47 min | Permalink

    Bonjour, le composant a été développé pour fonctionner avec la 2.1 entreprise. Je l’ai aussi testé avec succès sur la 2.1 community et fait qques tests avec la 3. Je n’ai pas fait de test avec la 2.9b mais je pense que cela devrait fonctionner.

    Pour info, talend viens de sortir un TOS-RC3. Cette version corrige un bug sur les librairies cotés serveur, malheureusement il y a une régression sur le composant talfrescooutput au niveau du client TOS. Je vous invite à attendre la version final. Sinon, il faut utiliser la M2 avec les fichiers librairies de la M3.

  12. nferay
    Posted 28 avril 2009 at 10 h 56 min | Permalink

    En effet il y a une régression. c’est un problème au niveau tAlfrescoOutput_begin.javajet et tAlfrescoOutput_end.javajet

    J’ai ouvert un incident sur le bugtracker talend. http://www.talendforge.org/bugs/view.php?id=7108
    Si vous récupérez les deux fichiers http://talendforge.org/trac/tos/changeset/24135 vous pouvez contourner le problème.

    Attention aussi par rapport au tutoriel, les chaines url, login et pwd ne sont plus gérées de la même façon. Il ne faut pas mettre de ” (ou plus propre, utiliser des variables de contexts). J’attends la version finale pour actualiser le tutoriel.

  13. Julien
    Posted 28 avril 2009 at 11 h 21 min | Permalink

    Merci,
    le problème de compilation est en effet résolu.

    J’ai maintenant un autre problème, mais indépendant du composant et de Talend : Mon Alfresco est paramétré pour s’authentifier sur un OpenLDAP via CAS, et du coup, la requête d’authentification échoue avec l’erreur suivante :

    émarrage du jobTestImportAlfresco a 12:15 28/04/2009.Exception in component tAlfrescoOutput_1
    fr.openwide.talendalfresco.rest.client.RestClientException: Error initing client
    at talenddemosjava.testimportalfresco_0_1.TestImportAlfresco.tFileInputDelimited_1Process(TestImportAlfresco.java:495)
    at talenddemosjava.testimportalfresco_0_1.TestImportAlfresco.runJobInTOS(TestImportAlfresco.java:847)
    at talenddemosjava.testimportalfresco_0_1.TestImportAlfresco.main(TestImportAlfresco.java:763)
    Caused by: fr.openwide.talendalfresco.rest.client.RestClientException: IO error while executing command Command login with parameters [[name=username, value=test, name=password, value=pwd, name=ticket, value=null]] and resultCode null
    at fr.openwide.talendalfresco.rest.client.AlfrescoRestClient.execute(AlfrescoRestClient.java:166)
    at fr.openwide.talendalfresco.rest.client.AlfrescoRestClient.login(AlfrescoRestClient.java:179)
    at talenddemosjava.testimportalfresco_0_1.TestImportAlfresco.tFileInputDelimited_1Process(TestImportAlfresco.java:493)
    … 2 more
    Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
    at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)
    at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)
    at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(Unknown Source)
    at com.sun.net.ssl.internal.ssl.AppOutputStream.write(Unknown Source)
    at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
    at java.io.BufferedOutputStream.flush(Unknown Source)
    at org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(HttpConnection.java:827)
    at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1975)
    at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:993)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324)
    at fr.openwide.talendalfresco.rest.client.AlfrescoRestClient.execute(AlfrescoRestClient.java:117)
    … 4 more
    Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
    at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
    at sun.security.validator.Validator.validate(Unknown Source)
    at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source)
    at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
    at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
    … 22 more
    Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
    at java.security.cert.CertPathBuilder.build(Unknown Source)
    … 28 more
    Job TestImportAlfresco terminé à 12:15 28/04/2009. [Code sortie=1]

    J’essaierai de connecter ultérieurement un Alfresco non protégé par un CAS, afin de pouvoir mener les tests à leur termes.

    Encore merci

  14. pierre
    Posted 26 mai 2009 at 8 h 46 min | Permalink

    Bonjour Nicolas,

    Pourrais-tu me donner quelques indications sur le fonctionnement du Association Target Mapping du composant tAlfrescoOutput.
    J’essaie de créer des associations entre 2 objets mais sans succès.

  15. nferay
    Posted 26 mai 2009 at 9 h 19 min | Permalink

    Bonjour Pierre, je t’invite à consulter le wiki suivant http://knowledge.openwide.fr/bin/view/Main/AlfrescoETLConnector et la forge alfresco http://forge.alfresco.com/frs/?group_id=206 . C’est tout frais :) )
    Il y a un scénario avec des associations sous la forme d’un job talend qui peut être téléchargé. De mémoire, tu verras dedans l’utilisation d’un taggregateRow pour construire la population sur laquelle tu souhaites faire une association et l’utilisation de type list pour la gérer

  16. Quiblier
    Posted 26 juin 2009 at 13 h 49 min | Permalink

    Bonjour, j’essaye d’installer ETL connector (j’ai Alfresco Enterprise 3.0 SP1 et Talend version 3.1.2 or quand je lance Alfresco avec les .jar nommer dans ce tuto j’obtient cette erreu:

    GRAVE: Exception lors de l’envoi de l’�v�nement contexte initialis� (context initialized) � l’instance de classe d’�coute (listener) org.springframework.web.context.ContextLoaderListener
    org.alfresco.error.AlfrescoRuntimeException: Schema auto-update failed

    Auriez-vous une solution à me proposez?
    Merci

  17. nferay
    Posted 26 juin 2009 at 14 h 19 min | Permalink

    Bonjour Quiblier
    Bonjour, comme c’est préciser sur le blog nous avons financer le développement de se connecteur pour un alfresco entreprise 2.1 et nous n’avons pour le moment pas projeter un passage en 3.x

    A titre de test j’ai fais quelques tests de base avec 3.0 community et l’unique problème (que j’ai détecté, il y en a peut être d’autres) était sur la propriété author que le connecteur dans sa version actuelle n’arrive pas à initialiser. Cela ne m’a pas empêcher de faire des jobs simples.

    Je n’ai pas encore fait de test avec talend 3.1.2. Je t’invite à remonter le problème sur le bugtracker de talend.

  18. Quiblier
    Posted 26 juin 2009 at 16 h 16 min | Permalink

    Peut-être que mes .jar ne sont pas les bons, j’ai essayé de trouver les .jar citer dans le tuto ci-dessus mais dans mon Talend il n’y a pas le fichier “talendalfresco-alfresco_1.0.jar” connaiteraiez- vous un lien pour récupérer ce fichier ?
    Merci et bon week-end!

  19. Quiblier
    Posted 30 juin 2009 at 9 h 11 min | Permalink

    C’est bon j’ai réussi à installer le connecteur talendalfresco par contre lors de la réalisation du tuto ci-dessus quand je double-clique sur le composant tAlfrescoOutput je n’est aucun available aspect.
    Je ne trouve pas non plus le fichier contentModel.xml dans lequel je pense doivent se trouver les available aspect.
    Aurais-tu une solution?
    Merci.

  20. nferay
    Posted 30 juin 2009 at 10 h 56 min | Permalink

    Bonjour Quiblier. Il faut que tu récupères le contentModel.xml sur ton serveur alfresco. C’est lui qui définit le modèle standard des données dans alfresco. Le fichier se trouve dans alfresco\tomcat\shared\classes\alfresco\extension. Ensuite tu auras accès aux métas alfresco

  21. Quiblier
    Posted 1 juillet 2009 at 8 h 55 min | Permalink

    Bonjour, tout d’abord merci pour ta patience.
    J’ai réussi à exécuter le job, mais l’arborescence que je voulait créer n’a pas le tête que je voulais, en fait il y a bien dans alfresco un dossier racine de créer et dans ce dossier racine il y un autre dossier racine un dossier dos1, dos2 et dos 3 et tout ces dossier sont vides donc il n’a pas créer les dos11,12,21,22,31,32 si çà peut t’aider à comprendre mon problème je te donne ce qui est marqué dans le log

    Démarrage du jobtest a 09:30 01/07/2009.

    Command import with parameters [[name=path, value=\, name=clientPathDelimiter, value=\, name=documentMode, value=Create only, name=containerMode, value=Create or update, name=ticket, value=TICKET_89e9533c8710f57d5cd8004f772c80a93749137a]] and resultCode 00 Success null
    Result (log file C:/TOS-Win32-r25815-V3.1.2/workspace/out.xml) :

    success;\;in 222451522ns;2009-07-01 09:30:14.594;workspace://SpacesStore/07e611cb-a909-4656-a476-deaffc224fb4;{http://www.alfresco.org/model/content/1.0}folder {http://www.alfresco.org/model/content/1.0}titled
    success;[node was not created];in 271126765ns;2009-07-01 09:30:14.891;workspace://SpacesStore/7365464e-3df9-4872-b70a-d4f8d7e977b6;{http://www.alfresco.org/model/content/1.0}folder
    success;[node was not created];in 324207988ns;2009-07-01 09:30:15.234;workspace://SpacesStore/5d7bfee5-c8ba-4b2e-95ce-c5f29ed2516c;{http://www.alfresco.org/model/content/1.0}folder {http://www.alfresco.org/model/content/1.0}titled
    success;[node was not created];in 200219054ns;2009-07-01 09:30:15.437;workspace://SpacesStore/eefa683c-73e1-486a-89b8-3f0c9cd0e042;{http://www.alfresco.org/model/content/1.0}folder
    error;[node was not created]\racine\dos1;Transaction didn’t commit: Found 1 integrity violations: Invalid property value: Node: workspace://SpacesStore/fb604e0e-a055-4024-902f-3d5ada2fde84 Type: {http://www.alfresco.org/model/content/1.0}folder Property: {http://www.alfresco.org/model/content/1.0}name Constraint: Value ‘racine\dos1′ is not valid as a file name. This property must be a valid file name.;2009-07-01 09:30:15.578;{http://www.alfresco.org/model/content/1.0}folder;{http://www.alfresco.org/model/content/1.0}titled
    error;[node was not created]\racine\dos1;Transaction didn’t commit: Found 1 integrity violations: Invalid property value: Node: workspace://SpacesStore/3879384c-7375-4292-ac1c-2517def5aa15 Type: {http://www.alfresco.org/model/content/1.0}folder Property: {http://www.alfresco.org/model/content/1.0}name Constraint: Value ‘racine\dos1′ is not valid as a file name. This property must be a valid file name.;2009-07-01 09:30:15.656;{http://www.alfresco.org/model/content/1.0}folder;{http://www.alfresco.org/model/content/1.0}titled
    error;[node was not created]\racine;Trying to import document in mode Create only, but node already exists with name racine and noderef workspace://SpacesStore/5d7bfee5-c8ba-4b2e-95ce-c5f29ed2516c;2009-07-01 09:30:15.656;{http://www.alfresco.org/model/content/1.0}folder;{http://www.alfresco.org/model/content/1.0}titled
    success;[node was not created];in 211154753ns;2009-07-01 09:30:15.875;workspace://SpacesStore/66cacb60-8c64-42f0-8355-514843deabc6;{http://www.alfresco.org/model/content/1.0}folder
    error;[node was not created]\racine\dos2;Transaction didn’t commit: Found 1 integrity violations: Invalid property value: Node: workspace://SpacesStore/262b8f68-2f39-4acb-84c4-8dd1e75bf53c Type: {http://www.alfresco.org/model/content/1.0}folder Property: {http://www.alfresco.org/model/content/1.0}name Constraint: Value ‘racine\dos2′ is not valid as a file name. This property must be a valid file name.;2009-07-01 09:30:15.969;{http://www.alfresco.org/model/content/1.0}folder;{http://www.alfresco.org/model/content/1.0}titled
    error;[node was not created]\racine\dos2;Transaction didn’t commit: Found 1 integrity violations: Invalid property value: Node: workspace://SpacesStore/83e341a9-0ad9-4254-b354-6c7e3f3e3396 Type: {http://www.alfresco.org/model/content/1.0}folder Property: {http://www.alfresco.org/model/content/1.0}name Constraint: Value ‘racine\dos2′ is not valid as a file name. This property must be a valid file name.;2009-07-01 09:30:16.047;{http://www.alfresco.org/model/content/1.0}folder;{http://www.alfresco.org/model/content/1.0}titled
    error;[node was not created]\racine;Trying to import document in mode Create only, but node already exists with name racine and noderef workspace://SpacesStore/5d7bfee5-c8ba-4b2e-95ce-c5f29ed2516c;2009-07-01 09:30:16.047;{http://www.alfresco.org/model/content/1.0}folder;{http://www.alfresco.org/model/content/1.0}titled
    success;[node was not created];in 213744372ns;2009-07-01 09:30:16.281;workspace://SpacesStore/8750ff69-d801-460a-9902-a30efaa24ac4;{http://www.alfresco.org/model/content/1.0}folder
    error;[node was not created]\racine\dos3;Transaction didn’t commit: Found 1 integrity violations: Invalid property value: Node: workspace://SpacesStore/ba715260-79bc-44ee-81f5-21b9cea3068f Type: {http://www.alfresco.org/model/content/1.0}folder Property: {http://www.alfresco.org/model/content/1.0}name Constraint: Value ‘racine\dos3′ is not valid as a file name. This property must be a valid file name.;2009-07-01 09:30:16.359;{http://www.alfresco.org/model/content/1.0}folder;{http://www.alfresco.org/model/content/1.0}titled
    error;[node was not created]\racine\dos3;Transaction didn’t commit: Found 1 integrity violations: Invalid property value: Node: workspace://SpacesStore/a739ca82-fe2c-4991-84f2-a3787702d067 Type: {http://www.alfresco.org/model/content/1.0}folder Property: {http://www.alfresco.org/model/content/1.0}name Constraint: Value ‘racine\dos3′ is not valid as a file name. This property must be a valid file name.;2009-07-01 09:30:16.453;{http://www.alfresco.org/model/content/1.0}folder;{http://www.alfresco.org/model/content/1.0}titled
    Job test terminé à 09:30 01/07/2009. [Code sortie=0]

  22. Quiblier
    Posted 1 juillet 2009 at 9 h 10 min | Permalink

    C bon j’ai réglé mon problème désolé de t’avoir embêter..

  23. Quiblier
    Posted 1 juillet 2009 at 10 h 07 min | Permalink

    En fait je pensais avoir réglé le problème, c’était au niveau du tableau des sorties de AlfrescoOutput, mais là il ne créé pas l’aborescence demander pourtant quand je teste avec le LogRow j’obtient le même résultat que dans le tuto, donc çà ne vient pas du fichier cvs, il me créer les dossiers racine,dos1,dos2,dos3,ssdos11,ssdos21et ssdos32

    Et le message que j’ai dans la console d’execution est le suivant:

    Démarrage du jobtest a 10:58 01/07/2009.

    [statistics] connecting to socket on port 4197
    [statistics] connected
    Command import with parameters [[name=path, value=\, name=clientPathDelimiter, value=\, name=documentMode, value=Create or update, name=containerMode, value=Create or update, name=ticket, value=TICKET_f677ca4707ec3b59542718f2dfff60a04d2c8af8]] and resultCode 00 Success null
    Result (log file C:/TOS-Win32-r25815-V3.1.2/workspace/out.xml) :

    success;\racine;in 243390909ns;2009-07-01 10:58:57.755;workspace://SpacesStore/93d4fd13-348d-4ce8-8cd2-48c85e0ba65f;{http://www.alfresco.org/model/content/1.0}folder {http://www.alfresco.org/model/content/1.0}titled
    success;\racine;in 327620276ns;2009-07-01 10:58:58.083;workspace://SpacesStore/93d4fd13-348d-4ce8-8cd2-48c85e0ba65f;{http://www.alfresco.org/model/content/1.0}folder
    success;[node was not created];in 203629686ns;2009-07-01 10:58:58.286;workspace://SpacesStore/820e60c0-a3aa-4b9b-b3fc-3c3d79384b7e;{http://www.alfresco.org/model/content/1.0}folder {http://www.alfresco.org/model/content/1.0}titled
    success;[node was not created];in 265782969ns;2009-07-01 10:58:58.552;workspace://SpacesStore/820e60c0-a3aa-4b9b-b3fc-3c3d79384b7e;{http://www.alfresco.org/model/content/1.0}folder
    success;[node was not created];in 163985482ns;2009-07-01 10:58:58.723;workspace://SpacesStore/c09e257a-dca7-422e-9f0a-fe9c1429c882;{http://www.alfresco.org/model/content/1.0}folder {http://www.alfresco.org/model/content/1.0}titled
    success;[node was not created];in 192879519ns;2009-07-01 10:58:58.927;workspace://SpacesStore/f1bf1b73-b66a-4331-9554-0801e345e610;{http://www.alfresco.org/model/content/1.0}folder {http://www.alfresco.org/model/content/1.0}titled
    success;[node was not created];in 284856510ns;2009-07-01 10:58:59.223;workspace://SpacesStore/9e1216c4-0015-44b9-99db-acb6f4e685c7;{http://www.alfresco.org/model/content/1.0}folder {http://www.alfresco.org/model/content/1.0}titled
    success;[node was not created];in 373217829ns;2009-07-01 10:58:59.598;workspace://SpacesStore/9e1216c4-0015-44b9-99db-acb6f4e685c7;{http://www.alfresco.org/model/content/1.0}folder
    success;[node was not created];in 180387189ns;2009-07-01 10:58:59.786;workspace://SpacesStore/adc6e92a-3f85-49c7-8455-3f65c46959bf;{http://www.alfresco.org/model/content/1.0}folder {http://www.alfresco.org/model/content/1.0}titled
    success;[node was not created];in 166091435ns;2009-07-01 10:58:59.958;workspace://SpacesStore/cfbe0f97-09aa-4b84-a396-200cb0f277bd;{http://www.alfresco.org/model/content/1.0}folder {http://www.alfresco.org/model/content/1.0}titled
    success;[node was not created];in 198675488ns;2009-07-01 10:59:00.161;workspace://SpacesStore/e4a394b7-8f54-467d-b047-fcd9de4b2eeb;{http://www.alfresco.org/model/content/1.0}folder {http://www.alfresco.org/model/content/1.0}titled
    success;[node was not created];in 155226879ns;2009-07-01 10:59:00.317;workspace://SpacesStore/e4a394b7-8f54-467d-b047-fcd9de4b2eeb;{http://www.alfresco.org/model/content/1.0}folder
    success;[node was not created];in 239445148ns;2009-07-01 10:59:00.567;workspace://SpacesStore/ff1ac0fd-4b97-4020-8efb-d206349a9e39;{http://www.alfresco.org/model/content/1.0}folder {http://www.alfresco.org/model/content/1.0}titled
    success;[node was not created];in 252347072ns;2009-07-01 10:59:00.817;workspace://SpacesStore/0e10ab5a-4737-4977-8f26-7db29dc3dc26;{http://www.alfresco.org/model/content/1.0}folder {http://www.alfresco.org/model/content/1.0}titled
    [statistics] disconnected

    Je n’est pas l’impression qu’il y ait des erreurs dedans…

  24. Quiblier
    Posted 1 juillet 2009 at 10 h 41 min | Permalink

    J’ai relancé le job en demandant des traces et voilà les erreurs

    error;\racine\dos3\ssdos31;could not insert: [org.alfresco.repo.domain.hibernate.NodeImpl], nested exception is org.hibernate.exception.ConstraintViolationException: could not insert:

    A quoi cela peut-être du ??

  25. nferay
    Posted 1 juillet 2009 at 10 h 53 min | Permalink

    Bonjour, Quiblier
    Pour ton premier problème il semble que tu avais mappé le name avec le chemin du csv. Dans le chemin il y des caractères “\” qui ne doivent pas être valide pour la propriété name. C’est pourquoi dans le tuto nous mappons sur la propriété nom du fichier csv.

    Pour le deuxième problème, je n’ai pas trop compris. Tous les dossiers sont créés mais à la racine ? Si c’est le cas, regarde si le “target location” du talfresco est bien mappé sur chemin (name doit être mappé sur nom et “target location” sur chemin).

    Pour le dernier problème, l’option “document mode” talfresco est paramétré en “create only”. Donc si tu veux rejouer ton job, il râle car les dossiers existent déjà. passe le à update.

  26. Quiblier
    Posted 1 juillet 2009 at 14 h 04 min | Permalink

    Bonjour, j’ai bien regerdé ce que vous m’avez dit mais çà ne change rien j’ai:
    mapper target locationsur chemin
    mapper name sur nom

    et phénomène inexpliquer à chaque fois que je test mon job sur alfresco il me donne des résultats differents c.a.d qu’il aussi bien copier les fichiers racine,1,3,11,12,3
    que racine,2,21,22,3,31,32

  27. Matthew
    Posted 24 juillet 2009 at 20 h 17 min | Permalink

    :) Sorry, my french is not good enought to write, only read.

    But we are having the same problem with talentd and alfresco, randomly files are not being created…. one or 2 per 10…

    with same errors…

    success;\Content\DGP-M-308355306017bb0a2c0801267332eba75e9e0d.mmf;in 66144111ns;2009-07-24 21:10:42.466;workspace://SpacesStore/292a685a-3f90-4efc-bb01-1884d2f4b8c2;{mtbsmusic.model}RingToneFile
    success;[node was not created];in 74806446ns;2009-07-24 21:10:42.547;workspace://SpacesStore/f4892aaa-2bfd-44e5-bc10-ae117a552f09;{mtbsmusic.model}RingToneFile
    success;[node was not created];in 82724681ns;2009-07-24 21:10:42.647;workspace://SpacesStore/4d2cae84-43e3-48e6-abcc-a9a796808236;{mtbsmusic.model}RingToneFile
    success;[node was not created];in 143070901ns;2009-07-24 21:10:42.793;workspace://SpacesStore/903b25e8-5c16-4658-b39f-3433186b3797;{mtbsmusic.model}RingToneFile
    success;[node was not created];in 91628531ns;2009-07-24 21:10:42.888;workspace://SpacesStore/3433123e-7d23-4d7f-9d2d-ff8221f38904;{mtbsmusic.model}RingToneFile
    success;[node was not created];in 64593890ns;2009-07-24 21:10:42.956;workspace://SpacesStore/ce794f6b-7fe2-4698-b26b-cc1ef88e22a8;{mtbsmusic.model}RingToneFile
    success;[node was not created];in 92394142ns;2009-07-24 21:10:43.052;workspace://SpacesStore/02531e8a-fb78-44f6-843b-1c80d3626305;{mtbsmusic.model}RingToneFile
    success;[node was not created];in 84296622ns;2009-07-24 21:10:43.140;workspace://SpacesStore/055d0f8a-f21c-40f7-9cb2-dd7143b7773f;{mtbsmusic.model}RingToneFile
    error;\Content\DGP-M-308355306018dd0a2c0801267332eb92e126b2.aac;could not insert: [org.alfresco.repo.domain.hibernate.NodeImpl], nested exception is org.hibernate.exception.ConstraintViolationException: could not insert: [org.alfresco.repo.domain.hibernate.NodeImpl];2009-07-24 21:10:43.155;{mtbsmusic.model}RingToneFile;
    success;[node was not created];in 58177475ns;2009-07-24 21:10:43.217;workspace://SpacesStore/9e7131ea-6099-41f0-b868-07b08b72fb10;{mtbsmusic.model}RingToneFile
    error;\Content\DGP-M-3083553060193a0a2c0801267332eba8635254.mmf;could not insert: [org.alfresco.repo.domain.hibernate.NodeImpl], nested exception is org.hibernate.exception.ConstraintViolationException: could not insert: [org.alfresco.repo.domain.hibernate.NodeImpl];2009-07-24 21:10:43.235;{mtbsmusic.model}RingToneFile;
    success;[node was not created];in 67377317ns;2009-07-24 21:10:43.307;workspace://SpacesStore/e50d6a06-dac3-4caa-8c5f-7ed9b0ee0ca1;{mtbsmusic.model}RingToneFile
    success;[node was not created];in 60882819ns;2009-07-24 21:10:43.372;workspace://SpacesStore/9ce6333b-ff40-48db-806a-101e34520414;{mtbsmusic.model}RingToneFile
    success;[node was not created];in 58988555ns;2009-07-24 21:10:43.434;workspace://SpacesStore/e128886c-1f97-4b9c-b445-599b12e98398;{mtbsmusic.model}RingToneFile
    success;[node was not created];in 58508598ns;2009-07-24 21:10:43.547;workspace://SpacesStore/1c9383e7-a2ee-4953-bda3-9fccc8e2ee6b;{mtbsmusic.model}RingToneFile
    success;[node was not created];in 58766735ns;2009-07-24 21:10:43.609;workspace://SpacesStore/b4c1138c-c739-4ae9-8634-8d54de96dae0;{mtbsmusic.model}RingToneFile
    success;[node was not created];in 57935611ns;2009-07-24 21:10:43.671;workspace://SpacesStore/39c735c4-40da-4d6c-8c1b-311051633ec9;{mtbsmusic.model}RingToneFile
    success;[node was not created];in 95407560ns;2009-07-24 21:10:43.772;workspace://SpacesStore/17f90659-df25-4dfd-abda-236ba8cdf1cb;{mtbsmusic.model}RingToneFile
    success;[node was not created];in 56976677ns;2009-07-24 21:10:43.832;workspace://SpacesStore/32bd5804-72a0-4ab1-8f6c-40b38e582260;{mtbsmusic.model}RingToneFile
    success;[node was not created];in 59081934ns;2009-07-24 21:10:43.894;workspace://SpacesStore/e42abf88-228c-4774-8523-62f6b1b37ed0;{mtbsmusic.model}RingToneFile

One Trackback

  1. [...] le premier article nous avons réalisé un job simple pour initialiser un plan de classement dans alfresco. Nous [...]