{"id":139,"date":"2012-08-21T11:38:22","date_gmt":"2012-08-21T09:38:22","guid":{"rendered":"http:\/\/blog.systemconnect.dk\/?p=139"},"modified":"2014-01-31T08:03:46","modified_gmt":"2014-01-31T07:03:46","slug":"kursen-er-sat-men-er-den-rigtig","status":"publish","type":"post","link":"https:\/\/scblog.lynge.org\/?p=139","title":{"rendered":"Kursen er sat, men er den rigtig?"},"content":{"rendered":"<p>Ind imellem st\u00f8der man p\u00e5 at C5 ikke er helt s\u00e5 fejltollerant, som man kunne \u00f8nske sig. Et eksempel er i valutakartoteket, hvor der altid skal v\u00e6re mindst en kurs p\u00e5 hver valuta.<\/p>\n<p>C5 applikationen s\u00f8rger ganske vist for at der &#8220;altid&#8221; er det, men alligevel ser vi ind imellem fejl hos kunderne, hvor kurs 100 p\u00e5 DKK pludselig er v\u00e6k (mistanke om databasefejl eller databasemanipulation der er g\u00e5et sk\u00e6vt).<br \/>\nMan kan lede &#8220;huller i jorden&#8221; efter s\u00e5dan en fejl (tro mig &#8211; vi har gjort det \ud83d\ude42 ), s\u00e5 derfor dette blogindl\u00e6g&#8230;<\/p>\n<p>Defaultposten p\u00e5 valutakartoteket p\u00e5 DKK\u00a0er magen til den post, der SKAL v\u00e6re der (kurs 100 uden datoer), s\u00e5 kan man faktisk kun se fejlen i valutaformen, ved at tilf\u00f8je l\u00f8benummerfeltet til billedet &#8211; l\u00f8benummeret vil v\u00e6re 0 hvis posten ikke er der.<br \/>\n<a href=\"http:\/\/blog.systemconnect.dk\/wp-content\/uploads\/2012\/08\/Forkert.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-142\" title=\"Forkert\" src=\"http:\/\/blog.systemconnect.dk\/wp-content\/uploads\/2012\/08\/Forkert.png\" alt=\"\" width=\"690\" height=\"421\" srcset=\"https:\/\/scblog.lynge.org\/wp-content\/uploads\/2012\/08\/Forkert.png 690w, https:\/\/scblog.lynge.org\/wp-content\/uploads\/2012\/08\/Forkert-300x183.png 300w, https:\/\/scblog.lynge.org\/wp-content\/uploads\/2012\/08\/Forkert-491x300.png 491w\" sizes=\"auto, (max-width: 690px) 100vw, 690px\" \/><\/a><br \/>\nKonsekvenserne af fejlen er store &#8211; valutakoden lige f\u00f8r DKK vil f\u00e5 kursen 100 (fx har jeg oplevet at\u00a0CZK &#8211; der alfabetisk sorteres lige f\u00f8r DKK &#8211;\u00a0opsat med kurs 29,\u00a0bogf\u00f8res med kurs 100 i C5 (fordi regnestykket n\u00e5r der skal omregnes til DKK er (Kurs p\u00e5 valuta)\/(Kurs p\u00e5 DKK)*100. DKK ser umiddelbart fin ud (kurs 100), mens andre valutaer fx. EUR\u00a0ogs\u00e5 bliver helt forkerte&#8230;<br \/>\nEr der bogf\u00f8rt meget med disse forkerte valutakurser i l\u00e6ngere tid, er det noget af en opgave at f\u00e5 ryddet op i miss\u00e6ren.<br \/>\n<a href=\"http:\/\/blog.systemconnect.dk\/wp-content\/uploads\/2012\/08\/Forkert-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-143\" title=\"Forkert 2\" src=\"http:\/\/blog.systemconnect.dk\/wp-content\/uploads\/2012\/08\/Forkert-2.png\" alt=\"\" width=\"915\" height=\"287\" srcset=\"https:\/\/scblog.lynge.org\/wp-content\/uploads\/2012\/08\/Forkert-2.png 915w, https:\/\/scblog.lynge.org\/wp-content\/uploads\/2012\/08\/Forkert-2-300x94.png 300w, https:\/\/scblog.lynge.org\/wp-content\/uploads\/2012\/08\/Forkert-2-500x156.png 500w\" sizes=\"auto, (max-width: 915px) 100vw, 915px\" \/><\/a><\/p>\n<p>Intollerancen\u00a0mht. de forkerte data i\u00a0C5 skyldes, at man i C5 standard applikationen bruger opslaget ExchRate[CurrencyIdx&lt;=(valutakode), (opslagsdato)]. Opslaget foruds\u00e6tter at der ALTID er et match p\u00e5 den valutakode man laver opslaget med (fordi der jo SKAL v\u00e6re en post med tom dato).<br \/>\nI det \u00f8jeblik der ikke findes mindst en post med dato mindre end opslagsdatoen, vil opslaget finde nyeste (datom\u00e6ssige) kurs frem p\u00e5\u00a0FOREG\u00c5ENDE valuta jf. indexet\u00a0&#8211; og det er jo\u00a0katastrofalt forkert.<\/p>\n<p>Et oplagt fix ville v\u00e6re hvis C5 l\u00f8bende checkede at man faktisk fik fundet en korrekt kurs p\u00e5 den p\u00e5g\u00e6ldende valuta&#8230; Omvendt kan man jo diskutere om det direkte er en bug i C5, n\u00e5r applikationen faktisk fors\u00f8ger at sikre, at der altid er en valid startkurs (en uden dato)\u00a0p\u00e5 alle valutaer.<\/p>\n<p>Morale &#8211; oplever du m\u00e6rkelige &#8220;kurs-ting&#8221; &#8211; fx. at det ser ud til at C5 h\u00e5ndtere en anden valuta end den du har opsat,\u00a0som standardvaluta\u00a0(kurs 100 selvom du har angivet anden kurs). Eller oplever du at kurser\u00a0p\u00e5 andre\u00a0valutaer ikke stemmer overens med dem du har opsat i valutakartoteket,\u00a0s\u00e5 check om der er l\u00f8benummer p\u00e5 din kurs-100 post p\u00e5 den opsatte standardvaluta (normalt DKK).<\/p>\n<p>Er der ikke det &#8211; s\u00e5 ret kursen (100) til &#8220;100&#8221; og tryk F3. N\u00e5r du \u00e5bner billedet igen vil posten have f\u00e5et l\u00f8benummer og alting virker. Tilbage kan s\u00e5 v\u00e6re et n\u00e6sten uoverkommeligt arbejde med at rydde op i posteringer med en helt forkerte kurs&#8230;<\/p>\n<p>NB: Vi\u00a0HAR indrapporteret et \u00f8nske om forbedring af C5 s\u00e5 applikationen fanger fejlen omkring den manglende valutapost, og h\u00e5ber at Microsoft efterkommer \u00f8nsket i en fremtidig udgave af C5.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ind imellem st\u00f8der man p\u00e5 at C5 ikke er helt s\u00e5 fejltollerant, som man kunne \u00f8nske sig. Et eksempel er i valutakartoteket, hvor der altid skal v\u00e6re mindst en kurs p\u00e5 hver valuta. C5 applikationen s\u00f8rger ganske vist for at &hellip; <a href=\"https:\/\/scblog.lynge.org\/?p=139\">L\u00e6s resten <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[37,6,4],"tags":[30,15,43,13,22,11,29,23,53,14],"class_list":["post-139","post","type-post","status-publish","format-standard","hentry","category-klassisk-c5","category-klassisk-c5-support","category-klassisk-c5-teknik","tag-bug","tag-business-solutions","tag-c5","tag-damgaard-data","tag-database","tag-dynamics","tag-fejl","tag-hint","tag-klassisk-c5","tag-microsoft"],"_links":{"self":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=139"}],"version-history":[{"count":7,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/139\/revisions"}],"predecessor-version":[{"id":189,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/139\/revisions\/189"}],"wp:attachment":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}