{"id":1219,"date":"2012-09-28T13:21:47","date_gmt":"2012-09-28T13:21:47","guid":{"rendered":"http:\/\/www.navision-blog.de\/?p=1219"},"modified":"2012-09-28T13:33:30","modified_gmt":"2012-09-28T13:33:30","slug":"navtechdays-2012-notizen-teil-2","status":"publish","type":"post","link":"http:\/\/www.navision-blog.de\/blog\/2012\/09\/28\/navtechdays-2012-notizen-teil-2\/","title":{"rendered":"NavTechDays 2012 Notizen Teil 2"},"content":{"rendered":"<p>Gestern habe ich schon den <a href=\"http:\/\/www.navision-blog.de\/2012\/09\/27\/notizen-von-den-navtechdays-2012-teil-1\/\">ersten Teil meiner Notizen<\/a> hier auf dem Blog ver&#246;ffentlicht. Jetzt geht es weiter mit Teil 2.<\/p>\n<h4>Scrum<\/h4>\n<p>Microsoft hat den internen Prozess auf Scrum umgestellt und ich finde das merkt man wirklich. Es sind zwar nur zwei Tage Konferenz, aber das Produkt f&#252;hlt sich tats&#228;chlich &#8220;fertig&#8221; an. Es ist\u00a0interessant\u00a0zu sehen wie eine so konservative Organisation wie NAV auf einen agilen Prozess umstellt. Ich bin gespannt was mit diesen ganzen Wasserfall-Tools wie SureStep und Co. passiert. Hier auf dieser Developer-Konferenz hat jedenfalls keiner davon geredet.<\/p>\n<ul>\n<li>20 Scrum Teams mit\u00a0zweiw&#246;chigen Sprints<\/li>\n<li>Verwaltung der User Stories im TFS (Source Control irgendwo anders)<\/li>\n<li>ATDD wird eingesetzt aber kein TDD<\/li>\n<li>Umstellung auf Kanban steht jetzt bevor<\/li>\n<\/ul>\n<h4>OData<\/h4>\n<ul>\n<li>OData Webservices aus NAV + Excel PowerPivot ist eine geniale Kombination f&#252;r Auswertungen (Low Cost BI) &#8211;\u00a0<a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/hh165375(v=nav.70).aspx\">MSDN Walkthrough<\/a><\/li>\n<li>OData ist im Moment nur read-only<\/li>\n<\/ul>\n<h4>Dimensionen<\/h4>\n<ul>\n<li>V&#246;llig &#252;berarbeitet.<\/li>\n<li>Viel weniger Kopien der Dimensionen \u2013 nur noch &#252;ber einen Schl&#252;ssel referenziert<\/li>\n<\/ul>\n<h4>Datenzugriff<\/h4>\n<ul>\n<li>Neuer Data Access Stack angeblich schneller als Classic Client.<\/li>\n<li>FIND und FINDSET sind gleich schnell<\/li>\n<li>SETCURRENTKEY macht Abfragen jetzt nur noch langsamer (da Sortierung) keinesfalls schneller<\/li>\n<li>SQL Call Stack Traces &#8211; <a href=\"http:\/\/blogs.msdn.com\/b\/nav\/archive\/2012\/09\/18\/example-of-how-to-use-sql-tracing-feature-to-profile-al-code.aspx\">Blog post<\/a><\/li>\n<li>Es sind keine Writes in die Object und Company Tabellen mehr m&#246;glich<\/li>\n<li>Security Filters &#252;berarbeitet. Erlaubt es Nutzern nur gefilterte Datens&#228;tze zu zeigen.\n<ul>\n<li>Neue Optionen um Probleme mit indirekten Rechten zu l&#246;sen<\/li>\n<li>Security Filter Feature kann im C\/AL direkt an Record-Variablen konfiguriert werden<\/li>\n<li>Security-Einstellungen zeigen sofort Wirkung. Keine manuelle Synchronisation der Nutzer oder Neustarts n&#246;tig<\/li>\n<li>Standard App wurde noch nicht nach m&#246;glichen Security Filter Problemen durchforstet<\/li>\n<li>Validated Mode sollte m&#246;glichst nicht benutzt werden, da es langsamer als die anderen Optionen ist<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>Locks und Blocks<\/h4>\n<ul>\n<li>Alle Slides und Samples sind auf Stryks Blog <a href=\"http:\/\/dynamicsuser.net\/blogs\/stryk\/archive\/2012\/09\/28\/nav-techdays-2012-understanding-blocks-amp-deadlocks-with-nav-amp-sql-server.aspx\">downloadbar<\/a><\/li>\n<li>SQL Server Lock Escalation sollte vermieden werden -&gt; \u201ealways rowlock&#8221; benutzen (jedoch nicht auf 32bit und unter 8GB RAM)<\/li>\n<li>LOCKTABLE erh&#246;ht das Transaction Isolation Level auf Serializable\n<ul>\n<li>&#220;ber einen DB switch kann auf Repeatable Read umgestellt werden (Unterschied wie Tag und Nacht)<\/li>\n<li>Das ist sowieso der Standard bei NAV2013<\/li>\n<li>Es k&#246;nnen zwar Phantom Reads entstehen, aber das sind Probleme die in der Praxis nicht existieren (&#8220;habe ich noch nie gesehen&#8221;)<\/li>\n<\/ul>\n<\/li>\n<li>Block und Dead Lock Detection Tool auf seinem Blog<\/li>\n<li>Job Queue von NAV2013 kann auch in &#228;lteren Versionen nachgebaut werden<\/li>\n<li>Beispiel 1: In Document Dimensions den Clustered SQL Index fixen &#8211; Document No.,\u00a0 Document Type nach vorne -&gt; weniger Blocks da die gelockten Zeilen n&#228;her beisammen sind<\/li>\n<li>Beispiel 2: In Codeunit 80 und 90 gibt es ein globales Lock auf die \u201eGL Entry\u201c. Das wird auch ausgef&#252;hrt wenn gar keine Sachbuchungen passieren. Lock mit PostToGL Flag fixen (bereits in NAV2013 gefixt)<\/li>\n<li>Beispiel 3: In Tabelle 36 gibt es einen \u201eWarehouse bug\u201c \u2013 Selbst wenn die Warehouse Tabelle leer ist wird die Tabelle gelockt. Generell sollte immer &#252;ber ISEMPTY gepr&#252;ft werden ob &#252;berhaupt Datens&#228;tze im Filter sind bevor man ein DELETEALL oder MODIFYALL durchf&#252;hrt<\/li>\n<li>Beispiel 4: Reservation Entry.Lock() hat ein &#228;hnliches Problem. Einfach am Anfang der Funktion pr&#252;fen ob die Tabelle leer ist. Wenn ja dann mit EXIT aus der Funktion springen<\/li>\n<li>Beispiel 5: No. Series Line Tabelle ist \u201ezu klein\u201c f&#252;r das Lock und es werden mehr als eine Zeile gelockt. Folge: Wenn jemand eine Rechnung erzeugt kann ein anderer u.U. keine Artikel erzeugen. L&#228;sst sich leicht mit Dummy Feldern fixen. \ud83d\ude09<\/li>\n<\/ul>\n<h4>Reporting<\/h4>\n<ul>\n<li>Es gibt nur noch RDCL Reports<\/li>\n<li>Classic Sections (und deren Trigger) fallen weg<\/li>\n<li>Es gibt einen \u201eDataset designer\u201c als Ersatz f&#252;r die Sections (analog Query designer)<\/li>\n<li>Es wird nun RDLC 2008, Report Viewer 2010 und Visual Studio 2010 benutzt.<\/li>\n<li>Reports erlauben \u201eSave as Word\u201c<\/li>\n<li>\u201cHeavy reports\u201d &#252;ber Background Session auf dem Server drucken (\u201cServer side printing\u201d)<\/li>\n<li>Im Webclient gibt es \u201cPreview\u201d (nur IE) und \u201eSave as PDF\u201c (alle Browser)<\/li>\n<li>\u201eTray selection\u201c fixed \u2013 zus&#228;tzlich ein Codeunit 1 Trigger der es erlaubt die Papierfachsteuerung zu &#252;berschreiben<\/li>\n<li>Upgrade Prozess\n<ul>\n<li>Hotfixes in NAV 5 und 6 erlauben Trigger in Codeunit 1 \u201eOnBeforeRunReport\u201c (erlaubt zu z&#228;hlen wie oft der Report tats&#228;chlich genutzt wird)<\/li>\n<li>Automatische Transformation hilft bei Upgrade von existieren NAV 2009 RDLC Reports (Tools\/Upgrade Report)<\/li>\n<li>Upgrade braucht ein technisches Upgrade auf NAV2013 als Zwischenschritt, da der Report kompilierbar sein muss um das Transformations-Tool zu benutzen<\/li>\n<li>Automatisch vergebene Namen im Anschluss aufr&#228;umen<\/li>\n<li>Doppelte Spalten entfernen<\/li>\n<li>UI Guidelines auf MSDN befolgen<\/li>\n<li>CreateTotals entfernen<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Insgesamt war es ein sehr gute Veranstaltung mit vielen Informationen zu Dynamics NAV 2013. Vielen Dank an die Organisatoren und die Speaker.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gestern habe ich schon den ersten Teil meiner Notizen hier auf dem Blog ver&#246;ffentlicht. Jetzt geht es weiter mit Teil 2. Scrum Microsoft hat den internen Prozess auf Scrum umgestellt und ich finde das merkt man wirklich. Es sind zwar nur zwei Tage Konferenz, aber das Produkt f&#252;hlt sich tats&#228;chlich &#8220;fertig&#8221; an. Es ist\u00a0interessant\u00a0zu sehen [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[222,5,6],"tags":[],"_links":{"self":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/1219"}],"collection":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/comments?post=1219"}],"version-history":[{"count":9,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/1219\/revisions"}],"predecessor-version":[{"id":1227,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/1219\/revisions\/1227"}],"wp:attachment":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/media?parent=1219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/categories?post=1219"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/tags?post=1219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}