Bonjour,

J'ai développé un script de test permettant de créer des Boîtes aux lettres (BAL) en utilisant les webservices.
La création d'un compte doit être précédée d'une réservation.
J'ai donc utilisé deux fonctions une de réservation et l'autre de création.
Pour une création sans réservation, ça marche nickel.
Par contre, pour réserver puis créer une BAL, il faut récupérer la variable "bookingId" générée lors de la réservation et la passer à la fonction création.
Pour récupérer le résultat de la fonction "réservation":

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
my  $wsResult = SOAP::Lite
                ->proxy($URL)
                ->checkEmailsBooking($param)
                ->result;
J'ai utilisé le parser Expat pour parcourir les balises de l'enveloppe SOAP et récupérer le "bookingId".ça a marché quand j'ai copié l'enveloppe dans un fichier XML.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
open(F, result.xml) or die "ne peut ouvrir le fichier\n";
   print "passe";
   $parser->parse(*F);
   close(F);
   while(($retour = shift(@tokens)) && !($retour =~ m/bookingId/))
   {
   }
   $bookingid = $tokens[0];
Le problème maintenant c'est que je veux faire un open sur le $wsResult mais ça plante et n'affiche pas la chaîne "passe".
D'après mes connaissances, on peut ouvrir un fichier ou un flux. Je ne sais pas pourquoi ça marche pas dans mon cas.

Pouvez-vous m'aider?
Merci.