IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

Récupérer résultat d'une fonction dans une variable


Sujet :

Flex

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2010
    Messages : 80
    Points : 51
    Points
    51
    Par défaut Récupérer résultat d'une fonction dans une variable
    bonjour
    j'interagis avec un webservice afin d'effectuer en premier lieu une operation d'authentification,j'utilise pour cela la fonction ouvrirSession(int):int
    elle recoit un variable et retourne un numero de session ,je voudrais stocker le resultat dans une variable afin de l'utiliser comme entrée dans une autre fonction :AuthentifierUtilisataur(int,int,string,string) :
    le premier argument est un variable normal
    le deuxieme est la variable qui stock le resultat de la premiere fonction
    le 3eme et le 4eme argument sont l'id et le motdepasse que je recupere depuis un formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
    			   xmlns:s="library://ns.adobe.com/flex/spark" 
    			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:servicessoap="services.servicessoap.*"  >
    	<fx:Script>
    		<![CDATA[
    			import mx.controls.Alert;
    			import mx.events.FlexEvent;
     
    // ma premiere fonction qui ouvre une session
     
    			protected function button_clickHandler(event:MouseEvent):void
    			{
    				ouvrirSessionResult.token = servicesSOAP.ouvrirSession(parseInt('idModule'));
    			}
     
    			internal var idModule:int=14;
    //ici je stock le resultat de la fonction precedante		   
     internal var idSession:int=ouvrirSessionResult.lastResult as int;
     
     
    			//la 2eme fonction pour authentification 
     
    			protected function button2_clickHandler(event:MouseEvent):void
    			{
    				authentifierUtilisateurResult.token = servicesSOAP.authentifierUtilisateur(parseInt('idModule'),idSession,"identifiant.text","mdp.text");
    			}
     
    		]]>
    	</fx:Script>
    	<fx:Declarations>
    		<servicessoap:ServicesSOAP id="servicesSOAP" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/>
    		<s:CallResponder id="ouvrirSessionResult"/>
    		<s:CallResponder id="authentifierUtilisateurResult"/>
     
    		<!-- Placer ici les éléments non visuels (services et objets de valeur, par exemple). -->
     
    	</fx:Declarations>
     
    	<s:Button label="OuvrirSession" id="button" click="button_clickHandler(event)" x="110" y="97"/>
    	<s:TextInput x="81" y="181" id="identifiant"/>
    	<s:TextInput x="81" y="255" id="mdp"/>
    	<s:Button x="98" y="325" label="Button" id="button2" click="button2_clickHandler(event)"/>
    	<s:TextArea x="392" y="242" height="35" id="id_sess" text="{authentifierUtilisateurResult.lastResult}"/>
     
    </s:Application>
    quand j'execute ce code ,j'ai une page vierge ,ca n'affcihe meme pas le formulaire
    merci d'avance pour votre aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2010
    Messages : 80
    Points : 51
    Points
    51
    Par défaut
    j'ai fait cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
    			   xmlns:s="library://ns.adobe.com/flex/spark" 
    			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:servicessoap="services.servicessoap.*"  >
    	<fx:Script>
    		<![CDATA[
    			import mx.controls.Alert;
    			import mx.events.FlexEvent;
     
     
    			protected function button_clickHandler(event:MouseEvent):void
    			{
    				ouvrirSessionResult.token = servicesSOAP.ouvrirSession(parseInt('idModule'));
    				 var idSession:int=ouvrirSessionResult.lastResult as int;
     
    			}
     
    			internal var idModule:int=14;
    			//internal var idS:int=1;
     
     
     
     
     
    			protected function button2_clickHandler(event:MouseEvent):void
    			{
    				authentifierUtilisateurResult.token = servicesSOAP.authentifierUtilisateur(parseInt('idModule'),parseInt('idSession'),"identifiant.text","mdp.text");
    			}
     
    		]]>
    	</fx:Script>
    	<fx:Declarations>
    		<servicessoap:ServicesSOAP id="servicesSOAP" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/>
    		<s:CallResponder id="ouvrirSessionResult"/>
    		<s:CallResponder id="authentifierUtilisateurResult"/>
    		<s:CallResponder id="ouvrirSessionResult2"/>
     
    		<!-- Placer ici les éléments non visuels (services et objets de valeur, par exemple). -->
     
    	</fx:Declarations>
     
    	<s:Button label="OuvrirSession" id="button" click="button_clickHandler(event)" x="76" y="44"/>
    	<s:TextInput x="81" y="181" id="identifiant"/>
    	<s:TextInput x="81" y="255" id="mdp"/>
    	<s:Button x="98" y="325" label="Button" id="button2" click="button2_clickHandler(event)"/>
    	<s:TextArea x="249" y="45" height="20" id="textArea" text="{ouvrirSessionResult.lastResult}"/>
     
    // aprés le succés de l'authentification ,j'affiche le resultat (certificat)
    	<s:TextArea x="393" y="220" height="73" id="textArea2" text="{authentifierUtilisateurResult.lastResult}"/>
     
    </s:Application>

    aprés execution ca me remonte l'erreur suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SOAP Response cannot be decoded. Raw response: 
    null

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 319
    Points : 417
    Points
    417
    Par défaut
    Premiere question bête : quelle est la réponse attendue du WS?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2010
    Messages : 80
    Points : 51
    Points
    51
    Par défaut
    la reponse a la fonction d'authentification est un certificat de connex (cela veut dire que l'authentification a reussis)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 319
    Points : 417
    Points
    417
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    authentifierUtilisateurResult.token = 
    servicesSOAP.authentifierUtilisateur(parseInt('idModule'),parseInt('idSession'),
    "identifiant.text","mdp.text");
    forcément tu passe à ton service web les valeurs "identifiant.text" et "mdp.text"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    authentifierUtilisateurResult.token = 
    servicesSOAP.authentifierUtilisateur(parseInt('idModule'),parseInt('idSession'),
    identifiant.text,mdp.text);
    sans les guillemets car tu as besoin du champ text des composants identifiant et mdp

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2010
    Messages : 80
    Points : 51
    Points
    51
    Par défaut
    toujours le meme probleme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SOAP Response cannot be decoded. Raw response: 
    null
    je crois qu'il n'arrive pas a lire et a afficher le resultat(le certificat de connexion) pourtant c juste une chaine de caractere ,quelqun aurait une idée ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 319
    Points : 417
    Points
    417
    Par défaut
    Citation Envoyé par execrable Voir le message
    toujours le meme probleme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SOAP Response cannot be decoded. Raw response: 
    null
    je crois qu'il n'arrive pas a lire et a afficher le resultat(le certificat de connexion) pourtant c juste une chaine de caractere ,quelqun aurait une idée ?
    Bon
    Selon moi, si ça ne marche pas il faut savoir pourquoi. As-tu utilisé le debugger pour savoir si tes valeurs rentrées dans ton champ texte sont bien les valeurs que tu envoie au WS?
    Es-tu certain des paramètres que tu passes d'une manière générale?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2010
    Messages : 80
    Points : 51
    Points
    51
    Par défaut
    bon j'ai essayé de tracer les resultats et dans la premiere fonction d'ouverture de session j'ai mis des traces:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    protected function button_clickHandler(event:MouseEvent):void
    			{
    				trace("OKKKK");
    				ouvrirSessionResult.token = servicesSOAP.ouvrirSession(parseInt('idModule'));
    				trace("OKKKK2222");
     
    				var idSession:int=parseInt('ouvrirSessionResult.result');
    				trace(idSession);
     
    			}
    et j'ai comme resultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [SWF] C:\Documents and Settings\FLEX\Authentifi\bin-debug\Authentifi.swf\[[DYNAMIC]]\2 - 2*311*734 octets après la décompression
    [SWF] C:\Documents and Settings\FLEX\Authentifi\bin-debug\Authentifi.swf\[[DYNAMIC]]\3 - 370*463 octets après la décompression
    [SWF] C:\Documents and Settings\FLEX\Authentifi\bin-debug\Authentifi.swf\[[DYNAMIC]]\4 - 441*362 octets après la décompression
    [SWF] C:\Documents and Settings\FLEX\Authentifi\bin-debug\Authentifi.swf\[[DYNAMIC]]\5 - 1*432*382 octets après la décompression
    [SWF] C:\Documents and Settings\FLEX\Authentifi\bin-debug\Authentifi.swf\[[DYNAMIC]]\6 - 323*354 octets après la décompression
    OKKKK
    OKKKK2222
    0
    [Décharger SWF] C:\Documents and Settings\FLEX\Authentifi\bin-debug\Authentifi.swf
    donc pour le trace idSession il renvoi 0 cela veut dire qu'il ne stock pas le resultat de la fonction de l'ouverture de session ,donc le problème est dans cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var idSession:int=parseInt('ouvrirSessionResult.result');

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 319
    Points : 417
    Points
    417
    Par défaut
    Citation Envoyé par execrable Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var idSession:int=parseInt('ouvrirSessionResult.result');
    Toujours pareil. Tu utilise une fonction sur une variable entre guillemets.
    Il faut faire attention ou revenir aux bases de la programmation

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. Récupérer variable d'une fonction dans une fonction
    Par ForceFlo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/10/2013, 22h47
  3. [XSLT 1.0] Mettre le résultat de l'appel d'une fonction dans une variable
    Par Giovanny Temgoua dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 16/01/2012, 17h47
  4. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  5. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo