# Débutant - Assembler en PDF unique depuis un dossier



## pantone672 (17 Mars 2017)

Bonjour, 
débutant total sous AppleScript (d'ailleurs, si certains connaissent des moyens de s'y former en ligne, je suis preneur de toute suggestion), je cherche à automatiser une série de tâches administratives requises régulièrement par mon boulot.
Voilà, en 3 étapes, ce que j'aimerai réussir à faire :
1) Fusionner d'un click tous les PDFs relatifs à mes frais professionnels que je stocke dans un dossier EN COURS
2) Envoyer le PDF consolidé par mail à un destinataire précis, avec un petit message d'accompagnement.
3) Créer un dossier 20XX-MM (XX pour l'année, MM pour le mois en cours)
4) Déplacer le contenu de EN COURS dans le Dossier 20XX-MM pour permettre d'utiliser EN COURS pour le mois à venir.
5) Déclencher l'ensemble de ces actions automatiquement le 1er du mois.

Si quelqu'un peut me conseiller sur le 1), ce serait déjà super ! Il y'a bien une commande pour Fusionner les PDFs, mais je n'arrive pas à trouver comment lui dire d'utiliser comme source tous les PDFs du dossier EN COURS...

D'avance, merci !


----------



## zeltron54 (18 Mars 2017)

Bonjour,

Tu devrais pouvoir réaliser ça avec Automator..
Un début de piste pour la part 1:
- Obtenir les éléments du finder indiqués (tu y glisses ton dossier)
- Obtenir le contenu de dossier
- Combiner les pages de documents PDF (ajout de pages)
- Déplacer les éléments du finder (A: choisir le dossier destination)
- Renommer les éléments du finder:Nommer un seul élément (choisir un nom de base "consolide")

tu peux commencer par créer le nouveau dossier et tu peux ajouter toutes les actions nécessaires  pour envoi mail etc...

Pour le déclenchement automatique, tu peux créer un événement dans Ical.


----------



## zeltron54 (18 Mars 2017)

Je te fais un pas à pas avec automator.
Tu lances automator et tu choisis processus
Tu glisses les actions de la liste de gauche dans la fenêtre de droite, dans l'ordre ci-dessous.
Tu fais tes essais en cliquant sur exécuter. Quand tout fonctionne comme tu veux tu enregistres une version au format application.
Tu pourras programmer dans ical un événement qui lance cette application.

