Forums - Adopte un VTP - Comment autoriser un scénario à un autre.
Mots-clés : Best Technology Blogs
Supposons aussi que je veuille vérifier 3 variables
est ce bien cela ?
Les 3 variables vérifiées
En fait l’accès au dernier scénario fait appelle à la vérification des 3 variables, mais ça ne fonctionne pas.
Bonjour,
Merci pour ces informations complémentaires.
J’ai plusieurs remarques.
N’ayant pas le graphe complet, je ne peux pas vous certifier que l’erreur s’y trouve, mais ce sont déjà de bonnes pistes.
Dans votre image « Sortie », vous sauvegardez une variable PRESTAINC01 à true.
Tout va bien jusque-là.
Dans votre image « Entrée », vous chargez (entre autres) les variables PRESTAINC01
et SCOREINCAP
.
Remarque 1 : dans le cas d’un bloc Variables en mode « Charger », la valeur dans la colonne de droite sert à spécifier la valeur que doit prendre la variable chargée s’il n’y a rien à charger ; c’est-à-dire si la variable n’a jamais été sauvegardée au préalable. Vous ne devriez donc pas écrire les 2 dernières lignes ainsi, mais plutôt avec un 0 dans la partie droite.
En effet, en indiquant dans la partie droite le même nom que dans la partie gauche, vous demandez au bloc de charger la variable de gauche, et s’il ne la trouve pas… d’utiliser la même variable. Sauf que celle-ci n’existe pas, justement car elle ne peut pas être trouvée.
Dans votre cas, je suppose que la valeur par défaut devrait être false
pour PRESTAINC01
et 0
pour SCOREINCAP
.
Si le premier scénario est toujours joué avant celui-ci, ce n’est probablement pas la source de l’erreur, mais c’est en tout cas une source d’erreur potentielle dans d’autres circonstances.
Vous utilisez ensuite un bloc Conditions :
Remarque 2 : vous vérifiez si la variable PRESTAINV01
est true
.
Ne vouliez-vous plutôt écrire PRESTAINC01
? Avec un C plutôt qu’un V.
Remarque 3 : vous testez 2 fois d’affilé si PRESTAINV01
est true
.
Ce n’est pas nécessaire, car cela vérifie 2 fois la même chose.
Remarque 4 : votre manière d’écrire cette condition est effectivement valide, mais elle peut être simplifiée. Lorsque vous souhaitez vérifier qu’une variable est true (un flag donc), vous pouvez simplement écrire la variable elle-même, sans écrire == true
, puis qu’une condition est elle-même un flag.
En combinant les remarques 3 et 4, vous pourriez-donc écrire votre condition de la manière suivante :
PRESTAINV01 and PRESTADC01
En ajoutant la remarque 2 (si la remarque est bien justifiée), la condition devient :
PRESTAINC01 and PRESTADC01
Remarque 5 : Quel est le bloc Conditions qui déclenche l’erreur de l’un de vos précédents messages ?
Cette erreur :
Ce n’est visiblement pas le bloc Conditions de votre image « Les 3 variables vérifiées », car il ne contient pas la variable PRESTAINC01
. C’est donc un autre bloc ?
Remarque 6 : Enfin, je peux vous conseiller d’écrire vos variables en suivant la norme Camel case, c’est-à-dire tout en minuscules et en mettant en majuscule la première lettre de chaque mot.
Cette méthode très répandue (nom de marques, informatique, etc.) permet d’améliorer la lisibilité d’un ensemble de mots lorsqu’il ne peut pas y avoir de ponctuation ou d’espaces (comme c’est le cas pour les noms de variables), en ayant tout de même un marqueur visuel (la majuscule) permettant de séparer les mots lors d’une lecture rapide.
Vous pourriez avoir des variables PensionClassB
ou ScoreIncap
par exemple.
Il s’agit d’une bonne pratique que nous prévoyons de partager dans la documentation de Virtual Training Suite prochainement.
Bien cordialement,
Yannick
Bonjour Yannick
J’avoue que j’ai relu plusieurs fois votre retour mais que je sèche un peu.
de plus les images que vous avez mis n’apparaissent pas, à moins que ce soir les miennes
Stéphane
On va faire simple
J’ai un graph (scénario) qui doit être fait impérativement on va l’appeler GRAPH01
Fin de ce graph je vais mettre une variable écrite de la manière suivante :
VARIABLE SORTIE GRAPH01
Au début du GRAPH suivant
Comment écrire la CONDITION alors ?
Stéphane
Bonjour,
Ce sont effectivement vos 4 dernières images que j’avais réutilisées dans mon message.
Effectivement il semble qu’elles ne s’affichaient pas correctement sur tous les navigateurs. Je l’ai ai ré-uploadées toutes les 4 autre part ; est-ce que ça corrige le problème de votre côté ?
Si je reprends à partir de votre tout dernier message :
1. Concernant votre image « VARIABLE SORTIE GRAPH01 »
Le champ de droite ne peut pas être correct. Cette assignation de valeur n’a pas de sens en l’état.
En effet, ce que vous écrivez ici signifie :
« Dans la variable GRAPH01, je mets true si GRAPH01 est true »
C’est un raisonnement circulaire :
– Si GRAPH01 est true, ça ne va rien changer
– Si GRAPH01 n’a pas encore de valeur (ce qui est probablement le cas à ce moment là), ça va provoquer une erreur.
Vous devriez juste écrire :
2. Concernant votre image « ENTRÉE GRAPH 02 »
Puisque GRAPH01
est censé être un flag (true
ou false
), il n’est pas correct d’écrire 0
dans la partie droite.
La valeur par défaut doit être cohérente avec le type de la variable à charger.
Dans votre cas, il me semble que la valeur par défaut que vous souhaitez est false
. Ainsi, si le premier scénario n’a jamais été joué, et donc que la variable GRAPH01
n’a jamais été sauvegardée, au lancement du 2e scénario, GRAPH01
se chargé avec la valeur false
.
Voici comment vous pouvez écrire le premier bloc du 2e scénario :
3. Pour le bloc Conditions
Comme GRAPH01
est un flag (true
ou false
), et qu’une Condition doit être un flag, vous pouvez directement écrire GRAPH01
en tant que Condition. C’est-à-dire :
Bien cordialement,
Yannick
Enfin j’ai compris désolé mais mon cerveau bouillonne 😀
Merci Yannick
Bonjour Yannick
J’ai parlé trop vite !!! ???
En fait au lancement du programme cela fonctionne, tant que la variable de fin n’a pas été validée et sauvegardée,
il est impossible de passer au 2ème ou 3ème graph (scénario) si l’on a pas fait les précédents.
Manque de chance comme je suis en plein test avec le support, j’ai donc relancé plusieurs fois le module (l’expérience) pour des essais, et là c’est la désillusion !
La variable chargée doit restée en mémoire sur le PC car je peux désormais refaire les graps dans l’ordre que je veux sans restrictions aucune ??????
Je désespère
Stéph@ne
Bonjour,
Le but est-il bien justement qu’une fois le Scénario 1 terminé, le Scénario 2 soit accessible en permanence ?
Quel comportement souhaitez obtenir précisément ?
De ce que j’ai compris vous souhaitez que :
– Une fois que le Scénario 1 a été terminé, le Scénario 2 est accessible
– Une fois que le Scénario 2 a été terminé, le Scénario 3 est accessible
– Etc.
– Lorsque le module est quitté complètement, puis relancé, les scénarios débloqués restent débloqués et peuvent être accédés dans n’importe quel ordre.
Est-ce bien cela ?
Auquel cas, qu’est-ce qui ne fonctionne pas comme prévu exactement ?
Cordialement,
Yannick
Yannick
Vous avez bien compris, mais par contre une fois le module quitté tout repart à zéro.
Il ne doit rien rester en mémoire.
Chaque fois que le module est terminé et refait on repart à zéro 😉
Stéph@ne