MNB árfolyamok letöltése – Közvetlenül az MNB-től


Az MNB lehetővé tette napi árfolyaminak letöltését web szervizen keresztül, aminek eredményeképp végre közvetlenül tudjuk betölteni a napi árfolyamokat az adattárházba, vagy az üzleti intelligencia rendszerbe.

Aki nem ismeri a web szervizeket, az képzelje el őket úgy, mint egy olyan tárolt eljárást, amely a webről kérdez le adatokat és a lekérdezés eredményét XML formátumban adja vissza. Nekünk az lesz a célunk, hogy meghívva az MNB web szervizét, minden nap letöltsük a hivatalos devizaárfolyamokat, hogy aztán tovább tudjuk tölteni őket az adattárházba.

Mielőtt rátérnénk az MNB Web Service tárgyalására, essen néhány szó a hivatalos MNB árfolyam kialakulásáról.

Az MNB árfolyam kialakulása

A Nemzeti Bank a hivatalos napi árfolyamokat minden munkanap 11 órakor állapítja meg, a 10 legaktívabb bank árfolyamának számtani átlagaként úgy, hogy a két legmagasabb, legalacsonyabb árfolyamokat kihagyja a számításból. (A Pontos módszerért keresse fel az MNB oldalát).

Az árfolyam meghatározásának módszeréből nekünk 3 dolog fontos:

  1. Az MNB mint forrásrendszer 12 körül zár, tehát az árfolyamok letöltésével nem kell megvárnunk a hajnalt
  2. Az adott napi árfolyamok még az adott napon kialakulnak, tehát ma délben nem a tegnapi árfolyam frissül, hanem a mai!
  3. Csak munkanapokra van árfolyam, és egy árfolyam addig érvényes, amíg új árfolyam adat meg nem jelenik. Tehát egy ünnepnapon az előző munkanapi árfolyam érvényes

Ennyi alapozás után kezdjünk bele az MNB web szervizének beizzításába.

Az MNB web service.

Az MNB web Service-e felé háromfajta lekérdezést tudunk küldeni.

  1. GetInfo method: A GetInfo method visszaadja az MNB devizáinak kódját 1949-től napjainkig. Tulajdonképpen egy deviza törzs, ami nem tartalmaz mást, mint a devizák hárombetűs kódját. (mint például HUF, EUR, USD, de megtalálhatóak benne korábbi devizák is, mint pl. a DEM, vagy a jugoszláv dinár)
  2. GetCurrentExchangeRates Method: A metódus visszaadja az éppen aktuális árfolyamokat, azaz a lekérdezés pillanatában érvényben lévő árfolyamokat.
  3. GetExchangeRates Method. a GetExchangeRates Method visszaadja a napi árfolyamokat adott dátumtól dátumig intervallumra, adott devizára. Tehát a metódusnak létezik három bemenő paramétere: StartDate, EndDate, és Currency és ezek alapján visszaadja a hivatalos árfolyamokat.

Nekünk az adattárház feltöltéséhez a GetInfo, és a GetExchangeRates metódusokra lesz leginkább szükségünk.

Az MNB Web Service meghívása az SSIS Web Service task-ból

  1. Első lépésként létre kell hoznia az SSIS csomagban egy http connection-t az MNB web szolgáltatása felé, mely a http://www.mnb.hu/arfolyamok.asmx?WSDL címem keresztül érhető el. (A http connection a Server URL text boxába be kell írnunk az MNB web szolgáltatás címét: http://www.mnb.hu/arfolyamok.asmx?WSDL). Lásd következő kép:

HTTP Connection Manager

 

  1. Ha sikeresen létrehozta az új http connection, akkor következő lépésként nyissa meg a http://www.mnb.hu/arfolyamok.asmx?WSDL oldalt egy böngésző segítségével és az oldalt mentse el, mint WSDL fájl. (Save as és a fájl kiterjesztése legyen WSDL. Pl.: Arfolyamok.WSDL)
  2. Nyissa meg az SSIS WebServies taskját, és
    1. http connection-nak adja meg a létrehozott http connection nevét
    2. WSDL fájnak adja meg a lementett WSDL fájl nevét.

 

Web Service Task editor

  1. Az input fülön állítsa be, hogy melyik metódust akarja meghívni (GetInfo, GetCurrentExchangeRates, GetExchangeRates)
  2. Az output fülön állítsa be be, hogy hova akarja a lekérdezés eredményét irányítani: SSIS változóba, vagy szövegfájlba.

A folyamat itt természetesen nem ér végett, hiszen az MNB web szervize által visszaadott árfolyamok még XML formátumban vannak, így azt még be kell tölteni egy táblába, de ehhez már minden szükséges segítséget megad az SSIS help-je.

Sok sikert a megvalósításhoz!

Kapcsolódó anyagok:

 

Frissítés (2009-10-21): Felraktam ide az oldalra az árfolyamokat letöltő teljes Integration Services solution-t, és a hozzá tartozó readme fájlt is. Letöltéshez jobbegér a linken és cél mentése más néven, vagy save target as. Sok sikert a megvalósításhoz.

Elválasztó

Már készül a következő cikk. Kérjen értesítést a megjelenéséről itt.

|

20 Hozzászólás

Üdvözletem! Érdeklődnék

Üdvözletem! Érdeklődnék, hogy még mindig működik ez a szolgáltatás, mert nekem sehogysem sikerült életre kelteni. A test connection is egyből hibára fut és futás közben a következő hibát kapom: 407: Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. ) Lehet, hogy ez valamilyen beállítási gond de nem látom, hogyan lehetne ezt kiküszöbölni. Esetleg valamilyen ötlet?

Access denided

Szia Laci!

Kb 1 hónapja próbáltam és akkor még működott. Este, (ha lesz időm, mert holnap hajnalban elutazom) akkor megnézem, hogy él-e még az MNB Web Service, és le lehet-e még válogatni vele az árfolyamokat.

Üdv, Attila

Árfolyamokat lekérdező SSIS csomag

Szia Laci!

Nekem működik a web service. Elküldtem privátba azt az SSIS csomagot, amelyik lekérdezi az árfolyamokat az MNB-től és beteszi őket egy táblába.

Ha lesz rá igény mástól is, akkor kiteszem majd ide a weboldalra.

Üdv, Attila

Ugyanaz a hiba

Szia(sztok)! Nálam is ugyanaz a hiba állt be amit fentebb említésre került

Árfolyamokat letöltő SSIS

Nagyon köszönöm e remek írást. Azóta is használom vékonykliensben. Most eljött az idő, hogy SSIS-ben is használjam.
Hibát dob, ahogy a fentiek is írták.
Kérlek küld el a csomagodat a címemre. Valamit biztosan nem jól csinálok.
köszi
ati

Nekem működik

Szia Attila!

Nekem működik. Mindjárt lementem a teljes solution-t és elküldöm tömörítve. A héten már nem, de a jövő héten írok hozzá egy how to leírást ki fogom tenni ide is.

Üdv, Attila

Letölthető a teljes SSIS solution

Elkészült. Letölthető a teljes Integration Services solution és a hozzá tartozó readme fájl is. Linkek a cikk végén a kommentek előtt. Sok sikert a megvalósításhoz

SSIS solution megnyitás

Szia Attila!
Valószínűleg nagyon kezdő a kérdésem, de hogyan, mivel tudom megnyitni ezt a solutiont?
VS2008 és VS2010 programokkal próbáltam, de nem tudja megnyitni. Az is lehet, hogy nincs a keretrendszerekbe telepítve valami..
Előre is köszönöm a választ.

BI development studio

Szia Ádám,

A BI development studio-t kell feltenned hozzá, ami az SQL szerver telepítő CD-jén van. De lehet, hogy le lehet tölteni a netről is.

Üdv,
Attila

köszönöm

köszönöm a választ, kipróbálom

keresztárfolyam lekérdezés

Jó napot!

azt szeretném megtudni, hogy van-e olyan MNB-s webservice, amivel keresztárfolyamokat lehet lekérdezni, pl EUR/GBP

Válaszát előre is köszönöm!

Keresztárfolyam

Szerintem nincs. Legalábbis én nem tudok róla, hogy lenne.

MNB árfolyamok letöltése

Szeretettel üdvözlöm

Évekig naponta töltötte le egy webes alkalmazásom az MNB árfolyamokat php kóddal.

