{"id":517,"date":"2014-06-02T17:34:19","date_gmt":"2014-06-02T15:34:19","guid":{"rendered":"http:\/\/blog.systemconnect.dk\/?p=517"},"modified":"2016-08-18T09:42:46","modified_gmt":"2016-08-18T07:42:46","slug":"kernen-falder-aldrig-langt-fra-applikationen","status":"publish","type":"post","link":"https:\/\/scblog.lynge.org\/?p=517","title":{"rendered":"Kernen falder aldrig langt fra applikationen"},"content":{"rendered":"<p>P\u00e5 b\u00e5de Klassisk Dynamics C5 og p\u00e5 Dynamics NAV\/C5 er det mulig at lave en s\u00e5kaldt teknisk opgradering. Det er faktisk meget udbredt p\u00e5 Dynamics NAV\/C5, men rimeligt overset p\u00e5 Klassisk Dynamics C5.<\/p>\n<p>&nbsp;<\/p>\n<p>Forskellen p\u00e5 en traditionel, komplet opgradering og en teknisk opgradering er at kun selve kernen\/platformen opgraderes (de eksekverbare filer og deres st\u00f8ttefiler), mens selve applikationen og databasedefinitionen mv. ikke opdateres til nyeste udgave. Dermed slipper man af med evt. problemer\/bugs der m\u00e5tte v\u00e6re i kernen, men f\u00e5r naturligvis ikke rettet fejl\/bugs i applikationen &#8211; ligesom man ikke f\u00e5r adgang til forbedringer og nye funktioner i applikationen. Men man f\u00e5r fuld adgang til alle kernes forbedringer &#8211; herunder performanceforbedringer og support af nye Windows- og evt. SQL-udgaver.<\/p>\n<p>&nbsp;<\/p>\n<p>Som sagt er det meget udbredt p\u00e5 Dynamics NAV\/C5, s\u00e5 den vil jeg ikke bruge tid p\u00e5 her. Historien p\u00e5 Klassisk Dynamics C5 er dog en anden. Her er det ofte overset &#8211; og det p\u00e5 trods af at Microsoft faktisk har gjort sig umage for at det ikke giver (alt for store) problemer. Og da det jo faktisk giver mulighed for at &#8220;opgradere&#8221; meget gamle Klassisk C5&#8217;ere s\u00e5 de kan k\u00f8re p\u00e5 moderne 64 bits operativsystemer &#8211; ogs\u00e5 selvom de har utallige applikationstilpasninger, s\u00e5 er det faktisk lidt en skam at det ikke bruges mere end det g\u00f8r.<\/p>\n<p>&nbsp;<\/p>\n<p>Det skal naturligvis understreges at det er\u00a0helt p\u00e5 egen regning og risiko det her! Kombinationen af\u00a0netop din applikation, netop dine data\u00a0og netop den kerne du \u00f8nsker at opgradere til er hverken testet af Microsoft, os eller andre. S\u00e5 du er helt p\u00e5 egen h\u00e5nd hvis det ikke virker &#8211; men det g\u00f8r det\u00a0alts\u00e5 som regel &#8211; eller kan i hvert fald bringes til at virke\u00a0:-). Men g\u00f8r lige dig selv den tjeneste at teste det grundigt i et testsystem inden du s\u00e6tter det i drift.<\/p>\n<p>&nbsp;<\/p>\n<p>Lad os lige starte med at sl\u00e5 fast hvad kernen i C5 best\u00e5r af &#8211; minimalt er der p\u00e5 native\u00a0tale om filerne c5w32.exe, c5w32c.exe, c5txtdat.dk, c5txtdat.is og c5txtdat.uk.\u00a0P\u00e5 SQL skal c5w32.exe og c5w32c.exe lige erstattes af d5w32.exe og d5w32c.exe.<\/p>\n<p>Derudover KAN det ogs\u00e5 v\u00e6re du har brug for nye ODBC-drivere til din Native C5 database &#8211; de skal jo s\u00e5 ogs\u00e5 lige kopieres fra den nye pakke &#8211;\u00a0<a title=\"Native (og lidt SQL) ODBC A-B-C\" href=\"http:\/\/blog.systemconnect.dk\/?p=219\">klik evt. her for at f\u00e5 hint til hvordan du installerer dem!<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Det grundl\u00e6ggende trick\u00a0til en kerneopgradering\u00a0er at bruge den halvvejs udokumenterede -Qnnn\/-QXnnn parameter til Klassisk C5 kernen. Den justerer\u00a0nemlig\u00a0kernens opf\u00f8rsel en smule, s\u00e5 den passer til din applikation i det omfang det er n\u00f8dvendigt. Den kan p\u00e5 2012 kernen have f\u00f8lgende v\u00e6rdier:<\/p>\n<ul>\n<li>-Q170:\u00a0Concorde C5 1.70 og Concorde C5 1.80<\/li>\n<li>-Q200:\u00a0Damgaard C5 2.0 og Navision C5 2.1<\/li>\n<li>-Q300: Microsoft Navision C5 3.0 og Microsoft Business Solutions C5 3.0 SP3<\/li>\n<li>-Q400: Microsoft C5 4.x<\/li>\n<li>-Q420: Microsoft Dynamics C5 2008 (intern version 4.2)<\/li>\n<li>-Q430: Microsoft Dynamics C5 2010\u00a0(intern version 4.3)<\/li>\n<li>-Q440: Microsoft Dynamics C5 2012\u00a0(intern version 4.4 &#8211;\u00a0default p\u00e5 C5 2012 kernerne)<\/li>\n<\/ul>\n<p>-Q parameteren findes ogs\u00e5 i en -QX-variant. X&#8217;et styrer bl.a. om tabeltriggere k\u00f8rer i DBD eller TRG (Fx\u00a0-QX170). Q-parameteren er arvet fra Concorde XAL og er beskrevet i kernenyhedsbrevet til XAL 2.80.<\/p>\n<p>Parameteren kan selvf\u00f8lgelig s\u00e6ttes i C5.ini, ligesom alle andre parametre. Bem\u00e6rk dog at en evt. C5 ODBC driver IKKE l\u00e6ser C5.ini, s\u00e5 parameteren skal ogs\u00e5 s\u00e6ttes i dens &#8220;Additional Directories&#8221; som beskrevet i dens hj\u00e6lp.<\/p>\n<p>Nu er det jo ikke &#8220;bare&#8221; at kopiere de nye kerner ind, s\u00e6tte den korrekte Q-parameter, genovers\u00e6tte applikationen og s\u00e5 tro at alting virker. Der er lige nogle ting man skal have styr p\u00e5:<\/p>\n<p>Du skal naturligvis have et aktivt abonnement p\u00e5 din Klassiske Dynamics C5&#8217;er. Det er nemlig en foruds\u00e6tning for at du i det hele taget m\u00e5 bruge de nye kerner og\u00a0l\u00e5ne applikationskode fra de nye C5ere. -Q parameteren medf\u00f8rer at du kan k\u00f8re p\u00e5 dine gamle licenskoder, men husk at du skal indl\u00e6se dem i den nye kerne.\u00a0Og det er muligt at du ikke &#8220;bare&#8221; kan indl\u00e6se den gamle\u00a0licens\u00a0p\u00e5 samme m\u00e5de som du plejer\u00a0&#8211; for slize-metoden blev \u00e6ndret ifm. C5 2008 (mere om det nedenfor).<\/p>\n<p>Bem\u00e6rk at det kan v\u00e6re et problem at skifte licenskoden til kernerne hvis du har 3. parts moduler, som selv har licenskoder der baserer sig p\u00e5 C5 kernens licenskode. Her m\u00e5 du have fat p\u00e5 den 3. part der producerer modulet for at f\u00e5 nye koder!<\/p>\n<p>Dern\u00e6st\u00a0SKAL du pl\u00f8je\u00a0SAMTLIGE kernenyhedsbreve igennem fra den gamle kerneversion og til og med den kerneversion du \u00f8nsker at k\u00f8re med. Du skal have styr p\u00e5 de \u00e6ndringer der er sket &#8211; og hvad de betyder for din applikation. Der kan v\u00e6re tilpasninger eller 3. parts moduler der ikke l\u00e6ngere kan overs\u00e6ttes &#8211; ligesom der kan v\u00e6re brugt kernekald (SYSINFO-kald) der ikke l\u00e6ngere supporteres!<\/p>\n<p>Du skal is\u00e6r have fokus p\u00e5:<\/p>\n<ul>\n<li>Den nye slize-metode er beskrevet i kernenyhedsbrevet til C5 2008 kernen.<br \/>\nDet er lidt vigtigt at de nye kerner\u00a0IKKE slizes med slize.exe-\/C5Koder.exe-programmerne, idet det \u00f8del\u00e6gger deres digitale kode-signatur og Windows derfor vil advare om at der er pillet ved dem. Slize-koderne gemmes ikke l\u00e6ngere i exe-filerne<br \/>\nHusk ogs\u00e5 at du kan afvikle din slize-XAL-k\u00f8rsel med\u00a0-a parameteren til C5-kernen, men at den skal afvikles som Supervisor (brug evt. ogs\u00e5\u00a0-uSupervisor parameteren)<\/li>\n<li>Windows authentication: Fra og med version 4.0 benyttes windows&#8217; brugernavn til C5 (s\u00e5 man ikke ogs\u00e5 skal logge ind i C5 l\u00e6ngere). L\u00e6s derfor &#8220;Factsheet om Sikkerhed.PDF&#8221; og kernenyhedsbrevet fra C5 4.0.<\/li>\n<li>Evt. kald til de krypteringskald, der er fjernet fra kernen fordi de alligevel ikke var ret sikre<\/li>\n<li>VBX er ikke l\u00e6ngere supporteret &#8211; s\u00e5 du skal justere din applikation hvis den bruger det. VBX har tidligere v\u00e6ret brugt som billedfremviser og til grafer mv.<\/li>\n<li>Da der er tale om en halvvejs usupporteret parameter, skal du ikke forvente at der har v\u00e6ret en helt stringent styring af ny kernefunktionalitet med -Q-parameteren. S\u00e5 lad v\u00e6re med at brokke dig hvis noget ikke er helt 100% logisk \ud83d\ude42<\/li>\n<\/ul>\n<p>Men l\u00e6se nu bare alle nyhedsbrevene &#8211; det kan jo ogs\u00e5 v\u00e6re at de nye C5&#8217;ere kan noget, der VIRKELIG kan score points hos din kunde\/dine brugere uden ret meget arbejde for dig (CTRL+J &#8211; Udskrift til Excel er efter min mening en god kandidat til det &#8211; og det er blot noget applikationskode du skal hente fra de nye C5&#8217;ere\u00a0\ud83d\ude42 ).<\/p>\n<p>Du skal v\u00e6re forberedt p\u00e5 at du &#8211; ud over at gen-overs\u00e6tte hele applikationen, skal justere hist og her for at f\u00e5 det til at fungere, s\u00e5 det er faktisk et must at have licenskode til basis udvikling og rigeligt med ledige formstilpasninger. Du f\u00e5r brug for dem.<br \/>\nOg savner du inspiration til hvordan en given opgave l\u00f8ses i den gamle applikation &#8211; jamen s\u00e5 kigger du da bare i den nye &#8211; s\u00e5 meget er der alts\u00e5 heller ikke \u00e6ndret\u00a0\ud83d\ude42<\/p>\n<p>Vi ved at andre tidligere med succes har v\u00e6ret igennem dette arbejde med applikationen &#8211; og har allerede en zip-fil med de n\u00f8dvendige elementer for at en 2.10 applikation tilsyneladende fungerer p\u00e5 en 2012 kerne&#8230;<\/p>\n<div id=\"attachment_528\" style=\"width: 594px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.systemconnect.dk\/wp-content\/uploads\/2014\/05\/C5210p\u00e52012.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-528\" class=\"wp-image-528 size-large\" src=\"http:\/\/blog.systemconnect.dk\/wp-content\/uploads\/2014\/05\/C5210p\u00e52012-1024x576.jpg\" alt=\"C5210p\u00e52012\" width=\"584\" height=\"328\" srcset=\"https:\/\/scblog.lynge.org\/wp-content\/uploads\/2014\/05\/C5210p\u00e52012-1024x576.jpg 1024w, https:\/\/scblog.lynge.org\/wp-content\/uploads\/2014\/05\/C5210p\u00e52012-300x168.jpg 300w, https:\/\/scblog.lynge.org\/wp-content\/uploads\/2014\/05\/C5210p\u00e52012-500x281.jpg 500w, https:\/\/scblog.lynge.org\/wp-content\/uploads\/2014\/05\/C5210p\u00e52012.jpg 1440w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/a><p id=\"caption-attachment-528\" class=\"wp-caption-text\">Klik for at \u00e5bne billedet i fuld st\u00f8rrelse: C5 2.1 applikation p\u00e5 C5 2012 kerne &#8211; bem\u00e6rk hovedmenu som navigationsmenu og versionsnummeret i titellinjen, samt manglende &#8220;Oversigts&#8221;-fane i debitorkartoteket.<\/p><\/div>\n<p>Vi kan dog desv\u00e6rre\u00a0ikke blot lade dig downloade pakken herfra, idet vi jo ikke kan verificere, at du har det n\u00f8dvendige opdateringsabonnement til din C5.<br \/>\nEr du interesseret i at f\u00e5 pakken, s\u00e5 send Gert Lynge en e-mail p\u00e5 <a href=\"mailto:gsl@systemconnect.dk\">gsl@systemconnect.dk<\/a>\u00a0s\u00e5 vi kan f\u00e5 verficeret dit abonnement.<\/p>\n<p>Husk: Vi vil som sagt aldrig kunne p\u00e5tage os et komplet ansvar for 100% korrekt\u00a0funktion &#8211; det er dit ansvar hvis du v\u00e6lger denne l\u00f8sning. Det sker med andre ord HELT for din egen regning og risiko!<\/p>\n<p>&nbsp;<\/p>\n<p>10.09.2015 Tilf\u00f8jelse inspireret af henvendelse fra Peter Stenstrup de Heus fra <a href=\"http:\/\/www.gits.dk\/\" target=\"_blank\">www.gits.dk<\/a>.<br \/>\nDet der KAN drille meget er at Klassisk Dynamics C5 fra og med version 2008 ikke l\u00e6ngere skal have serienummer slized ind i exe-filer og odbc-dll-filer. Disse serienumre lagres i stedet i C5Direct.C5S og i den forbindelse er der introduceret nye SYSINFO-kald til at s\u00e6tte og l\u00e6se dem. Det er omtalt\u00a0i kernenyhedsbrevet til kerne version 4.2.0.256 sammen med f\u00f8lgende XAL-kodestump der skulle v\u00e6re selvforklarende:<\/p>\n<pre>\/\/Serial Number: \"12345678\" \r\n\/\/Kernel execution code: \"abcdefg\" \r\n\/\/ODBC execution code: \"gfedcba\" \r\n\r\n\/\/SysInfo(1009,\"12345678abcdefg\") Slizes the kernel code into the C5 application and returns old kernel code if successful, otherwise '' (empty string) is returned. \r\n\/\/SysInfo(1000,'') Returns the kernel code. \r\n\/\/SysInfo(1021,\"12345678gfedcba\") Slizes the ODBC code into the C5 application and returns old ODBC code if successful, otherwise ''(empty string) is returned. \r\n\/\/Sysinfo(1020,'') Returns the ODBC code. \r\n\r\nPRINT \"Old SerialNo: \" + SysInfo(1009,\"12345678abcdefg\") \r\nPRINT \"New SerialNo: \" + SysInfo(1000,'') \r\n\r\nPRINT \"Old ODBCSerialNo: \" + SysInfo(1021,\"12345678gfedcba\") \r\nPRINT \"New ODBCSerialNo: \" + SysInfo(1020,'')\r\nPAUSE<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>P\u00e5 b\u00e5de Klassisk Dynamics C5 og p\u00e5 Dynamics NAV\/C5 er det mulig at lave en s\u00e5kaldt teknisk opgradering. Det er faktisk meget udbredt p\u00e5 Dynamics NAV\/C5, men rimeligt overset p\u00e5 Klassisk Dynamics C5. &nbsp; Forskellen p\u00e5 en traditionel, komplet opgradering &hellip; <a href=\"https:\/\/scblog.lynge.org\/?p=517\">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,5,6,4],"tags":[30,15,43,13,11,54,29,23,53,14,31,9,8,20,7],"class_list":["post-517","post","type-post","status-publish","format-standard","hentry","category-klassisk-c5","category-klassisk-c5-salg","category-klassisk-c5-support","category-klassisk-c5-teknik","tag-bug","tag-business-solutions","tag-c5","tag-damgaard-data","tag-dynamics","tag-dynamics-c5","tag-fejl","tag-hint","tag-klassisk-c5","tag-microsoft","tag-navision","tag-udgivelse","tag-udlob","tag-udokumenteret","tag-versioner"],"_links":{"self":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/517","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=517"}],"version-history":[{"count":19,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/517\/revisions"}],"predecessor-version":[{"id":1020,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/517\/revisions\/1020"}],"wp:attachment":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}