Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/01/2011, 09h56   #1
Invité de passage
 
Inscription : mars 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 16
Points : 3
Points : 3
Par défaut Flex et webservice Magento

Bonjour,
Dans le cadre d'une application en Flex, je dois interroger un webservice Magento. L'interrogation du webservice se fait sans problèmes mais dès qu'il faut mettre des options de filtre, le webservice ne les prend pas en compte.

En php, tout fonctionne parfaitement. Voici le code :
Code :
1
2
3
4
$filters = array(
        'sku' => array('like'=>'ERNES%')
);
$products = $proxy->call($sessionId, 'product.list',array($filters));
J'ai presque tout tenter, les dictionnaires, le xml mais rien n'y fait.
quelqu'un a-t-il une solution ?
Meuha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 13h58   #2
Rédacteur/Modérateur
 
Avatar de Jim_Nastiq
 
Homme Jean-Marie Macé
Ingénieur consultant, leader Flex
Inscription : avril 2006
Messages : 2 194
Détails du profil
Informations personnelles :
Nom : Homme Jean-Marie Macé
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur consultant, leader Flex
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 194
Points : 3 377
Points : 3 377
Salut,

la, tu nous donnes du code PHP , mais le soucis c'est que tu fais tes appels depuis Flex, donc nous faudrait du code AS3
__________________

Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
Pensez au tag

Mon Blog sur la techno Flex
Ma page sur Developpez.com

Jim_Nastiq
Jim_Nastiq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 14h54   #3
Invité de passage
 
Inscription : mars 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 16
Points : 3
Points : 3
Ouis je sais, j'ai effectivement donné le code php car je pensais que quelqu'un serait capable de transcrire ce code en actionscript.

Concernant mon code flex, voici mon composant webservice
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<mx:WebService
        id="userRequest"
        wsdl="wsdl">
			<mx:operation
				name="login"
				resultFormat="e4x"
				showBusyCursor="true"
				fault="mx.controls.Alert.show('erreur => '+event.fault.faultString)"
				result="getIdSession(event)">
			</mx:operation>
			<mx:operation
				name="call"
				resultFormat="e4x"
				showBusyCursor="true"
				fault="mx.controls.Alert.show('erreur => '+event.fault.faultString)"
				result="remotingCFCHandler(event)">
			</mx:operation>
		</mx:WebService>
et mon code actionscript :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
		private function getIdSession(event:ResultEvent):void {
 
			sessionId = XML(event.result).loginReturn;	
 
			var filters:Dictionary = new Dictionary();
			var sku:Dictionary = new Dictionary();
			var like:Object = new Object();
 
			sku[like] = "ERNES%";
			filters[sku] = sku;
 
			//requete info produit
			userRequest.getOperation("call").send(
			sessionId,
			"product.list",
			filters);
		}
A savoir que ce code-ci me renvoie une erreur et ne fonctionne pas du tout.
Meuha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 15h34   #4
Rédacteur/Modérateur
 
Avatar de Jim_Nastiq
 
Homme Jean-Marie Macé
Ingénieur consultant, leader Flex
Inscription : avril 2006
Messages : 2 194
Détails du profil
Informations personnelles :
Nom : Homme Jean-Marie Macé
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur consultant, leader Flex
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 194
Points : 3 377
Points : 3 377
Après qq rapide recherche il semble que les webservice Magento soit un peu particulier et pas certains que cela passe en natif sur flex ... il sembe falloir passer par une surcouche style AMFphp ...

le problème se situerait sur les headers que renvoi l'api magento

http://www.magentocommerce.com/boards/viewthread/20255/

c'est vraiment spécifique magento à priori.

tu peux peut etre tenter de voir ce que te retourne l'api avec un traceur genre Charles ou WireShark ...
__________________

Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
Pensez au tag

Mon Blog sur la techno Flex
Ma page sur Developpez.com

Jim_Nastiq
Jim_Nastiq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 16h04   #5
Invité de passage
 
Inscription : mars 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 16
Points : 3
Points : 3
Merci pour ton aide.
Je me douter bien que Magento avait une api un peu bizarre. J'ai effectivement capté les messages SOAP que j'envoie en php et je tente de les reconstruire en flex mais impossible. Il semble que l'objet soapclient en php encode le message de manière spécifique.
Je vais quand même tenter de creuser mais j'y crois pas trop.
Encore merci
Meuha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 16h23   #6
Invité de passage
 
Inscription : mars 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 16
Points : 3
Points : 3
Le problème a été résolu. Tout dépend comment est généré le fichier wsdl. Apparemment il y aura 2 versions. La version 2 a été faite pour plus de compatibilité avec .NET et Java. Mais elle permet aussi d'utiliser les webservices magento en natif en actionscript. Problème, il n'y a que très peu de doc sur l'api de la version 2
Meuha est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h50.


 
 
 
 
Partenaires

Hébergement Web