#1 Tue 30 June 2009 10:48
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
FME2009 : comment déplacer un fichier source
Aloha
Comment déplacer un fichier source après traitement ?
D'avance, merci,
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#2 Tue 30 June 2009 11:12
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 347
Re: FME2009 : comment déplacer un fichier source
Comme cela à froid, j'essayerais d'utiliser un script TCL associé au script de fermeture dans les paramètres avancés de ton projet
Hors ligne
#3 Tue 30 June 2009 13:51
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: FME2009 : comment déplacer un fichier source
J'ai mis un script en TCL Shutdown
Code:
proc runExport {} { set dir2data ["$::FME_MacroValues( SourceDataset_ACAD)"] foreach f [glob -dir $dir2data {*.dxf,*.dwg} ] { \ set base [split {FME_GetAttribute fme_dataset}] set chemin_emprise "" append chemin_emprise [lindex base 0] append chemin_emprise "\\" append chemin_emprise [lindex base 1] append chemin_emprise "\\" append chemin_emprise [lindex base 2] append chemin_emprise "\\" append chemin_emprise [lindex base 3] append chemin_emprise "\\" append chemin_emprise [lindex base 4] append chemin_emprise "\\transformes\\" append chemin_emprise [FME_GetAttribute fme_basename] append chemin_emprise "\\emprise_prestataire\\" file copy f $chemin_emprise } } runExport
mais j'obtiens çà comme erreur :
FME_END_TCL failure: can't read "::FME_MacroValues( SourceDataset_ACAD)": no such element in array
Program Terminating
Une idée ?
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#4 Wed 01 July 2009 09:06
Re: FME2009 : comment déplacer un fichier source
Dans une fonction les variables sont locales, or FME_MacroValues est définie globalement.
Essayez de sortir le code de la fonction.
Hors ligne
#5 Wed 01 July 2009 10:17
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: FME2009 : comment déplacer un fichier source
Donc faire un appel de la variable du type runExport "$::FME_MacroValues( SourceDataset_ACAD)" ?
Code:
proc runExport {dir2data} { #set dir2data [$::FME_MacroValues(SourceDataset_ACAD)] foreach f [glob -dir $dir2data {*.dxf} ] { \ set base [split {FME_GetAttribute fme_dataset}] set chemin_emprise "" append chemin_emprise [lindex base 0] append chemin_emprise "\\" append chemin_emprise [lindex base 1] append chemin_emprise "\\" append chemin_emprise [lindex base 2] append chemin_emprise "\\" append chemin_emprise [lindex base 3] append chemin_emprise "\\" append chemin_emprise [lindex base 4] append chemin_emprise "\\transformes\\" append chemin_emprise [FME_GetAttribute fme_basename] append chemin_emprise "\\emprise_prestataire\\" file copy f $chemin_emprise }} runExport $::FME_MacroValues($SourceDataset_ACAD)
Me renvoie
2009-07-01 10:13:31| 2.6| 0.1|ERROR |TCLCaller_2: @TCL -- failed to evaluate expression `Arbo' -- invalid command name "E:\FME\fichiers données\traitement_auto\transfo_lever_geometre\fichier_source\**\*.dxf"
Héhé ça avance :
voici le code presque parfait :
Code:
proc runExport {} { set dir2data "E:\\FME\\fichiers_donnees\\traitement_auto\\transfo_lever_geometre\\fichier_source\\" foreach d [glob -dir $dir2data -type d * ] { \ FME_LogMessage fme_inform $d set base [split $d {\\}] set chemin_emprise "" append chemin_emprise [lindex base 0] append chemin_emprise "\\" append chemin_emprise [lindex base 1] append chemin_emprise "\\" append chemin_emprise [lindex base 2] append chemin_emprise "\\" append chemin_emprise [lindex base 3] append chemin_emprise "\\" append chemin_emprise [lindex base 4] append chemin_emprise "\\transformes\\" foreach f [glob -nocomplain -dir $d *] { FME_LogMessage fme_inform $f set ch chemin_emprise set file [split $f {\.}] append ch [lindex file 0] append ch "\\emprise_prestataire\\" file copy f $ch } }\ } runExport
Mais j'ai l'erreur :
2009-07-01 13:59:02| 30.9| 0.0|INFORM|Translation was SUCCESSFUL with 26 warning(s) (4223 feature(s)/28115 coordinate(s) output)
2009-07-01 13:59:02| 30.9| 0.0|INFORM|FME Session Duration: 36.9 seconds. (CPU: 25.7s user, 4.0s system)
2009-07-01 13:59:02| 30.9| 0.0|INFORM|END - ProcessID: 1132, peak process memory usage: 115796 kB, current process memory usage: 86060 kB.
E:\FME\fichiers_donnees\traitement_auto\transfo_lever_geometre\fichier_source\B.P.D. G.E
E:\FME\fichiers_donnees\traitement_auto\transfo_lever_geometre\fichier_source\B.P.D. G.E/20081114_Curie_de_Gaulle_Sorbon_St_Brice_Courcelles_gdu.dxf
FME_END_TCL failure: error copying "f": no such file or directory
Program Terminating
Translation FAILED.
Quelqu'un a une idée
Dernière modification par Pierre (Wed 01 July 2009 14:03)
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne