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
27 Comments
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.
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.
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.
à 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.
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.
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 (
Bonsoir Nicolas,
je vais essayer de tester sur une autre instance xp.
Merci pour ton aide.
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
Bonjour,
ce composant est-il compatible avec la version 2.9b d’Alfresco ?
Merci d’avance,
Julien
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
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.
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.
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
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.
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
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
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.
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!
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.
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
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]
C bon j’ai réglé mon problème désolé de t’avoir embêter..
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…
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 ??
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.
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
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
[...] le premier article nous avons réalisé un job simple pour initialiser un plan de classement dans alfresco. Nous [...]