{"id":64,"date":"2012-07-16T16:43:37","date_gmt":"2012-07-16T14:43:37","guid":{"rendered":"http:\/\/blog.systemconnect.dk\/?p=64"},"modified":"2014-06-09T10:51:02","modified_gmt":"2014-06-09T08:51:02","slug":"nej-nej-nej-ikke-endnu-et-logningsmodul-til-c5","status":"publish","type":"post","link":"https:\/\/scblog.lynge.org\/?p=64","title":{"rendered":"Nej, nej, nej &#8211; ikke endnu et logningsmodul til C5!?!?"},"content":{"rendered":"<p><strong>ADVARSEL: Brug af denne udokumenterede\u00a0funktionalitet er p\u00e5 egen regning og risiko.<\/strong><\/p>\n<p>De fleste C5-huse har f\u00f8r eller siden implementeret en eller anden forbedret log-funktionalitet i C5&#8230; Og m\u00e5tte konstatere at det er temmeligt tungt at skulle rette i et hav af tabel-triggere &#8211; og\/eller det er sv\u00e6rt at lavet noget robust noget der selv g\u00f8r det og hvor alm. brugere selv kan\u00a0brugerdefinere logningen.<\/p>\n<p>Men der er faktisk en l\u00f8sning p\u00e5 det problem!<\/p>\n<p>I XAL version 3.5 blev der indf\u00f8rt et logningsframework (prim\u00e6rt pga. et krav om at systemet skulle kunne &#8220;best\u00e5&#8221; et &#8220;SOX Audit&#8221;)\u00a0&#8211; og da C5 og XAL jo (stort set) deler kerner, er kernedelen faktisk fungerende i C5 kernen. Der er dog ingen support i applikationen, ligesom de n\u00f8dvendige sysinfo-kald aldrig er dokumenteret i C5.<\/p>\n<p>Kunsten er blot at opdage systemtriggerne Log-Read, Log-Update, Log-Insert og Log-Delete &#8211; og s\u00e5 ellers g\u00e5 igang med en seri\u00f8s gang reverse engineering og portering af ting fra XAL (sysinfo-kald, logik osv).<\/p>\n<p><em>&#8220;Ja, den er go&#8217; med dig. Hvordan ved du at det virker?&#8221;<\/em><br \/>\nGanske simpelt fordi vores\u00a0logningsmodul benytter systemtriggerne og &#8220;XAL-funktionaliteten&#8221; og dermed er 100% brugeropsat uden at der \u00e6ndres i et hav af tabeltriggere. S\u00e5 vi har gjort arbejdet og samtidigt logger vi til eksterne tabeller (ift. C5-databasen) s\u00e5ledes at logningsdata ikke fylder de dyrbare bits ud&#8230;<br \/>\nVi tror vi er de eneste der har et modul der g\u00f8r brug af de\u00a0fire &#8220;XAL-lognings-systemtriggere&#8221;, men vi deler naturligvis gerne modulet med dig, s\u00e5 du ikke beh\u00f8ver lave det arbejde vi har gjort :-)&#8230;<\/p>\n<p><strong>ADVARSEL: Brug af denne udokumenterede funktionalitet er p\u00e5 egen regning og risiko.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ADVARSEL: Brug af denne udokumenterede\u00a0funktionalitet er p\u00e5 egen regning og risiko. De fleste C5-huse har f\u00f8r eller siden implementeret en eller anden forbedret log-funktionalitet i C5&#8230; Og m\u00e5tte konstatere at det er temmeligt tungt at skulle rette i et hav &hellip; <a href=\"https:\/\/scblog.lynge.org\/?p=64\">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":[15,43,13,22,11,23,53,14,20],"class_list":["post-64","post","type-post","status-publish","format-standard","hentry","category-klassisk-c5","category-klassisk-c5-salg","category-klassisk-c5-support","category-klassisk-c5-teknik","tag-business-solutions","tag-c5","tag-damgaard-data","tag-database","tag-dynamics","tag-hint","tag-klassisk-c5","tag-microsoft","tag-udokumenteret"],"_links":{"self":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/64","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=64"}],"version-history":[{"count":5,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/64\/revisions"}],"predecessor-version":[{"id":558,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/64\/revisions\/558"}],"wp:attachment":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}