Monday, 20 June 2011

Update exchange rate using Yahoo Web Service

In this example I am using Yahoo's online currency converter to update the exchange rates table. An idea would be to put this code in a batch class, which you can schedule to run daily.

static void YahooCurrencyUpdate(Args _args)
    Currency                    currency;
    ExchRates                   exchRates;
    str                         uri;
    str                         exchRate = "";
    str                         fromCurrency, toCurrency;

    System.Net.HttpWebRequest   httpRequest  = null;
    System.Net.HttpWebResponse  httpResponse = null;
    CLRObject                   clro         = null;
    System.IO.Stream            stream       = null;
    System.IO.StreamReader      streamReader = null;

    while select currency
        fromCurrency    = CompanyInfo::find().CurrencyCode;
        toCurrency      = currency.CurrencyCode;

        uri = "" + fromCurrency + toCurrency + "=X";

            new InteropPermission(InteropKind::ClrInterop).assert();
            clro         = System.Net.WebRequest::Create(uri);
            httpRequest  = clro;
            httpResponse = httpRequest.GetResponse();
            stream = httpResponse.GetResponseStream();
            streamReader = new System.IO.StreamReader(stream);
            exchRate = streamReader.ReadToEnd();

            if (str2num(exchRate) > 0)
                exchRates.CurrencyCode = toCurrency;
                exchRates.FromDate = systemdateget();
                exchRates.editExchRate(true, str2num(exchRate) * 100);

            throw error(AifUtil::getClrErrorMessage());

Additional information:
Microsoft provides a simple example on how to consume a web service. In their example they take a currency converter too.
The Microsoft whitepaper was written to illustrate on how to consume web services using references.

There are a lot of online services that provide exchange rates and methods to consume. Yahoo provides the days rates via the web services but not historical rates.

Other online services:,,

1 comment:

Blogger said...

eToro is the #1 forex broker for beginning and established traders.