Retourner un texte dans un scénario

Bonjour,

Dans un scénario, je répète, sous conditions, le même texte à deux reprises (voir exemple snapshot).
Je souhaiterais plutôt définir ce texte une seule fois dans le scénario, et y faire appel.

Avec la commande scenario_return, c’est possible, mais par le biais de deux scénarios (c.f. le sujet Transmettre un texte d’un scénario à l’autre sans utiliser les variables (Transmettre un texte d’un scénario à l’autre sans utiliser les variables)

Or, je ne souhaite qu’un seul scénario.

Avez-vous une solution à m’apporter ?

Par avance, je vous remercie.

L’instruction tag doit répondre à ta demande.

pourquoi pas une variable alors ?

Salut,

Quelle contrainte dicte ce choix ? Parce que du point de vue programmation, un scénario pour générer le rapport et un pour l’envoi, c’est loin d’être débile

1 « J'aime »

C’est un choix, mais de ce fait, tu te compliques beaucoup la vie : en multipliant les appels à droite à gauche (sur les notifs par ex), tu n’échappera pas une correction en masse si pour une raison ou une autre tu as des ID qui changent.
Et avec un gros scénario, plein de fonctionnalités, tu es obligé de traiter tout un tas de if pas optimum dans ledit scénario…

Salut à tous,

Je ne l’utilise pas dans cette optique, mais ça peut servir ici : j’enregistre un texte dans une commande info d’un virtuel, dont je me sert ensuite/plus tard dans un TTS (pour moi un bulletin météo généré ailleurs).

[2021-05-18 20:12:01][SCENARIO] Start : Scenario lance manuellement.
[2021-05-18 20:12:01][SCENARIO] Exécution du sous-élément de type [action] : action
[2021-05-18 20:12:01][SCENARIO] Mise à jour du tag #toto# => tag sur
deux lignes
[2021-05-18 20:12:01][SCENARIO] Log : tag sur
deux lignes
[2021-05-18 20:12:01][SCENARIO] Fin correcte du scénario

Pour plus de lisibilité, ton tag peut être construit dans un bloc code.

$tags['#longitude#'] = $longitude;
$tags['#latitude#'] = $latitude;
$scenario->setTags($tags);

Ajoute dans ton bloc action, une action log - tag(rapport) pour voir le résultat.

$message = 'Ligne 01' . PHP_EOL;
$message .= 'Ligne 02' . PHP_EOL;
$message .= 'Ligne 03' . PHP_EOL;
$message .= 'Ligne 04' . PHP_EOL;
$message .= 'Dernière ligne';

https://www.php.net/manual/fr/language.operators.string.php

Il faut les passer en tag dans le bloc code.

Essaye avec date du type

date('d/m/Y à H:i:s',strtotime('now');

https://www.php.net/manual/fr/function.date.php

Salut,
Juste pour dire, il est possible de retrouver les tags généraux dans les bloc code, mais c’est un poil capilotracté ! :

$gen_tags=scenarioExpression::getRequestTags('#sday#,#day#,#smonth#');

$sday = $gen_tags['#sday#'];
$day = $gen_tags['#day#'];
$smonth = $gen_tags['#smonth#'];
$str = $sday.' '.$day.' '.$smonth;

$scenario->setLog($str);

le getrequesttag retournant un array avec les conversion (et même les noms francisés!), ici la méthode renvoi :

{"#sday#":"Mercredi","#day#":19,"#smonth#":"Mai","#sjour#":"Mercredi","#jour#":19,"#smois#":"Mai"}

1 « J'aime »

Je ne suis pas sur de comprendre ta question, dans ton imge on ne voit pas ce que tu met pour valoriser ton tag rapport.

Ceci dit :

avec le tag valoriser tel que :

#sday#\n#day#\n#smonth#

me sort bien :

------------------------------------
[2021-05-19 08:56:53][SCENARIO] Start : Scenario lance manuellement.
[2021-05-19 08:56:53][SCENARIO] Exécution du sous-élément de type [action] : action
[2021-05-19 08:56:53][SCENARIO] Mise à jour du tag #test# => Mercredi
19
Mai
[2021-05-19 08:56:53][SCENARIO] Log : from scenario : Mercredi
19
Mai
[2021-05-19 08:56:53][SCENARIO] Exécution du sous-élément de type [action] : code
[2021-05-19 08:56:53][SCENARIO] Exécution d'un bloc code
[2021-05-19 08:56:53][SCENARIO] from code :Mercredi
19
Mai
[2021-05-19 08:56:53][SCENARIO] Fin correcte du scénario

et ça ne fonctionne pas avec les ‹ \n ›?

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.