2015.08.10-től megváltozott az MNB honlapja és megszűnt a http://www.mnb.hu/webservices elérési út, így nem elérhetőek az árfolyamok.

Nincs valami ötlete esetleg?

MNB árfolyamok letöltése

Én ma reggel rákérdeztem E-mail-ben az MNB-nél. Még nincs válasz. Beteszem ide ha lesz valami értelmes reakció.

MNB árfolyamok letöltése

Ezt jött:
Kedves Felhasználó!

Az MNB új webportáljának elindításával párhuzamosan felhasználói visszajelzések alapján azt tapasztaltuk, hogy az árfolyamok automatikus lekérdezése az ezt végző programok egy részénél nem működik.

A webservice használatával kapcsolatban részletes információ az alábbi oldalon olvasható:
https://www.mnb.hu/sajtoszoba/sajtokozlemenyek/2015-evi-sajtokozlemenyek...

Üdvözlettel
Magyar Nemzeti Bank

Lekérdezés Apache PHP saját php_soap.dll extension-jével

Tiszteletem! Részletes programot nem találtam a neten a lekérdezéshez. Biztos nem szép megoldás, de nekem működik, hátha segít másoknak is.

$client = new SoapClient('http://www.mnb.hu/arfolyamok.asmx?WSDL');

$nap0=date("Y-m-d", mktime(0,0,0,date("m"),date("d"),date("Y"))-29*24*60*60);
$nap=date("Y-m-d");

$param = array('startDate' => $nap0, 'endDate' => $nap, 'currencyNames' => 'CHF,EUR');

$result=$client->GetExchangeRates($param);

$xml= new SimpleXMLElement($result->GetExchangeRatesResult);

$arr=(array)$xml;
$arfolyamok=(array)$arr["Day"];

foreach ($arfolyamok as $a)
{
unset($CHF);
unset($EUR);

$arf=(array)$a;
$datum=$arf["@attributes"]["date"];
$CHF=$arf["Rate"][0];
$EUR=$arf["Rate"][1];

if (isset($CHF)) Feldolgoz($datum,"CHF",$CHF);
if (isset($EUR)) Feldolgoz($datum,"EUR",$EUR);
}

Üdvözlettel: Csaba

Dynamics AX2012 - MNB probléma megoldása

A Dynamics AX2012 ERP szoftvert használjuk, amivel napi szinten töltünk be az MNB-ről árfolyamokat. Az MNB új webportáljának elindításával nekünk sem ment az árfolyamok letöltése. A megoldást a következő volt. A request header-jében a SOAPAction paramétert erről:

http://www.mnb.hu/webservices/.../

erre cseréltem:
http://www.mnb.hu/webservices/MNBArfolyamServiceSoap/.../

A ... a választott meghívandó metódus nevét helyettesíti, pl.: GetCurrencies, GetCurrentExchangeRates, stb.
Az hogy valakiknek ment továbbra is, másoknak meg nem, gondolom a különböző kliens megvalósításoknak köszönhető.
Egy generált WCF service-nek valószínű nem jelent gondot, de esetünkben az Axaptánkat megakasztotta.
Esetünkben ez kliens specifikus, de ha jól sejtem, másnak is megoldás lehet.
Üdv, Gergő

SoapUI

Igen hasznos program web service funkcionális teszteléséhez: http://www.soapui.org/
Nagy segítségemre volt az MNB-s web service probléma feltárásában.
Üdv, Gergő

Köszönöm

@Gábor, @Gergő, @Csaba

Nagyon köszönöm az információkat!

Üdv,
Attila

cheap nfl jerseys china

