Fichier .CSV en sortie webscript
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-02-2012 11:43 AM
Bonjour tout le monde,
je dois générer un fichier CSV via le webscript Alfresco mais j'ai qques difficultés.
J'ai crée le Fichier "list.get.desc.xml" (en spécifiant le format )
Fichier Javascript "list.get.js"
Ce script javascript fonctionne parfaitement et génère bien le .CSV via :
http://localhost:8080/alfresco/command/script/execute?scriptPath=/Company%20Home/Data%20Dictionary/S...
Et enfin le fichier "list.get.csv.ftl" qui est vide puisque je ne sais pas quoi mettre dedans pour la génération du fichier.
Les exemples sur la génération de fichiers CSV sont inexistants sur le web , si vous avez des idées pour résoudre ce problème je serais preneur
Merci
je dois générer un fichier CSV via le webscript Alfresco mais j'ai qques difficultés.
J'ai crée le Fichier "list.get.desc.xml" (en spécifiant le format )
<webscript><shortname>List tags</shortname><description>Tags Alfresco</description><url>/list_tags</url><format default="csv"></format><authentication>user</authentication></webscript>
Fichier Javascript "list.get.js"
const filename = "output.csv";function main(){ var file = createFile(filename); var content = ""; var categoryResults = classification.getRootCategories("cm:taggable"); categoryResults.sort(sortByName); var i = 0; for each (var result in categoryResults) { var query = '@cm\\:taggable:"' + result.getNodeRef() + '"'; var nodes = search.luceneSearch(query); var message = ++i + ';"' + result.name + '";' + nodes.length; content += message + '\n'; logger.warn(message); } file.content += content; return 1;}/* Sort the results by case-insensitive name */function sortByName(a, b){ return (b.properties.name.toLowerCase() > a.properties.name.toLowerCase() ? -1 : 1);}function createFile(name){ var file = companyhome.childByNamePath(name); if (file == null) file = companyhome.createFile(name); if (file == null) throw new Error("Cannot create " + name); file.content = ""; return file;}main();
Ce script javascript fonctionne parfaitement et génère bien le .CSV via :
http://localhost:8080/alfresco/command/script/execute?scriptPath=/Company%20Home/Data%20Dictionary/S...
Et enfin le fichier "list.get.csv.ftl" qui est vide puisque je ne sais pas quoi mettre dedans pour la génération du fichier.
Les exemples sur la génération de fichiers CSV sont inexistants sur le web , si vous avez des idées pour résoudre ce problème je serais preneur

Merci
Labels:
- Labels:
-
Archive
7 REPLIES 7
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-02-2012 01:21 PM
Qu'est ce que tu veux exactement afficher sur ton template list.get.csv.ftl ?
Merci.
Merci.
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-02-2012 11:27 PM
Bonjour,
Pour information, le "format de sortie" CSV n'existe pas pour les webscripts.
Le CSV est du texte seul, il vous faut donc utiliser le suffixe "text" : list.get.text.ftl.
Après, pour ce qui est du "remplissage" de ce fichier, je vous renvoie à la question de mmly.
Cordialement,
Charles Le Seac'h
Pour information, le "format de sortie" CSV n'existe pas pour les webscripts.
Le CSV est du texte seul, il vous faut donc utiliser le suffixe "text" : list.get.text.ftl.
Après, pour ce qui est du "remplissage" de ce fichier, je vous renvoie à la question de mmly.
Cordialement,
Charles Le Seac'h
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-03-2012 03:57 AM
Bonjour,
je vous remercie pour ces infos.
Sur mon template je veux juste récupérer la sortie du fichier Javascript (c'est à dire le fichier "output.csv"), d'où l'interêt du "list.get.csv.ftl", qui me permet bien de générer un fichier .CSV mais sans les données envoyé par le javascript. La question est: Comment récupérer la sortie de mon Javascript sur le template ?
je vous remercie pour ces infos.
Sur mon template je veux juste récupérer la sortie du fichier Javascript (c'est à dire le fichier "output.csv"), d'où l'interêt du "list.get.csv.ftl", qui me permet bien de générer un fichier .CSV mais sans les données envoyé par le javascript. La question est: Comment récupérer la sortie de mon Javascript sur le template ?
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-04-2012 03:49 AM
Bonjour,
Ce n'est pas tout à fait vrai de dire que le format CSV n'existe pas pour les webscripts, il n'est juste pas défini par défaut par Alfresco.
Pour l'ajouter il suffit de le déclarer :
Ensuite vous pouvez créer un template de rendu au format CSV : list.get.csv.ftl
Si vous voulez que ce rendu soit celui par défaut, vous pouvez le spécifier dans le fichier XML de description de votre webscript (list.get.desc.xml) :
Sinon il vous suffit de spécifier le format de retour dans l'URL en ajoutant le paramètre format=csv.
http://wiki.alfresco.com/wiki/Web_Scripts#How_Do_I_Use_a_Web_Script.3F
Cordialement.
Ce n'est pas tout à fait vrai de dire que le format CSV n'existe pas pour les webscripts, il n'est juste pas défini par défaut par Alfresco.
Pour l'ajouter il suffit de le déclarer :
<!– Add mimetype text/csv –> <bean parent="webscripts.formatmap"> <property name="formats"> <props> <prop key="csv">text/csv</prop> </props> </property> </bean>
http://wiki.alfresco.com/wiki/3.0_Web_Scripts_Framework#HTTP_Response_FormatsEnsuite vous pouvez créer un template de rendu au format CSV : list.get.csv.ftl
Si vous voulez que ce rendu soit celui par défaut, vous pouvez le spécifier dans le fichier XML de description de votre webscript (list.get.desc.xml) :
<format default="csv" />
Sinon il vous suffit de spécifier le format de retour dans l'URL en ajoutant le paramètre format=csv.
http://wiki.alfresco.com/wiki/Web_Scripts#How_Do_I_Use_a_Web_Script.3F
Cordialement.
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-04-2012 04:46 AM
Bonjour BertrandF,
comme je l'ai marqué au dessus j'ai bien crée le template "list.get.csv.ftl" et spécifié le format par défaut dans le fichier xml:
J'arrive donc à générer un fichier .csv mais qui est vide ou rempli avec des données enregistré en dur dans le template"list.get.csv.ftl"
Mon problème est que je ne sais pas comment envoyer les données du Javascript dans mon template … :cry:
comme je l'ai marqué au dessus j'ai bien crée le template "list.get.csv.ftl" et spécifié le format par défaut dans le fichier xml:
<format default="csv" />
J'arrive donc à générer un fichier .csv mais qui est vide ou rempli avec des données enregistré en dur dans le template"list.get.csv.ftl"
Mon problème est que je ne sais pas comment envoyer les données du Javascript dans mon template … :cry:
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-04-2012 04:52 AM
Il faut utiliser la variable model.
Coté Javascript :
Coté Freemarker, vous aurez accès à deux variables : maVariable et monTableau.
http://docs.alfresco.com/4.0/topic/com.alfresco.enterprise.doc/concepts/ws-components.html
Coté Javascript :
model.maVariable = "test";model.monTableau = ["val1", "val2"];
Coté Freemarker, vous aurez accès à deux variables : maVariable et monTableau.
${maVariable}<#list monTableau as val> ${val} <#if val_has_next>,</#if></#list>
http://docs.alfresco.com/4.0/topic/com.alfresco.enterprise.doc/concepts/ws-components.html
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2012 06:27 AM
Je te remercie. ça fonctionne ^^
