un Applescript dans une application Automator plante

michaelt

Membre enregistré
25 Août 2009
3
0
Bonjour,

Tout d'abord j'espère avoir choisi le bon forum pour poster ma question. Toutes mes excuses anticipées si ce n'est pas le cas. Je suis un créateur occasionnel de petits scripts très loin du programmeur...

J'ai créé un processus Automator pour que nos étudiants puissent connecter leurs Macs aux disques partagés WIndows. Il y a des étapes texte/création de variables pour qu'ils saisissent leur login et mot de passe puis un Applescript qui connecte les lecteurs.
Dans le processus Automator le tout se déroule à merveille.

J'ai ensuite créé une application Automator pour pouvoir la distribuer plus facilement. Les partie texte/création de variable sont OK mais ça plante sur l'Applescript.

Pourquoi?

Voici l'Applescript:
Bloc de code:
on run {input, parameters}
    set user to (get value of variable "utilisateur" of front workflow)
    set passe to (get value of variable "mot_passe" of front workflow)
    mount volume "smb://xxxxxx/profs$" as user name user with password passe
    mount volume "smb://xxxxxx/cours$" as user name user with password passe
    mount volume "smb://xxxxxx/partage$" as user name user with password passe
    mount volume "smb://xxxxxx/yyyyyyy$" as user name user with password passe
    say "c'est fait tu peux bosser maintenant" using "Zarvox"
    return input
end run

Merci d'avance pour votre aide!
 
Bonjour,

Oui, c'est normal, cela fonctionne seulement dans l'application Automator, pas dans un processus ou une application créée.

La solution est :
Ajoute l'action "Obtenir la valeur de la variable" --> utilisateur, avant l'action "Exécuter un script AppleScript"
Ajoute l'action "Obtenir la valeur de la variable" --> mot_passe, avant l'action "Exécuter un script AppleScript.


Le code du script :
Bloc de code:
on run {input, parameters}
	set userX to item 1 of input
	set passe to item 2 of input
	mount volume "smb://xxxxxx/profs$" as user name userX with password passe
	mount volume "smb://xxxxxx/cours$" as user name userX with password passe
	mount volume "smb://xxxxxx/partage$" as user name userX with password passe
	mount volume "smb://xxxxxx/yyyyyyy$" as user name userX with password passe
	say "c'est fait tu peux bosser maintenant" using "Zarvox"
end run

Ici, la variable user ne fonctionne pas dans une application Automator, je l'ai remplacé par userX
 
Merci!
Cela a fonctionné moyennant une inversion des input 1 et 2. Pour une raison qui m'échappe, lorsque j'affiche les résultats après avoir :

  • saisir texte (user)
  • définir variable (user)
  • saisir texte (pw)
  • définir variable (pw)
  • obtenir variable (user)
  • obtenir variable (pw)
J'obtiens {"mot de passe", "user", "mot de passe"}

Le principal c'est que cela fonctionne!

Bonne soirée!