J'ai avancé depuis mon dernier message et effectivement comme tu me le suggère j'ai inclus dans mon script "Action PDF" l'appel à mon processus automator (que j'ai appelé "ActionDossier-ASSISTANTES.workflow") et voici le code dans son entier (l'appel à mon processus sont les 2 lignes 36 et 37 ):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 -- Script à enregistrer dans Bibliothèque / Scripts / Folder Action Scripts -- On suppose, dans le second script que celui-ci s'appelle "Action PDF" on adding folder items to Mon_Dossier after receiving Liste_Fichiers -- bien définir le nom du chemin selon qu'il s'agit d'un disque distant ou d'un dossier sur le même disque ! -- par exemple : Set Chemin_AFC to "Volumes:Mon_Disque_Serveur:Users:Nom_user:Save:Assistantes:AFC:" set Chemin_AFC to "Save:Assistantes:AFC:" tell application "Finder" set Dos_client to container of container of Mon_Dossier -- lit le dossier parent du sous dossier contenant le dossier dans lequel on a déposé les fichiers set Nom_Client to name of Dos_client repeat with Fichier in Liste_Fichiers -- boucle car il est possible que l'on aie déposé plusieurs fichiers ! set Nom_Fichier to name of Fichier -- Si le dossier Nom_Client dans le dossier AFC n'existe pas : on le crée if not (exists (Chemin_AFC & Nom_Client)) then make new folder in Chemin_AFC with properties {name:Nom_Client} set N_Fichier to duplicate Fichier to folder (Chemin_AFC & Nom_Client) --copie du fichier initial vers Chemin_AFC : Nom_Client : -- attente de fin de téléchargement avant de renommer (vérification que la taille ne change plus) try set OldSize to -1 repeat until (size of N_Fichier) = OldSize set OldSize to (size of N_Fichier) delay 1 end repeat end try end repeat end tell -- Appel processus Automator "ActionDossier-ASSISTANTES.workflow" tell application "System Events" to set nomProcessus to (((path to «class flow» from user domain) as string) & "ActionDossier-ASSISTANTES.workflow") tell application "System Events" to attach action to (Chemin_AFC & Nom_Client) as alias using (nomProcessus as string) end adding folder items to
Alors tout marche bien mais j'ai des précisions à te demander pour essayer de perfectionner :
- Existe-t-il un moyen plus simple et plus efficace pour appeler mon script Automator (Shell, je ne connais pas). Avec ma méthode ça marche mais j'ai l'impression que ça ne va pas assez vite (dans mon script automator j'applique un filtre Quartz). Par ailleurs, j'ai constaté que mon processus automator ne s'applique jamais au 1° fichier entrant. Pour les suivants, ça marche mais pas pour le 1° fichier entrant. Bizarre, non !
- Lors du transfert des fichiers du sous-dossier "--PDF" vers le sous-dossier Nom_Client se trouvant dans "Save:Assistantes:AFC:", les fichiers entrants n'écrasent pas les fichiers déjà présents et portant le même nom. J'ai l'impression que le transfert ne se fait pas. Comment peut-on résoudre cela sans qu'1 fenêtre de dialogue me signale la présence du fichier portant le même nom ?
- Les 2 scripts que tu m'as aidé à mettre en place, soit le script n°1 pour la création de dossier, sous-dossier et sous-sous-dossier (dont le dossier "--PDF") + le script n°2 ("Action PDF") figurent dès lors attachés aux dossiers lorsque on clique sur l'icône Script en haut de l'écran et qu'on choisit configuration de dossiers. Si on applique ces 2 scripts à bon nombre de dossiers, la liste sera longue. Cela ne risque-t-il pas de ralentir leur vitesse d'exécution ? Comment faire en sorte de nettoyer automatiquement (c'est à dire de supprimer ces actions liées aux dossiers) lorsqu'on on n'en aura plus besoin ?
Je te remercie encore d'avance pour ton aide.
Bonsoir
Partager