# un Applescript dans une application Automator plante



## michaelt (16 Juin 2011)

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:

```
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!


----------



## Anonyme (16 Juin 2011)

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 :

```
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*


----------



## michaelt (16 Juin 2011)

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!


----------

