It's always difficult to blog about something when you're not the first. After reading Alex' and Erics blog about their Directions USA experience I figured I needed at least a catchy title to make you start reading.
For me, directions this year was fantastic. It was my first Lustum having only missed the first event and the one that was scheduled when my youngest daughter was born. In these five years I've met a lot of people I now call friends and somehow ended up on the speaker list. This year with two presentations and a chalk talk.
What I also experienced in this period is an event moving from driven by partners to a Microsoft event. I'm not saying that this is a bad thing, it's just different.
Remember that in 2006 we were moving to what we now know as the RTC. It was an exiting experience. We were also in the "SQL is Bad" era where everyone was desperately looking for answers. I remember the shock everyone that waved through the room when someone showed generated C# code from C/AL and told that all object had to be recompiled in order for changes to have effect. Directions started out as an event where partners shouted at Microsoft and look where we are today.
Things change, things have changed and things will always change. Personally I think it's great that Microsoft is sharing NAV 7 with this channel, even though it is under NDA. As a MVP I know what it is to be under NDA and believe you me, I have learned it the hard way. One of the things I have learned about the NDA is that if you cannot say things directly you can use politically correct sentences. For example, I can say that I was happy that they show this "compile all" story at Directions and what happened after that.
So does that settle us with the way Directions is now? Hmmm, tough one. I think we have to. Read the blogs and what has been published. We are going to the cloud! Do you understand what that means? I don't think so. When I started with Navision 1.x it was an easy to understand product that was easy to install and deliver. We had a partner ecosystem that grew like crazy. The cloud can give that back to us if we use it.
The way I see the cloud is the ultimate way to deliver applications in a simple way. Navision like an app. You can already see this happening in Kroatia with the Stratus product. Here T-Mobile is offering Dynamics NAV in the cloud. Imagine T-Mobile as a sponsor of Directions.
No, Directions has changed, and will change, but we won't go back to 2006. We did a journey in the last five years moving from "Navision 5.0" to "Dynamics NAV 7".
That brings me back to this event. For many people, especially in the US, this was their Dynamics NAV 7 event, even tough the release is still one year away. And for me, NAV7 is exactly as Alex has described it, the version that makes NAV6 complete. Everything that was "difficult" in NAV6 is brought back to "simplicity" in NAV7 and beyond.
If we look at the application roadmap there are tons of new application features making this the first NAV release in years that is not just a technical release but really adds business value.
This basically concludes all I can say about Dynamics NAV 7, and is all I want to say about Directions, exept that I wanted to support Waldo's suggestion to have Microsoft talk about the future and the partners about today. And about Alex' comment about European speakers I can only suggest him to step up and face the crowd. Sounds to me he is voluntering to present next year.
So what about the sessions. There were tons of sessions that were not under NDA and I did manage to catch some of those.
The first session I went to was Role Tailoring by Niels Eric Hansen. He broke down the "Susan" role center into small pieces and explained what the real idea behind the RTC is. His view was great and I would love to hear more salespeople explain it like this.
After this I went to the Chalk Talk about Performance. Man, I love these Chalk Talks since they give you the opportunity to participate in the discussion. Ok, ok, I admit... at some point I had hijacked this Chalk Talk. Not because I meant to but because I love the subject to death, even tough it is not core business anymore. Truthfully I was a little surprised by some of the topics that were discussed. I was under the assumption that most of the performance issues are solved by Microsoft now and customers should not experience those issues anymore that are "unsolvable" by their partner. Guess I was wrong. Anyway, I think the CT was great and I hope that I pointed a few people in the right direction.
Then, after lunch, there was the classic "Ask the Experts" session. Now this was a real bummer. It used to be the real exiting session where Microsoft used to be beaten up by partners who asked good and not so good questions about the product. This year: nothing! really amazing. The two things I remember before I walked out for a meeting was a good question about security about which I want to write another blogpost. The other one was someone asking why Microsoft is not investing to enable them to compete with Epicore. This is something I am sick of listening to. Dynamics NAV can EASILY compete with Epicore and any other product. The truth is though that some features are not provided by Microsoft but by a ISV or VAR solution and/or customisations. So what? This is what NAV is all about, Microsoft delivering the spine and the ISV/VAR delivering the details. That's the story of their success. I don't ever want to hear someone mention Epicore again at Directions.
The reason I walked out of the ATE session was a meeting with Kirk Goodwin about a product called Mendix. Kirk looked at our PRS presentation Gary, Waldo and I did in Antwerp and tought we should look at that product, so we did. The cool thing about this product was that it separated the Business Case from the code which is exacly what we want to do with PRS. Thanks Kirk for showing us this product and giving us new ideas.
Then it was time for my session. Tips and Tricks. I did these presentations the last two years at Directions EMEA and decided to combine information from these two presentations and added something from Antwerp. WRONG! Not that there was anything wrong with the presentation, no, I only got positive feedback and lots of it. I ran out of time. Damn. Good news is that I have something left for next year. ;-)
This blog post is getting long, but don't worry, I did not get to see a lot of other sessions, or at least that were not under NDA.
Friday morning Gary, Waldo and I started preparing our PRS session. Not that we were not prepared, but there is always this last fine-tuning thing. Fortunately Waldo was feeling better. Did I mention I was in his Hotel room the entire Thursday? Imagine what he was doing there...
After this Waldo did his presentation about Webservices. As always he did a great job, I specially liked his tip about wrapping a webserice in a .Net interop DLL and consume it. I did not know this and it opens many doors. The second part about integrating with the webshop was going to fast for me to understand detailed enough to talk about.
Then after lunch we had our PRS sessions. First the presentation and then the Chalk Talk. Presentation went fine I guess but the CT was great! We discussed for a full two hours how to start executing. And this is what I am really exiting about. We have created awareness and will continue doing so for the next year, but meanwhile we'll start processing all the feedback into an execution plan to make all our NAV lives easier and more fun! Keep a close eye on our website!
This basically conluded my official stay at Directions. After our presentations Gary, Waldo and I went to Hooters to celebrate. This was an amazing place to visit from a european perspective seeing kids eat at a place that uses uncommon marketing to attract guys. Weird...
Friday evening there was the party, and not that it was not a great party, it was a wrong one. The C/Siders were missing and it was difficult to talk to anyone. This made me feel nostalgic to Austin Texas where we had a bbq outside with the c/sides play at the banks of the colorado river.
Saturday it was NAV7 day. I first went to see Clausl's (Claus Lundstom) session about reporting. Gain, without revealing NDA stuff, they addresses all the issues they have now and since a lot of the improvements are done in VS I might actually be able to do some blogging about this since this has already been released.
After this session Waldo and I did some shopping for the kids at the largest Toys'R us that I've ever seen. I also stayed Sunday when I had planned to do some work for customers but it actually seemed that there were so many folks left that Sunday also was a great networking day where I had a lot of good talks with some folks and killed some time at the mall with Bardur Knudsen.
I you are still reading this, thanks for your patience and being interested in my toughts. I would love to hear your opionons.
Mark Brummel, your Directions reporter
One of the "Real life" tips I showed at NavTechDays is how to use the classic debugger smartly.
What I see people do many times is turn on the debugger with Breakpoints on Triggers
This means that the debug process wil break on each trigger it finds, meaning form & table triggers, functions and objects.
Even if you step through this process with F5, debugging a posting process like Sales wil take forever as there are hundreds of triggers that you will pass.
So what is the alternative.
The alternative is to place your own Breakpoints; this can be done in two ways
1. Via the Object Desiger
If your license allows you to edit C/AL code you can use this icon to go to the code of each object.
If you do this you'll enter the C/AL Editor that shows the code behind the application. But if you look closer there is a hidden "column" in this editor.
If you use the "Show Column" feature you'll see that this column even has a name: Breakpoint Column
If you select a line of code and hit F9 you'll see that a "Red Dot" appears in the column, meaning there is a breakpoint for the debugger.
Whenever you start the debugger now without the "Break on triggers" option, you'll see that the debugger will stop at this point, allowing you to go directly to the "suspected" piece of code.
But wait, there is more.
2. Via the debugger
You cannot just put breakpoints in the C/AL code via the object designer, you can also set them in the debugger directly, while debugging.
This allows you to set a new breakpoint somewhere down the line. This avoids the issue of stepping into all the functions and losing time.
Be Careful: This only works in the active object! You cannot step back into the previous object and add a breakpoint there.
The great feature about these breakpoints is that the debugger and code editor remember each others breakpoints. So if you place a breakpoint in the debugger, the red dot wil appear in the C/AL editor. This is done using the system table Breakpoint that is not visible in the Object Designer but is from the Report/Form/Page designer.
So remember using this smartly and save a lot of time in your debugging processes.
What does the open "red dot" mean?
Was one of the questions on NavTechDays, and I have to admin that I did not knew. But fortunately Lars Hammer of Microsoft was in the room and he knew. (And he should).
This allows you to temporarily disable a breakpoint without throwing it completely away. So you can quickly reenable it.
Another great feature about the debugger is the possibilty to roll-back a transaction that you are debugging. This is often useful when you have a scenario that requires a long time to setup and you don't want to backup and restore databases just to have the same scenario while finetuning your code.
Remember this when you need to fiddle with your code and you want to see the step-by-step results.
In Dynamics NAV you are likely to step into a loop of objects if you debug a complex process. Sometimes you hit an error somewhere in a tree and you want to see where this code was executed from. This is where you can use the Call Stack.
In this example, Codeunit 80 was called from codeunit 81 and before that from Form 42. You can double click on an object and see which line of code caused the execution of that object. This you can then use to stop the debug process, go to the object and place your breakpoint there. Remember: you cannot add breakpoints in the debugger in a tree of objects.
Sometimes you would like to see the data that your process creates without actually committing the transaction so you can roll-back and change your code. With the SQL Server option you can do that since NAV is using the ReadUncommitted isolation level. This allows users to see data in the database that is not committed yet.
NOTE: with the introduction of buffered inserts you might not see the inserted data since that is buffered to either a find command on that table or the commit of the transaction. If you do want to see the uncoommitted data and you know where to go, then put in a simple FIND statement on a copy variable of the record object.
That's al for today folks.