jordan 11 win like 82
converse outlet
barbour
fitflops sale clearance
birkenstocks
polo ralph lauren outlet
skechers outlet
kobe 12
nike clearance
asics gel lyte
curry 4
yeezy boost 350 v2
jordan 12
pandora charm
ecco shoes for men
jordan retro 12
asics shoes
mbt shoes clearance
cheap nfl jerseys china
yeezy shoes
canadian goose jacket
win like 96
louboutin shoes
longchamp bags
red bottoms
yeezy beluga 2.0
nike air vapormax
fitflops
beats headphones
pandora bracelets clearance
calvin klein underwear
nike air vapormax
pandora bracelets clearance
louboutin mens
mbt
pandora rings
adidas nmd
balenciaga shoes
fake yeezys
the north face jackets
pandora uk
jordan 11 red
rihanna puma
the north face outlet online
yeezy zebra
air max plus
louboutin
timberland boots
red bottom
pandora jewelry
pandora sale
yeezy boost 350 v2
red jordan 11
timberland outlet stores
north face clearance
jordan 11 red
yeezy boost 350 v2
nike air max 2018
kd 10 shoes
christian louboutin mens shoes
ecco
adidas yeezy
yeezy zebra v2
birkenstock shoes
nike vapor max plus
timberland outlet stores
red bottom shoes for women
air jordan retro 11
ralph lauren sale clearance uk
calvin klein outlet
michael kors outlet clearance
coach handbags outlet
salvatore ferragamo shoes
soccer cleats
superdry uk
fitflop
cheap nfl jerseys
pandora jewelry official site
clarks shoes for women
adidas yeezy
supreme hoodie
yeezy boost
vapor max
barbour jackets
timberland
vapor max
pandora
jimmy choo outlet
kobe bryant shoes
pandora bracelet
birkenstock sandals
yeezy
supremenewyork
yeezy boost
red bottom heels
skechers uk
nike factory store
under armour clearance
vapormax flyknit
adidas outlet
christian louboutin
timberland outlet
fake rolex watches
under armour outlet online
curry shoes
christian louboutin shoes
coach outlet
michael kors handbags outlet
pandora ring
vapormax plus
air max plus
red bottom shoes
pandora
curry 4 shoes
birkin bag
adidas outlet store
pandora earrings
yeezy beluga
pandora jewelry
beats wireless headphones
red bottoms for men
air max 97
pandora charms
asics running shoes
fitflop
red bottom
louboutin outlet
pandora bracelet
lebron 15
balenciaga triple s
pandora jewelry
adidas ultra boost
canadian goose
adidas yeezy
wholesale jerseys china
nike vapor max
pandora jewelry
huarache shoes
pandora rings
jordan retro
lacoste polo shirts
pandora charms sale
kd 10
louboutin shoes
nike vapor max
air max 2018
beats headphones
birkenstock outlet
kyrie irving shoes
timberland shoes
ferragamo shoes
fitflop sandals
pandora jewelry
beats wireless
blue tint yeezy
north face uk
adidas yeezy boost
pandora charms
jordan 11 win like 96
ralph lauren factory store
skechers shoes
fake yeezy
birkenstock outlet
pandora charms
louboutin boots
christian louboutin men
north face jackets
salvatore ferragamo
nike factory
win like 82
pandora bracelet charms
fenty puma
lebron 15 shoes
canada goose jackets
red bottoms louboutin
nike outlet online
calvin klein online
birkin bags
cheap nike
pandora jewelry outlet
pandora charms
pandora bracelet
nike outlet store
barbour uk
ultra boost
replica watches
birkenstock sandals
nike uk
nike kyrie
red bottom shoes
cheap soccer cleats
pandora jewelry 70 off clearance
skechers shoes
converse shoes
lacoste outlet
kyrie 4
red 11s
fake yeezy boost
nike air max plus
longchamp handbags
pandora jewelry official site
yeezy blue tint
wholesale nfl jerseys
pandora necklace
louboutin shoes
nmd r1
kyrie 3
canada goose sale
clarks shoes
barbour jackets
huaraches nike
valentino shoes
replica rolex
supreme clothing
timberland uk
goyard
asics gel
vapor max
jimmy choo shoes
north face jackets clearance
gym red 11
valentino outlet
air max 2018
goyard bags
balenciaga sneakers
pandora charms
clarks shoes for women
yeezy boost 350 v2
rihanna fenty puma

Szóljon hozzá!

Szabály: Legyen kedves, segítõkész és vállalja a nevét.
A mező tartalma nem nyilvános.
  • A web és email címek automatikusan linkekké alakulnak.
  • Engedélyezett HTML elemek: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • A sorokat és bekezdéseket automatikusan felismeri a rendszer.
ANTI SPAM
A robot regisztrációk elkerülésére.
Image CAPTCHA
Figyeljen a kis és nagybetűk használatára