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:
- 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
- Az adott napi árfolyamok még az adott napon kialakulnak, tehát ma délben nem a tegnapi árfolyam frissül, hanem a mai!
- 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.
- 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)
- GetCurrentExchangeRates Method: A metódus visszaadja az éppen aktuális árfolyamokat, azaz a lekérdezés pillanatában érvényben lévő árfolyamokat.
- 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
- 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:
- 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)
- Nyissa meg az SSIS WebServies taskját, és
- http connection-nak adja meg a létrehozott http connection nevét
- WSDL fájnak adja meg a lementett WSDL fájl nevét.
- Az input fülön állítsa be, hogy melyik metódust akarja meghívni (GetInfo, GetCurrentExchangeRates, GetExchangeRates)
- 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.
Kővári Attila - BI projekt
hozzászólás
Horváth László
p, 02/20/2009 - 10:06
Permalink
Üdvözletem! Érdeklődnék
Kővári Attila
p, 02/20/2009 - 10:45
Permalink
Access denided
Kővári Attila
p, 02/20/2009 - 22:31
Permalink
Árfolyamokat lekérdező SSIS csomag
Robi
cs, 08/13/2009 - 12:41
Permalink
Ugyanaz a hiba
soós attila
cs, 10/08/2009 - 21:31
Permalink
Árfolyamokat letöltő SSIS
Kövári Attila
cs, 10/08/2009 - 22:54
Permalink
Nekem működik
Kövári Attila
sze, 10/21/2009 - 07:24
Permalink
Letölthető a teljes SSIS solution
Ádám
p, 02/14/2014 - 12:30
Permalink
SSIS solution megnyitás
Kővári Attila
v, 02/16/2014 - 10:06
Permalink
BI development studio
Ádám
p, 02/21/2014 - 14:51
Permalink
köszönöm
Zsolt
sze, 04/15/2015 - 10:24
Permalink
keresztárfolyam lekérdezés
Kővári Attila
h, 04/20/2015 - 20:20
Permalink
Keresztárfolyam
Julis László
h, 08/17/2015 - 05:26
Permalink
MNB árfolyamok letöltése
Németh Gábor
h, 08/17/2015 - 11:44
Permalink
MNB árfolyamok letöltése
Németh Gábor
h, 08/17/2015 - 16:59
Permalink
MNB árfolyamok letöltése
Schönwald Csaba
p, 08/21/2015 - 20:24
Permalink
Lekérdezés Apache PHP saját php_soap.dll extension-jével
Sipos Gergő
sze, 08/26/2015 - 09:25
Permalink
Dynamics AX2012 - MNB probléma megoldása
Sipos Gergő
sze, 08/26/2015 - 09:37
Permalink
SoapUI
Kővári Attila
sze, 08/26/2015 - 09:55
Permalink
Köszönöm
Új hozzászólás