{"id":840,"date":"2015-09-11T07:20:23","date_gmt":"2015-09-11T05:20:23","guid":{"rendered":"http:\/\/blog.systemconnect.dk\/?p=840"},"modified":"2015-09-11T07:29:00","modified_gmt":"2015-09-11T05:29:00","slug":"en-fugl-paa-taget-i-et-glashus-gaar-over-aaen-efter-sand","status":"publish","type":"post","link":"https:\/\/scblog.lynge.org\/?p=840","title":{"rendered":"&#8220;En fugl p\u00e5 taget i et glashus g\u00e5r over \u00e5en efter sand&#8221;"},"content":{"rendered":"<p>Ordsproget i overskriften er lige s\u00e5 un\u00f8jagtigt citeret\u00a0som Klassisk Dynamics C5s lagerstatus (InvenStatus.REP)\u00a0KAN v\u00e6re. I hvert fald hvis du k\u00f8rer C5 p\u00e5 SQL-databasen og k\u00f8rer lagerstatus samtidigt med at dine kolleger arbejder i C5. Og vel og m\u00e6rke bestiller lagerstatus pr. en historisk dato (alts\u00e5 ikke dags dato).<\/p>\n<p>Standard lagerstatusudskriften i Klassisk Dynamics C5 er nemlig lavet lidt kringlet &#8211; formentligt af performancehensyn. Den tager nemlig beholdninger pr. dags dato og regner s\u00e5 bagl\u00e6ns tilbage til den dato du har bestilt udskriften per. Og det g\u00f8r den desv\u00e6rre uden at l\u00e5se for opdateringer\u00a0og dermed\u00a0tage h\u00f8jde for at der samtidigt inds\u00e6ttes lagerposter.<\/p>\n<p>I praksis betyder det at man risikerer at resultatet ganske simpelt bliver forkert.<\/p>\n<p>Fejlen kan relativt let genskabes ved at k\u00f8re f\u00f8lgende kode i en Klassisk Dynamics C5 med DMO-regnskab, samtidigt med at lagerstatus k\u00f8res i samme\u00a0regnskab\u00a0for samme vare (20-11) pr. en historisk dato (fx 6\/1-2011):<\/p>\n<pre>\/\/ Lagerstatus for 20-11 pr. 06.01.2011 skal v\u00e6re 50 stk. uanset at nedenst\u00e5ende k\u00f8rer\r\nINT &amp;Qty\r\nPRINT TODAY(),' ',Time2Str(Timenow(),2,2),' STARTET'\r\nWHILE 1\r\n\u00a0\u00a0\u00a0 #Add(&amp;Qty,1)\r\n\u00a0\u00a0\u00a0 TTSBEGIN InvenTrans\r\n\u00a0\u00a0\u00a0 INTRODUCE InvenTrans\r\n\u00a0\u00a0\u00a0 SET InvenTrans.ItemNumber\u00a0\u00a0\u00a0 \u00a0\u00a0= '20-11'\r\n\u00a0\u00a0\u00a0 SET InvenTrans.Date_\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = today()\r\n\u00a0\u00a0\u00a0 SET InvenTrans.Qty\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 100\r\n\u00a0\u00a0\u00a0 INSERT InvenTrans\r\n\u00a0\u00a0\u00a0 TTSCOMMIT InvenTrans\r\n\u00a0\u00a0\u00a0 PRINT TODAY(),' ',Time2Str(Timenow(),2,2),' ',&amp;Qty\r\nEND<\/pre>\n<p><span style=\"color: #ff0000;\"><strong>ADVARSEL: Du skal IKKE k\u00f8re ovenst\u00e5ende i dit driftsregnskab. Det er kun til brug i et DMO-regnskab du ikke bruger \/ sletter efterf\u00f8lgende.<\/strong><\/span><\/p>\n<p>Lagerstatus vil i det tilf\u00e6lde stort set give forskelligt resultat hver gang den k\u00f8res. Stoppes k\u00f8rslen igen, vil Lagerstatus blive korrekt.<\/p>\n<p>Bem\u00e6rk at ovenst\u00e5ende kode inds\u00e6tter lagerposter pr. d.d., men at det alligevel (mens den k\u00f8rer) p\u00e5virker lagerstatus p\u00e5 varen pr. en historisk dato (fx 6\/1-2011). Vi er naturligvis klar over at de lagerposter der inds\u00e6ttes i ovenst\u00e5ende er ret konstruerede &#8211; det er kun for at g\u00f8re det mere overskueligt og tydeligg\u00f8re problemet. Fejlen optr\u00e6der naturligvis ogs\u00e5 med &#8220;rigtige&#8221; lagerposter.<\/p>\n<p>Vi har kunnet genskabe fejlen i Klassisk Dynamics C5 2012 uden servicepacks, men med hotfix 1, samt nyeste Klassisk Dynamics C5 2012, servicepack 2, hotfix 6, men det\u00a0er formentligt ogs\u00e5 galt med \u00e6ldre versioner.<\/p>\n<p>Vi har\u00a0naturligvis netop meldt fejlen ind til Microsoft, s\u00e5 vi kan f\u00e5 den l\u00f8st i en fremtidig opdatering af Klassisk Dynamics C5.<\/p>\n<p>Indtil den rettelse er klar og du f\u00e5r den lagt ind, vil anbefalingen herfra v\u00e6re KUN at k\u00f8re lagerstatus pr. en historisk dato,\u00a0hvis du er alene i Klassisk Dynamics\u00a0C5\u00a0til SQL.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ordsproget i overskriften er lige s\u00e5 un\u00f8jagtigt citeret\u00a0som Klassisk Dynamics C5s lagerstatus (InvenStatus.REP)\u00a0KAN v\u00e6re. I hvert fald hvis du k\u00f8rer C5 p\u00e5 SQL-databasen og k\u00f8rer lagerstatus samtidigt med at dine kolleger arbejder i C5. Og vel og m\u00e6rke bestiller lagerstatus &hellip; <a href=\"https:\/\/scblog.lynge.org\/?p=840\">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,54,29,53,14,28],"class_list":["post-840","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-dynamics-c5","tag-fejl","tag-klassisk-c5","tag-microsoft","tag-sql"],"_links":{"self":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/840","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=840"}],"version-history":[{"count":6,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/840\/revisions"}],"predecessor-version":[{"id":846,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/840\/revisions\/846"}],"wp:attachment":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}