EuroConverter - Accéder au webservice avec Flash Remoting

Crée le : samedi5avril9 200
Dernière révision : lundi 1 mai 2006 00:01:40

Flash Remoting

Instance RemotingClasses dans la librairie

Ce webservice utilise AMFPHP. Il peut donc être appelé avec les méthodes natives des classes Flash Remoting.

Si vous ne les avez pas installées il vous faudra télécharger les classes Remoting dans la version qui correspond à la version du logiciel Flash avec laquelle vous exportez l'animation. Les classes Remoting fonctionnent au minimum avec Flash Player 6 quelle que soit la version choisie.

Une fois installées il vous faudra importer dans la bibliothèque de votre animation une instance du paquetage RemotingClasses de la bibliothèque Fenêtre > Autres Panneaux > Bibliothèques communes > Remoting. Il est vivement recommandé d'importer également le paquetage RemotingDebugClasses qui permet d'utiliser le Netconnection Debugger.

Première connection

Vous pouvez faire un premier essai de connection au webservice avec le code suivant (MX 2004) :

import mx.remoting.Service;
import mx.rpc.ResultEvent;

var service:mx.remoting.Service;
service = new Service 
(
    "http://www.tekool.net/amfphp.php", //Passerelle
    null,
    "EuroConverter", //Nom du service
    null,
    this //Objet chargé de recevoir les réponses
);

//Méthode chargée de recevoir le résultat
this.onResult = function(res:ResultEvent)
{
    trace(res.result.rate);
}

//Demande le taux de change contre Euro du Dollar
service.getCurrency('USD');

Télécharger un fichier .FLA illustrant l'exemple

Classe Currency

class Currency
{
    var code:String;
    var rate:Number;
    var date:Date;
    var labelFrench:String;
    var labelEnglish:String;
    var countryFrench:String;
    var countryEnglish:String;
}

Description
Toutes les méthodes du webservice retournent un ou plusieurs objets Currency instance de la classe Currency telle que déclarée ci-dessus. C'est l'objet de base qui est utilisé pour véhiculer les informations relatives à chacune des entrées des valeurs monétaires enregistrées dans la base.
Il n'est absolument pas nécessaire de déclarer cet objet dans les classes de son aplication pour utiliser le webservice mais si vous désirez le faire vous pouvez télécharger un exemple de la classe Currency en question.
Rem: Pour le moment le serveur retourne un timestamp sous forme d'une chaîne pour représenter la date, il faut donc se préoccuper de la transformer en objet Date avant de l'utiliser en tant que propriété de l'objet Currency. Cela devrait être résolu avec la version v1.0 d'AMF-PHP que j'installerais ici trés bientôt.
Utilisation
La méthode onResult utilisée au-dessus aurait ainsi pu s'écrire :
import mx.rpc.ResultEvent;  
import Currency;

this.onResult = function(res:ResultEvent)
{
    var oCurrency:Currency = res.result;

    trace(oCurrency.code);
    trace(oCurrency.rate);
    trace(oCurrency.labelFrench);
    trace(oCurrency.countryFrench);
}

EuroConverter.getList

EuroConverter.getList
(
       [date:Date],
       [code1:String, ..., codeN:String]
)

Description
Obtient la liste complète des objets de description des monnaies disponibles dans la base de données à une date donnée
Retourne
Un tableau d'objets de description des monnaies
Arguments
date:Date
Argument optionnel.
Si cette date est passée en argument, le webservice va retourner une liste de toutes les monnaies dont le taux de change contre Euro a été enregistré au moins une fois avant la date demandée
Remarque au sujet des dates.
code1:String, ..., codeN:String
Arguments optionnels, liste d'arguments de longueur variable.

Cette liste permet d'inclure ou d'exclure des monnaies de la liste retournée :
  • Pour exclure un objet de la liste il suffit de passer en argument son code monétaire précédé du signe moins comme par exemple : '-EUR'
  • Pour inclure un objet dans la liste, il suffit de passer son code monétaire tel quel ou de le faire précéder du signe plus comme par exemple : 'EUR' ou '+EUR'.
    À partir du moment où au moins un code monétaire est passé dans la liste d'inclusion, aucune autre monnaie ne sera plus retournée que celles passées dans la liste d'inclusion.
Exemple
//Liste complète des taux de changes les plus à jour
service.getList();

