Tuesday, 26 May 2009
The Amazing World of Blogging
I guess this just emphasises that you never know who is reading what you write. Thank you to that annonymous commenter from Poland that decided to share their thoughts on that post. It really made my day.
The blog post was http://gaspodethewonderdog.blogspot.com/2007/04/goodnight-kiwi.html
Sunday, 24 May 2009
Dynamics NAV 2009 SP1 Preview
I love the Microsoft Dynamics NAV 2009 RoleTailored client (RTC) but there are those that are less enamoured with it. Some experienced NAV consultants, for instance, find it difficult to use because some of the most useful features of the old system were not implemented in the RTC. Thankfully the first NAV 2009 service pack (SP1) is on the horizon and, amongst other things, this service pack will re-introduce some of the functionality that we have so far struggled without.
The recently released Statement of Direction contains details of what to expect in this service pack.
"Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) builds on all the innovations that were introduced with Microsoft Dynamics NAV 2009. With Microsoft Dynamics NAV 2009 SP1 we are continuing to improve productivity for customers and partners. We want to ensure an easier upgrade to the new RoleTailored user experience for Microsoft Dynamics NAV customers working on previous versions of Microsoft Dynamics NAV as well as adding the innovative Client Extensibility for both existing and new customers."
As an MVP I was fortunate enough to get my hands on the first community technology preview (CTP1) of SP1 and I like what I've seen. The statement of direction promises a release date of Q3 2009. If the guys at Microsoft are consistent with their previous release approach, we should be seeing a public beta made available to all partners in the next month or so. That would be great news; there are many partners that want to see what is coming as soon as possible and making beta and CTP releases available to partners is a smart move that can only help to ensure a higher quality in the final release.
The RoleTailored client has been with us for a while now and if I had to pick a “killer feature”, it would have to be the ability to personalise the application. The personalisation features in NAV 2009 RTC are pretty stunning and allow end users an unprecedented ability to fiddle: hiding fields, showing fields, promoting actions, adding reports, adding charts, and many more possibilities. You could spend more time making the system look "just right", rather than getting on with the more boring aspects of using the system (like doing your work). But what about SP1, are there any killer features in this release? Hell yes!
Page Search
The RoleTailored client allows the features that are needed for a specific role to be made readily available to the end user, but what about those features that are used less frequently? For those, you need to enter the "Departments Place": a labyrinth of options, links, groups and submenus. The first page of the Departments Place should have the text " Abandon hope all ye who enter here" in fiery letters across the top of the screen. I am convinced that there is a clever algorithm that will move options to a new location if you are finding them too easily. For me, SP1 is going to make the Departments Place a place I never go to, because I will be able to search for the pages I want to run and let the system do the work for me.
In January I started to work on a menu search feature that I have long desired in NAV and I made a couple of blog posts on my progress. Then I heard that this feature was to be included in SP1 and so I decided to wait. The new feature is superb. Let's say I want to find the Business Units
I can type into the search pages box at the top right and as I type, options are displayed in a drop down results list. As you can see here, the Business Units is found and I can either click on the left to open the list place, or click on the right to open the departments page that contains the option. This feature is worth SP1 on its own. In fact, I think this feature is reason enough to upgrade to NAV 2009.
Saved Views
Next on my list of goodies, is this save view feature. The Role Centre is the home page for NAV 2009 users in the RTC and in the home pane on the left, you can see filtered views of entities. This include such things as Sales Orders that open, ready to ship, delayed, and so on. Now the end users can create their own filtered lists by simply clicking the Sorting and Filtering activity button and selecting the “Save View As” option. Nice!
The result is a new filtered list in the navigation pane. Previously it was only possible to create these filtered views through programming.
Other Stuff
There are many other things promised, not all of which were available in CTP1. You can read the statement of direction if you want to know all of the new features and there are lots, but you will be pleased to know that we can expect those missing data entry features such as in-cell calculator, copy previous value, copy cell value, filter on current field, next record and previous record on task pages. In addition we are promised improved Matrix Pages and the good old Zoom feature is back.
I've always been one of those people that looks forward to what’s coming next and as a result I sometimes forget how good the NAV 2009 release is. Now I'm going to go back to the statement of direction and drool over the promised features in NAV "7".
Wednesday, 13 May 2009
Sunday, 3 May 2009
Differences between RTC and Classic Client
Probably the biggest headache when developing for Microsoft Dynamics NAV 2009 is when you find different behaviour between the same code executing in different clients. I have experienced this twice so far and both times took a little sorting out.
The first issue was when I tried to import a FOB file that referenced a DLL. The DLL had not been registered on the machine on which I made the import and, prior to NAV 2009, this was not a problem. If you did not have a particular DLL, you would not receive an error until you tried to access the DLL at run time or tried to recompile the object. The FOB files are shipped pre-compiled so there was no need to have the DLL registered on machine just to be able to import the objects.
What I found in NAV 2009 was that although the object imported without errors, an additional message reported that there were problems with one of the objects (can't remember the exact message) but basically what was happening was that once the objects had been imported, the system was attempting to create the C# code to be used by the Service Tier. Since the DLL being referenced could not be found, the C# code did not get created. As a result, when a part of the system tried to access some code in the Codeunit, a run time error occurred – but only on the RoleTailored client (since it relies upon the C# version of the code) the Classic client worked fine. As a solution, we made a point of ensuring that any DLLs required by the system were registered on a computer that was to be used for importing FOBs.
The second problem I came across was as a result of a slight difference in the handling of Option type fields. In the Classic client, if you were to delete the contents of an option field on a form (thus making it an empty string), the system would insert the first option value. Often the first option value is a single space. If you were to do the same on the RoleTailored client, you would get an error message telling you that blank is not a valid option and you would be reminded what the valid options were. This can be quite confusing and you need to remember to type a single space in order to "blank" the field. I've learnt to live with this, but at the end of the week I discovered that this problem can be quite confusing when you hit it from code. One of the programming samples in our book that we provided for download was the ability to use the Data Migration tool to import Dimensions as well data. This has proved quite useful, but I found that when I was extending the tool to work with Document Dimensions (so I could import documents and not just master data) was getting a strange error that I did not get in the classic client. The problem was that I had some code that was trying to pull an option value from an XML document and it was getting an empty string, since the node could not be found. You can probably guess where this is going. The evaluation of the empty string resulted in perfect execution in the classic client but a run time error in the RoleTailored client telling me that the option was not valid. Since this problem only occurred on the RoleTailored client, I was forced to try out the debugging on the service tier (I followed the instruction Vjeko wrote in our book) and it helped me to track down exactly what was going on. It was then fairly straight forward to only evaluate the field value if the text from the XML node actually contained a value. I quite enjoyed debugging in Visual Studio. It was nice to have a debugger that allowed me to step into, over and out of code, as well as being reliable and predictable.