Fonction wait dans PHP

Bonsoir,

  1. Il semblerai que la fonction scenarioExpression::wait($condition,300);n’accepte pas une chaine de caractère reconstitué. ($condition = "#".$contOpen."#==0")
  2. Ensuite dans ton code actuel, tu ne contrôle pas le retour de la fonction wait, donc ta commande $cmdVolet->execCmd(); sera exécuté dans tous les cas.

Voici un code qui devrait fonctionner :

// récup tags
$tags = $scenario->getTags();

$tagVolet = trim($tags['#tagAction#'],'\"');
$cmdVolet = cmd::byString('#'.$tagVolet.'#');

$contOpen = trim($tags['#tagDo#'],'\"');
$id_contOpen = cmd::byString('#'.$contOpen.'#')->getId(); // id de la commande

// attendre que le DO se ferme...
$condition = '#'.$id_contOpen.'# == 0'; // pour log
$condition_log = '#'.$contOpen.'# == 0'; // pour fonction wait
$scenario->setLog('Attente de '.$condition_log);
if (scenarioExpression::wait($condition,300)) {
  $scenario->setLog('[OK] la condition a été remplie, exécution de la commande #'.$tags['#tagAction#'].'#');
  $cmdVolet->execCmd();
}
else $scenario->setLog('[NOK] Timeout dépassé !!!');

Dans l’exemple ci-dessus, j’ai contourné le problème (1), en envoyant plutôt l’id que le nom de commande.
if (scenarioExpression::wait($condition,300)) ici j’attend que la fonction renvoie « true » pour exécuter la commande $cmdVolet->execCmd();

1 « J'aime »