//Liste complète des taux de changes au 31/12/2003
service.getList(new Date(2003,11,31));

//Liste complète des taux de changes sans Euro ni Dollar US
service.getList(null, '-EUR', '-USD');

//Liste uniquement composée du Dollar US et du Yen Japonais
service.getList(null, '+USD', '+JPY');

//Liste uniquement composée du Dollar US
service.getList(null, '+USD', '+JPY', '-JPY');
Illustration

Télécharger les sources de l'exemple exposé ci-dessus

EuroConverter.getCurrency

EuroConverter.getCurrency
(
      code:String,
      [date:Date]
)

Description
Obtient du serveur un objet de description de la monnaie dont le code est passé en argument.
La gestion des appels faits à cette méthode sont trés optimisés au niveau du serveur et elle n'y a que quelques octets à retourner.
C'est la méthode à utiliser dans le cas où l'application Flash requiert la valeur du taux de change d'une valeur monétaire unique. Elle permettra d'effectuer une conversion de l'Euro vers une autre valeur monétaire sans le délai qu'impose un appel à la méthode EuroConverter.Convert (lancer le calcul sur les animations d'illustrations des deux méthodes permet de comprendre)
Retourne
Un objets de description de la monnaie dont le code a été passé en argument
Arguments
date:Date
Argument optionnel.
Si cette date est passée en argument, le serveur va retourner le taux de change de la monnaie tel qu'il avait cours à la date demandée.
Remarques au sujet des dates.
Exemple
//Obtient le taux de change du Dollar US le plus à jour
EuroConverter.getCurrency('USD');

//Obtient le taux de change du Dollar US au 31/12/2003
EuroConverter.getCurrency('USD', new Date(2003,11,31));
Illustration

Télécharger les sources de l'exemple exposé ci-dessus

EuroConverter.convert

EuroConverter.convert
(
      fromValue:Number,
      fromCode:String,
      toCode:String,
      [date:Date]
)

Description
Convertit une valeur monétaire exprimée dans une monnaie vers une autre
Retourne
Retourne un objet contenant les 2 objets de description des monnaies impliquées dans la conversion, la valeur à convertir et la valeur résultant de la conversion.
La structure de l'objet retourné est la suivante :
{
    fromCurrency:Currency,
    toCurrency:Currency,
    fromValue:Number,
    toValue:Number
}
Arguments
fromValue:Number
Un nombre représentant la valeur à convertir
fromCurrency:String
Le code de la monnaie dans laquelle est exprimée la valeur à convertir
toCurrency:String
Le code de la monnaie vers laquelle la conversion s'effectue
date:Date
Argument optionnel.
Si cette date est passée, la conversion sera effectuée telle qu'elle aurait pu l'être avec les taux de change en cours à la date demandée
Remarques au sujet des dates.
Exemple
//Conversion de 10 Euros en Dollars US
service.convert(10, 'EUR', 'USD');
//Conversion de 10 Euros en Dollars US
//telle qu'elle se serait effectuée au 31/12/2003
service.convert(10, 'EUR', 'USD', new Date(2003,12,31));
Illustration

Télécharger les sources de l'exemple exposé ci-dessus

Remarque concernant les dates de mise à jour des taux de change

Les dates des taux de change retournées ne correspondent pas toujours à la date précise où l'équivalence monétaire a été demandée. En effet la bourse n'étant pas ouverte tous les jours, seule la dernière équivalence monétaire enregistrée sera retournée. Par exemple, si l'appel est fait un lundi à 8h00, la dernière équivalence enregistrée retournée sera celle du vendredi14h00 précédent puisqu'il n'y a aura pas eu de mise à jour de tout le week-end .

Les taux de changes des monnaies HRK (Kuna croate), RUB (Rouble russe), CNY (Yuan renmimbi chinois), IDR (Roupie indonésienne), MYR (Ringitt Malais), PHP (Peso philippin) et THB (Bath thaïlandais) n'ont été publiées qu'à fin de mois durant la période de Février 2000 à Mars 2005. Elles n'ont donc été archivées qu'une fois par mois durant cette période. La valeur du taux de change retournée pour ces monnaies sera donc celle enregistrée au début du mois correspondant à la date demandée.

  wordpress rss rss français rss english xhtml 1.1 css 2.0 wdg