Ce tutoriel a pour but de vous apprendre à utiliser les mécanismes de décisions d'Actiona. Les points étudiés sont :
On appelle "système conditionnel" un système capable de prendre des décisions. De nombreuses fois, il est nécessaire au cours d'un programme de choisir entre plusieurs solutions : par exemple, on veut récupérer, entre deux valeurs a et b, la valeur la plus haute. La condition serait "Si a > b, alors a sinon b". Basiquement, on peut énoncer une conditionnelle à partir du moment où on peut dire "Si". Le résultat d'une conditionnelle sera toujours "si oui" ou "si non". On dit qu'une conditionnelle renvoie une valeur booléenne : soit vrai, soit faux.
Dans les langages de programmation cette notion est fondamentale et essentiellement liée aux variables. Il n'est d'aucun intérêt de tester une condition telle que "Si 4 = 4", vu que l'on sait déjà que le résultat sera "vrai". Par contre, si l'on teste un variable "number" avec la même conditionnelle "Si number = 4", alors l'outil devient intéressant car on ne sait pas à l'avance quel sera la valeur de "number".
On peut imbriquer les conditions : "Si number > 0 ET Si number < 10 alors…" nous permet de déterminer si "number" est entre 1 et 9. On peut mettre dans une conditionnelle toute instruction renvoyant un booléen, et combiner les résultats de façon à obtenir l'effet souhaité. On appelle cela Algèbre de Boole.
Dans Actiona, la majorité des conditionnelles est traitée grâce à l'action Condition de variable. Cette action est simple : elle compare deux variable et, en fonction du résultat, vous dirige vers une ligne ou une autre, l'exécution d'un code ou le lancement d'une procédure.
Pour mettre en pratique cette action, commençons par créer un nouveau script. Dans ce script, nous allons chercher à faire un petit questionnaire qui cherchera à vérifier si le nom entré correspond à celui d'"Actionaz" (ancien nom du logiciel).
Pour faire notre script nous allons donc recourir à 4 actions :
Nous allons paramétrer nos actions de la manière suivante :
Nous posons la question "Quel est le nom de l'application ?" puis nous récupérons la réponse dans la variable "nomLogiciel"
Cette boite de dialogue doit s'afficher si la réponse contenue dans "nomLogiciel" n'est pas "Actionaz".
L'action Condition de variable étant inédite jusqu'à maintenant, nous allons en décrire les paramètres :
Vous noterez que les lignes indiquées ne correspondent pas aux boîtes de dialogue où l'on doit se diriger, et pour cause pour l'instant notre conditionnelle se trouve à la fin du script. Pour qu'elle ait une véritable utilité, nous allons la placer en deuxième position, comme suit :
A présent nous pouvons exécuter notre script. S'affiche donc en premier :
Nous validons la réponse standard car nous voulons voir s'afficher le message pour une valeur vraie. S'ensuit donc :
Bingo ! Nous avons bien le bon résultat. Cependant…
Le message pour la valeur fausse s'affiche aussi ! Pourquoi ? Simplement que l'on n'a jamais dis au programme de s'arrêter après avoir obtenu la bonne boîte de dialogue ! Rappelez-vous : le script ne s'arrête que s'il ne reste aucune action à effectuer. Alors comment stopper le programme lorsque l'on arrive à la boîte de dialogue "VRAI" ?
Pour cela, nous allons utiliser un nouveau type d'action : l'action "Stop".
Cette action permet de dire au script de s'arrêter une fois cette instruction atteinte. Elle prend tout son sens ici car nous allons nous en servir pour arrêter le script une fois la boite de dialogue "VRAI" atteinte. Modifiez donc le script de cette façon :
Si vous exécutez le script, ce coup-ci aucune boite "indésirable" ne s'affiche.
Sauf que…
Essayez d'exécuter le programme à nouveau mais en mettant une autre réponse qu'"Actionaz". Le script se termine aussitôt, sans montrer de boite de dialogue.
Lorsqu'on y réfléchit, nous avons demandé à notre conditionnelle de nous envoyer à la ligne 004 du script si la réponse est fausse. Or, cette position n'est plus utilisée par la boite de dialogue, mais par l'action Stop !
Alors que faire ?
En réalité, utiliser des lignes comme référence dans les conditionnelles est une mauvaise idée. Lorsque vous créerez vos propres scripts, vous aurez tendance à le modifier souvent, et donc à changer constamment l'ordre des lignes. Imaginez un instant un script avec une dizaine de Condition de variable à mettre à jour dès que vous insérez une ligne !
Pour contrer ce problème, Actionaz possède un système de "labels", qui permet de démarquer une ligne des autres afin d'être appelée par les conditionnelles plus facilement.
Pour les utiliser, double-cliquez sur les numéros associés aux lignes des boites de dialogue, dans la colonne "Ligne / ID". Vous pouvez à présent éditer ces numéros. Remplacez-les par les labels "vrai" et "faux", respectivement associés aux boites de dialogue VRAI et FAUX. Vous devez obtenir ceci :
A présent, modifions les paramètres de la Condition de variable :
Ici nous avons remplacé les lignes de tout à l'heure par les labels que nous venons d'écrire.
Relançons le script à présent. Cette fois-ci, tout ce déroule à merveille !
Nous avons vu la Condition de variable. Passons maintenant à une conditionnelle moins utilisé : la Condition temporelle.
Une condition temporelle ne compare pas de variable, mais deux dates et heures : celles que vous indiquez, et celles qui sont actuelles. En fonction du résultat de la comparaison, comme la Condition de variable, vous pouvez diriger le script vers tel ou tel ligne.
L'action Condition temporelle se paramètre de cette façon :
Voyons les paramètres en détails :
Pour une fois, n'écrivez pas directement la date inscrite dans l'image, mais une date un peu plus proche de la votre. Une minute plus tard, par exemple.
Placez l'action à la fin de votre script, puis exécutez-le.
Essayez de rentrer un nom faux pour le programme : la boite de dialogue FAUX apparaît alors, puis… on revient à la ligne d'Entrée de texte. En fait, le script est écrit ici de façon à "boucler" tant que l'on n'a pas dépassé l'heure indiquée dans la Condition temporelle.
Patientez le temps de dépasser la valeur indiqué, puis recommencez. Cette fois-ci, le programme se termine.
Sans le savoir, vous venez ici de faire votre premier branchement conditionnel, ou "boucle". Nous verrons plus en détail cet outil dans le prochain tutoriel.
Vous pouvez télécharger ici les scripts utilisés dans le tutoriel :