{"id":924,"date":"2016-04-07T18:07:03","date_gmt":"2016-04-07T16:07:03","guid":{"rendered":"http:\/\/blog.systemconnect.dk\/?p=924"},"modified":"2016-05-23T10:42:11","modified_gmt":"2016-05-23T08:42:11","slug":"er-dobbelt-kontrol-er-bedre","status":"publish","type":"post","link":"https:\/\/scblog.lynge.org\/?p=924","title":{"rendered":"Er dobbelt kontrol bedre?"},"content":{"rendered":"<p>Ja, det er det vel. Men der er vel gr\u00e6nser for hvor mange gange ting skal kontrolleres?<\/p>\n<p>&nbsp;<\/p>\n<p>I Dynamics NAV 2016 CU4 og CU6 (vi har ikke testet \u00e6ldre end CU6, men de har formentligt ogs\u00e5 fejlen), bliver udbetalingskladdelinjer kontrolleret RIGTIGT grundigt ifm. udl\u00e6sning af bankfil.<\/p>\n<p>&nbsp;<\/p>\n<p>Vi har kun testet DANSKEBANK, men det er muligt at de andre bankformater benytter samme codeunits og dermed har samme fejl. Vi har heller ikke testet Dynamics C5 version 2016, men den kan potentielt have\u00a0samme fejl.<\/p>\n<p>&nbsp;<\/p>\n<p>Fejlen kan genskabes med CRONUS Danmark A\/S regnskabet s\u00e5dan her:<\/p>\n<ul>\n<li>Standard NAV 2016 CU6 DK med CRONUS Danmark A\/S<\/li>\n<li>Ret Codeunit 1550, funktion CheckGenJournalBatchHasUsageRestrictions ved at tilf\u00f8je en MESSAGE s\u00e5 vi kan se fejlen selv ved f\u00e5 kladdelinjer:<\/li>\n<\/ul>\n<pre>CheckRecordHasUsageRestrictions(GenJournalBatch.RECORDID);\r\n\r\nGenJournalLine.SETRANGE(\"Journal Template Name\",GenJournalBatch.\"Journal Template Name\");\r\nGenJournalLine.SETRANGE(\"Journal Batch Name\",GenJournalBatch.Name);\r\nIF GenJournalLine.FINDSET THEN\r\n\u00a0 REPEAT\r\n\u00a0\u00a0\u00a0 CheckRecordHasUsageRestrictions(GenJournalLine.RECORDID);\r\n\u00a0\u00a0\u00a0 \/\/SC1.00&lt;\r\n\u00a0\u00a0\u00a0 MESSAGE('%1,%2,%3',Genjournalline.\"Journal Template Name\",GenJournalLine.\"Journal Batch Name\",GenJournalLine.\"Line No.\");\r\n\u00a0\u00a0\u00a0 \/\/&gt;SC1.00\r\n\u00a0 UNTIL GenJournalLine.NEXT = 0;<\/pre>\n<ul>\n<li>\u00c5ben &#8220;Bank Konto&#8221; siden og ret KB-KASSEKREDIT. S\u00e6t Format til eksport af betaling=DANSKEBANK<\/li>\n<li>\u00c5ben &#8220;Finanskladdetyper&#8221; billedet, v\u00e6lg UDBETALING og Naviger\/Navne fra menuen. Afkryds Tillad eksport af betaling ud for BANK kladden<\/li>\n<li>\u00c5ben &#8220;Udbetalingskladden&#8221; BANK<br \/>\nTryk &#8220;Lav Forslag&#8221;. Sidste betalingsdato=01-03-2018, Bogf\u00f8ringsdato=01-03-2018, Start Bilagsnr.=1. Afgr\u00e6ns til kun at lave betalinger for debitor 10000.<br \/>\nTryk &#8220;Eksporter betalinger til fil&#8230;&#8221;<\/li>\n<\/ul>\n<p>Bem\u00e6rk at hver linje kontrolleres flere gange (der kommer flere\u00a0dialogbokse med samme linjenr.)\u00a0&#8211; faktisk en gang pr. antal linjer i kladden.<br \/>\nDvs. her er der 5 linjer og de kontrolleres hver 5 gange (25 kald af kontrollen).<br \/>\nUdl\u00e6sningen fejler i denne test med en r\u00e6kke fejl &#8211; men det er ligegyldigt i denne sammenh\u00e6ng (skyldes yderligere manglende ops\u00e6tning).<\/p>\n<p>Nu er 25 kald af kontrollen ikke noget at pive over, men vi har set fejlen hos en kunde med over 3.000 betalinger &#8211; og her bliver kontrollen kaldt 9.000.000 gange mere end n\u00f8dvendigt. Og det tager alts\u00e5 tid &#8211; laaaang tid! (mindst \u00bd time ekstra).<\/p>\n<div><\/div>\n<div>Fejlen kan umiddelbart l\u00f8ses ved at \u00e6ndre ovenst\u00e5ende codeunit s\u00e5ledes at kun den \u00f8verste linje i funktionen beholdes.<br \/>\nDet er dog ikke kontrolleret om det medf\u00f8rer fejl hvis der benyttes andre bankformater eller n\u00e5r funktionen kaldes fra andre steder i applikationen (hvis den g\u00f8r det).<br \/>\nI ovenst\u00e5ende scenarie kaldes funktionen i codeunit 1550 via integration event GenJnlBatch.OnCheckGenJournalLineExportRestrictions (codeunit 1211) fra codeunit 13672 (og det er der det yderste loop der genneml\u00f8ber linjerne findes).<\/div>\n<div><\/div>\n<div>Fejlen er naturligvis indmeldt til Microsoft og vi forventer at den l\u00f8ses i en kommen Cumulative Update til Dynamics NAV 2016.<\/div>\n<div><\/div>\n<div>Opdateringer:<\/div>\n<ul>\n<li>11\/5-2016: Vi har haft et forel\u00f8bigt fix til gennemsyn. Fixet l\u00f8ser problemet lidt anderledes ved at bygge en liste over allerede kontrollerede linjer i en temp-tabel. Og s\u00e5 naturligvis kun kontrollere linjerne hvis de ikke tidligere har v\u00e6ret kontrolleret.<br \/>\nS\u00e5 vidt vides g\u00e5r l\u00f8sningen nu i test internt hos Microsoft og bliver s\u00e5 released i en kommende cumulative update &#8211; et kvalificeret g\u00e6t er CU8 som forventes\u00a0i juni.<\/li>\n<li>23\/5-2016: Supportsagen er nu lukket hos Microsoft med bekr\u00e6ftelsen af at den kommer med i CU8.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Ja, det er det vel. Men der er vel gr\u00e6nser for hvor mange gange ting skal kontrolleres? &nbsp; I Dynamics NAV 2016 CU4 og CU6 (vi har ikke testet \u00e6ldre end CU6, men de har formentligt ogs\u00e5 fejlen), bliver udbetalingskladdelinjer &hellip; <a href=\"https:\/\/scblog.lynge.org\/?p=924\">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":[40,41,38,32,35,36],"tags":[30,15,43,11,54,52,29,14,42,44,31,20],"class_list":["post-924","post","type-post","status-publish","format-standard","hentry","category-c5-support","category-c5-teknik","category-dynamics-c5","category-dynamics-nav","category-nav-support","category-nav-teknik","tag-bug","tag-business-solutions","tag-c5","tag-dynamics","tag-dynamics-c5","tag-dynamics-nav","tag-fejl","tag-microsoft","tag-nav","tag-navigator","tag-navision","tag-udokumenteret"],"_links":{"self":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/924","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=924"}],"version-history":[{"count":8,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/924\/revisions"}],"predecessor-version":[{"id":959,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/924\/revisions\/959"}],"wp:attachment":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=924"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}