- Obtenir les éléments du finder indiqués (tu y glisses ton dossier en cour)
- Obtenir le contenu de dossier
- Combiner les pages de documents PDF (tu coches ajout de pages)
- Déplacer les éléments du finder (A: choisir le dossier destination en cour)
- Renommer les éléments du finder(Nommer un seul élément (choisir un nom de base « La compilation »)
- Nouveau message Mail (remplir destinataire, objet, message, le fichier « la compilation » se met automatiquement en PJ)
- Obtenir les éléments du finder indiqués (tu y glisses ton dossier en cour et dans option tu coches ignorer l’entrée de cette action)
- Obtenir le contenu de dossier
- Nouveau dossier (nom: archive, emplacement: bureau)
- Renommer les éléments du fin : Ajouter date ou heure (Date/heure: Actuelle, emplacement: Avant le nom, Séparateur: Trait de soulignement, format: année mois jour, séparateur: tiret)
- Obtenir les éléments du finder indiqués (tu y glisses ton dossier en cour et dans option tu coches ignorer l’entrée de cette action)
- Obtenir le contenu de dossier
-Placer des éléments du finder dans la corbeille


----------



## pantone672 (19 Mars 2017)

Un grand merci ! Ta réponse détaillée me met le pied à l'étrier pour continuer !

Petite question subsidaire : connaitrais-tu une ressource en ligne pour parfaire mon éducation en Automator ? C'est bien d'apprendre en faisant, mais s'il y'a moyen de suivre un simulacre de formation, je suis preneur 

Encore merci !


----------



## zeltron54 (19 Mars 2017)

Je ne connais pas de site de formation en ligne, désolé.

Mais la conception de petits services sur automator est très simple et un peu de pratique suffit et il y a le forum Macg !

J'ai testé la réponse que je t'ai faite tout fonctionne sans problème.
As-tu testé ? est ce que cela fonctionne ? et sinon explique ce qui ne va pas que l'on t'aide à trouver la solution !


----------



## pantone672 (19 Mars 2017)

Oui, cela marche parfaitement dans l'enchaînement des tâches. J'ai ensuite customisé un peu pour adapter à mes besoins.
Quelques questions cependant : 
- lorsque je renomme le nom du fichier qui est la compilation des PDFs, je n'ai pas la possibilité de le nommer AAAA_MM_la_compilation, mais uniquement AAAA_MM_JJ_la_compilation. C'est anecdotique, mais comme ce sont des relevés mensuels, j'avais l'habitude de les nommer AAAA_MM_la_compilation. Je ne sais pas si c'est possible simplement.
- idem lorsque je crée le nom de dossier. En découvrant les Variables, j'ai choisi d'utiliser la variable Année actuelle_Mois actuel pour les noms des dossiers d'archives mensuelles. Seul problème : Automator utilise le mois en toute lettres et ne propose pas d'alternatives, ce qui est différent de ma nomenclature actuelle (j'utilise 2017_01, 2017_02, etc). Là encore, ce n'est pas grave mais je me demande si on pourrait modifier comme je le souhaite.

Enfin, j'ai également découvert l'intérêt des variables dans l'envoi du mail. En ajoutant les variables "mois" et "année" dans le sujet du mail, cela donne "Sujet : Etat des frais - mars 2017", ce qui est quand même super classe 

Si tu as un retour à faire sur les deux points évoqués plus haut, je t'en remercie d'avance. En attendant, je m'en vais explorer d'autres utilisations possibles !!

Encore merci de ton aide.


----------



## zeltron54 (20 Mars 2017)

Pour tes 2 problèmes (qui en font qu'un) avoir "l' annéé_le mois" pour nommer le fichier et le dossier, le plus facile est de fabriquer une variable à partir d'un petit applescript.
La variable sera : année+tiret bas+mois en chiffre sur 2 caractères.
Pour ça tu ajoutes en début de ton processus

Exécuter un applescript qui contiendra le script ci-dessous:

on run {input, parameters}

   set ladate to current date
   set lannee to year of ladate as string
   set lemois to month of ladate as integer
   set lemois to "0" & lemois as string
   set lemois to characters -2 thru -1 of lemois as string
   set input to lannee & "_" & lemois
   return input

end run

Puis : définir la variable (que tu appelles par exemple Madate)
Dans : renommer les éléments du finder (pour le fichier tu ajoutes la variable madate_La_compilation)
Dans : nouveau dossier (tu ajoutes la variable Madate)
Tu peux supprimer le renommage de ce dossier

Le reste du processus ne change pas (déplacer les fichiers de encours dans la corbeille)

Voilà, si problème n'hésite pas à demander
Dis moi si tout fonctionne selon tes besoins! merci


----------



## pantone672 (21 Mars 2017)

Hello, 
merci pour ces éléments. Je bute sur la partie "définir la valeur de la variable". La boîte de dialogue de cette Action ne me permet pas de lui donner un nom, mais un "chemin" (j'ai sélectionné "madate")
Autre problème : je ne sais pas comment insérer la variable créée dans les deux boîtes d'Action "Renommer". 
Si tu peux m'éclairer...


----------



## zeltron54 (21 Mars 2017)

Pour donner un nom à la variable, dans la boite tu doubles clic sur nouvelle variable un petite fenêtre s'ouvre et te permet de donner le nom.
Une fois la variable nommer, elle apparaît en bas de la fenêtre dans la partie variable, tu fais un glissé déposé du nom dans la boite de saisie où tu veux la mettre .


----------



## Moonwalker (21 Mars 2017)

pantone672 a dit:


> Un grand merci ! Ta réponse détaillée me met le pied à l'étrier pour continuer !
> 
> Petite question subsidaire : connaitrais-tu une ressource en ligne pour parfaire mon éducation en Automator ? C'est bien d'apprendre en faisant, mais s'il y'a moyen de suivre un simulacre de formation, je suis preneur
> 
> Encore merci !



https://support.apple.com/fr-fr/HT2488

http://www.automatisez.net

Par le "père" d'Automator : http://www.macosxautomation.com/index.html

http://macscripter.net


----------



## pantone672 (23 Mars 2017)

zeltron54 a dit:


> Pour donner un nom à la variable, dans la boite tu doubles clic sur nouvelle variable un petite fenêtre s'ouvre et te permet de donner le nom.
> Une fois la variable nommer, elle apparaît en bas de la fenêtre dans la partie variable, tu fais un glissé déposé du nom dans la boite de saisie où tu veux la mettre .


Je n'y arrive pas. J'ai bien deux Actions :
- l'apple Script (pour commencer)
puis 
- Définir la valeur de la variable (ce qui est bizarre, cela devrait être définir le nom de la variable, mais bon...). Je clique sur Variable : et j'appelle ça madame.

La variable n'apparait ensuite nulle part dans la liste des variables disponibles... Ce qui semble assez logique : tant qu'on n'a pas fait tourner le script, la variable n'est pas créée, donc elle n'apparaît pas. Mais même après avoir fait tourner le script une première fois, toujours impossible de trouver la variable madate dans la liste.
Bref, je ne m'en sors pas


----------



## zeltron54 (23 Mars 2017)

Alors dans l'action "définir la valeur de la variable"   Tu double clic dans la boite de saisie ou il est écrit "Nouvelle variable" un petite fenêtre s'ouvre en affichant le nom par défaut qui est "stockage" tu le remplaces par ton nom : "Madate" .
Des que tu double clic et que la fenêtre  stockage apparaît le nom de cette variable  s'inscrit dans la zone variable en bas de la fenêtre générale.

Pour te servir de cette variable, tu sélectionnes son nom dans la liste et tu fais un glissé-déposé dans la zone de saisie de l'action qui t' intéresse.

Pour ton information, le résultat produit par une  action est visible  (après exécution) en cliquant sur résultat dans la fenêtre de cette action. Ce résultat est transmis à l'action suivant en temps qu'entrée, Si l'on ne veut pas se servir de ce résultat dans l'action suivante , on coche dans option la case "ignorer l'entrée de cette action".

J'espère que ce sera plus clair . 
Aller je suis sur que ça va le faire


----------



## pantone672 (23 Mars 2017)

Hello, 
merci beaucoup pour ces éclaircissements. C'était en fait un problème d'affichage : dans le cadre en bas dont tu parlais, j'avais affiché l'Historique du processus. Il y'a un bouton juste à côté qui permet d'afficher "la liste des variables de processus". Et là, miracle, il y'a bien ma variable "madate".
Il subsiste un problème - sinon, ce ne serait pas drôle - quand j'ajoute la variable dans "renommer" les éléments du Finder, le renommage prend la forme de "2017_03?Text". Y'aurait-il un problème dans l'Apple Script du début ?
On touche au but...


----------



## zeltron54 (23 Mars 2017)

Vérifie la valeur de la variable Madate en cliquant sur résultats dans la boite de l'action contenant l'applescript pour vérifier si elle est bien 2017_03


----------



## zeltron54 (23 Mars 2017)

Dans "renommer les élément du finder" après avoir glisser la date , tu ajoutes : _La_compilation
Tu obtiens un ovale bleu pour la variable suivi de ton texte ajouté


----------



## zeltron54 (23 Mars 2017)

Tu devrais obtenir ça: (copie d'écran en 2 fois)


----------



## pantone672 (23 Mars 2017)

Mystérieusement, en supprimant les différents champs, puis en les renseignant de nouveau, j'arrive au bon résultat.
Tu vas rire,  j'arrive à une dernière difficulté : je n'arrive pas à planifier le déclenchement de ce magnifique processus par un événement iCal. 
Je crois que c'est lié au fait que j'essaye de créer cet événement sur un calendrier iCloud, mais il se trouve que je n'ai pas de calendrier "sur mon ordinateur". 
Je vais tripatouiller ce soir pour voir comment faire...


----------



## zeltron54 (23 Mars 2017)

Je n'utilise pas iCloud ! que 2 calendriers sur l'ordi pas de partage ni de synchro !

N'oublie pas qu'il faut enregistrer une copie de ton processus au format application et que c'est cette application que tu devras lancer dans ton événement Calendrier.


----------

