Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/01/2012, 10h53   #1
Futur Membre du Club
 
Inscription : juillet 2011
Messages : 99
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 99
Points : 18
Points : 18
Par défaut comment executer automatiquement une macro avec talend ?

Bonjour à tous,
je cherche comment je lance une macro excel à partir de talend.
Merci pour vos réponses.
sinoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 11h34   #2
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
En effet j'ai déjà fait une rechercher à propos de ce sujet, en fait ce n'est pas possible directement avec les composants Talend, ce qu'il faut faire c'est utiliser du code externe et l'appeler style JAVA ou bien la ligne de commande directement.

Il y' a une méthode que j'avais trouvé mais je ne l'ai pas testé, c'est de créer un script VB qui lance la macro puis d'appeler le script VB avec la commande line à partir de JAVA , c'est pas compliqué mais c'est très long comme chemin.

Exemple :
Tu crées ton VBScript monScript.vbs comme ça :
Code :
1
2
3
4
5
6
7
8
Dim objXL
SET objXL = CreateObject("Excel.Application")
WITH objXL
    .Workbooks.Open ("File_Path")
    .Application.Run "Macro_Name"
    .Application.Quit
End WITH
SET objXL = Nothing
Et tu le lances avec une fonction JAVA comme ça :
Code :
<a href="http://runtime.getruntime.exec/" target="_blank">Runtime.getRuntime().exec("cmd /c start monScript.vbs");</a>
A tester !!
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 12h34   #3
Futur Membre du Club
 
Inscription : juillet 2011
Messages : 99
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 99
Points : 18
Points : 18
Merci pour ta réponse,
en faite, je crée un fichier csv avec talend avec une entête et des données bien sur, le nom du fichier est automatique et qui prend la date du traitement, j'execute une macro sur ce fichier pour créer un fichier excel avec plusieurs feuilles.
Je dois préciser dans le Workbooks.Open("File_Path"), le chemin et le nom du fichier csv créé par talend,
et je met le nom de la macro dans la ligne suivante du code VB, c'est ça normalement n'est ce pas ?
sinoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 12h43   #4
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Oui c'est exactement ça,
Pour le code JAVA il y' a une erreur voilà le bon :
Code :
Runtime.getRuntime().exec("cmd /c start monScript.vbs");
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 14h02   #5
Futur Membre du Club
 
Inscription : juillet 2011
Messages : 99
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 99
Points : 18
Points : 18
une question simple, s'il te plait, je crée le script VB dans n'importe quel dossier et je mets le chemin dans la commande java ou bien je dois le créer dans le workspace de talend par défaut ?
sinoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 14h53   #6
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Le script VB n'a aucun rapport avec ton projet Talend, tu le crées où tu veux du moment que tu spécifies le bon chemin dans la commande runtime.
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 15h30   #7
Futur Membre du Club
 
Inscription : juillet 2011
Messages : 99
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 99
Points : 18
Points : 18
Donc le script sera un java script et il est executé (par exemple) dans le planificateur des taches windows, il contient cette ligne de commande si j'ai bien compris:
Runtime.getRuntime().exec("cmd /c start monScript.vbs"); avec la spécification du chemin correcte.

Et donc le role de talend dans mon projet c'est de créer automatiquement le fichier csv.
sinoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 16h08   #8
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Ce n'est pas un javascript c'est du VB Script, ce dernier va te permettre de lancer une macro.

Et l'appel à ce VB script tu peux le faire dans un code JAVA (avec une routine ou bien un tJavaRow). Le planificateur de tâche n'a rien a voir là dedans.

C'est on job Talend qui va lancer la création du CSV puis va lancer le code java qui va à son tour lancer le VB script , qui va à sont tour lancer la MACRO
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 16h20   #9
Futur Membre du Club
 
Inscription : juillet 2011
Messages : 99
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 99
Points : 18
Points : 18
Merci j'ai compris.
sinoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 18h40   #10
Futur Membre du Club
 
Inscription : juillet 2011
Messages : 99
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 99
Points : 18
Points : 18
J'ai encore un soucis, c'est que le fichier csv sur lequel le script lance la macro est généré automatiquement chaque semaine et prend un nom en fonction de la date de traitement, avec une variable de get.talend.date, donc il change de nom chaque semaine, c'est à dire le script doit etre changé chaque fois que le fichier est généré, si je pourrais passer le nom du fichier par variable dans le script c'est parfait.
un script java peut lancer la macro en prenant en compte le nom du fichier avec une variable date, je ne sais pas si j'étais clair ?
sinoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 10h22   #11
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
En fait JAVA ne fait que lancer l'interpreteur de commande "CMD" qui va lancer le VBScript, donc si tu arrives un créer une ligne de commande (dos) qui pourra lancer le script avec un paramètre alors c'est bon, côté JAVA il n y' a pas de soucis.

Fait une recherche dans ce sens là : "Comment executer VBscript avec paramètre?"
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2012, 16h06   #12
Candidat au titre de Membre du Club
 
Homme
Développeur décisionnel
Inscription : juin 2011
Messages : 27
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Tunisie

Informations professionnelles :
Activité : Développeur décisionnel
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juin 2011
Messages : 27
Points : 13
Points : 13
Tu peux utiliser le composant tSystem pour lancer une commande cmd.
Sinon pour l’exécution d''une macro VBA ou VB Script ,tu trouveras un composants dans le talend exchange qui te permettra de le faire.
matt1987 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h38.


 
 
 
 
Partenaires

Hébergement Web