Tabulka Tcurr

Tabulka tcurr obsahuje aktuální kursy přepočtu z cizích měn na lokální měnu. Má svoje drobná specifika. To hlavní je formát data v poli gdatu. Pole trurr-gdatu je totiž “invertovaný” formát data. Při prohlížení tabulky pomocí transkace SE16 narazíme na malou zvlášntost. Pokud zadáme datum od 01.01.2011 do 31.12.2011, dostaneme hlášení, že spodní mez je nižší než horní mez.


Řešení je snadné, při prohlížení dat zadáme na místo od 01.01.2011 hodnotu 31.12.2011 a do pole do zadáme naopak 01.01.2011. Data se zobrazí.

Ale formát data je podivný a na první pohled nelogický. No , je to formát invertovaný. Data vypadají něco jako “79998768, 79998767″ na místo očekávaného 20111001, což bývá zvyklostí u dat na bázi pole sy-datum.

Tohle jsem řešil v jednom případě, kdy jsem potřeboval v jednom user exitu přepočítat hodnotu příjmu materiálu a použil jsem funkční modul na přepočet kursu. Použil jsem modul BAPI_EXCHANGERATE_GETDETAIL a vše vypadalo dobře. Jenomže při testu na straně uživatele došlo k havarování programu na “dělění nulou”. Zjistil jsem, že funkřní modul v sobě obsahuje kontrolu oprávnění, kterou ale osoba provádějící pohyb 101 v transakci MIGO nemá. Proto jsem byl nucen načíst data přímo z tabulky TCURR, seřadit dle data a vybrat záznam s poslední datem. jednoduchá záležitost, ale formát pole tcurr-gdatu se nejevil vhodně. Potřeboval jsme jej převést na formát podobný poli sy-datum.

To se provede pomocí náskledujícícho příkazu:


CONVERT INVERTED-DATE tcurr-gdatu INTO DATE i_tcurr-gdatu.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

*

„Kdyby se mužům dostávalo manželek, jakých si zasluhují, měli by zatraceně těžký život.“ Oscar Wilde