All around NAV dev and test
More than six months now that NAV 2013 was sent out to the world. Over six months of gettting ready to program and sell this new gem in the NAV cosmos. Or even longer for those at MS and those that particapted in the TAP program. And still many of us even did not get in the right position for it, trying to find time to somehow get in the slip stream of this all.
For this very reason I was hired by a Dutch partner to conduct a What's New in NAV 2013 session for their developers. And PRL (Product Readiness Library) could have helped me a lot in this, but I was stupid not to let me be helped. Notwithstanding the very clear and enthusing blog post of waldo and the talk I had with MS PM Kurt Juvyns.
OK, in the end I managed quite well knowing my way around NAV resources for a long time already. Next to having been informed as MVP at various stages on the road to NAV 2013 RTM. But I could have really profited from PRL indeed as I experience now, allowing myself today to have a closer look at the PRL page on PartnerSource.
Don't be stupid as me to wait too long: go out there and inform yourself, be it only to experience this worthwhile library.
BTW: if you want a one-view listing of all material being presented on this page use the MegaMap.
Prior to NAV 5.0 end-user companies could add their own notes and instructions to any help topic by means of the Company Notes feature. I recall I was happily using it when writing the Help for the Dutch localization as part of the 4.0 project back in 2004. If my memory doesn't fail there were some security issues around that led to the deprecation of it in NAV 5.0.
Now with NAV 2013 there finally is a successor to Company Notes: OneNote. Running NAV 2013 you probably have noticed the grayed out OneNote icon and like many didn't pay much more attention to it after that. But I think it's a cute successor to company notes or at least - but I actually should say more than - worthwhile to consider it the successor. Of course it does not integrate so nicely with the standard help system, but if gives you various other options that come with OneNote like DTP features and much more.
You can document your notes and instructions at page or at record level and store the OneNote notebook locally or on a share. You can associate separate notebooks with each (role center) profile thus differentiating instructions for the same page.
Details on how to enable OneNote has been described in various other post listed below, so no need for me to redo that job.
Each time I am involved in some way with a Dynamics NAV partner with respect to Help for their add-on, inevitably the issue of wanting to have their help on-line pops up. There are many things to be said about this which I am not going to address in this post, but who knows later. Here I am picking out just one item:
How to activate (real) on-line help through the F1 key without too much fuss for both partner and end-user?
The F1 help, called context-sensitive help, is build into the NAV platform (client and application server). Once the user presses F1 the platform determines the context, i.e. the object help is wanted for, and links it through the master help project to the right help topic in the right help project. Details of this mechanism can be exposed using ShowHelpID as discussed in my previous post. Crucial to the connection between platform and help system is the .hh file as I explained in another post regarding help.
For each object for which F1 help is available, the .hh file holds one entry with the following format:
The format above is using the example for field 7 in table 123456733 in help project addin_a.
By manipulating the value of <Topic> element we can let the help system act differently. For example we could change it to:
Pressing F1, while on field T_123456733_7, will now show the topic file T_123456733_207.htm (assuming it exists in the addin_a help project). In the same manner you could manipulate the <Subordinate> element so that it refers to another help project.
"Well, great, Luc," you might utter. "Where does this bring me in my want to activate real on-line help?"
Wouldn't it be great to feed the <Topic> element with an URL?
"Sure, and is this the holy grail for our issue?"
You really want to know? Sure?
... No, unfortunately. The system does not know what to do with the URL.
"So why the fuss?"
Well, this would have been the simplest answer to the question above. Therefor I have asked MS to consider to enhance the help system so that it can execute a URL provided in a <Topic> element.
If you also consider this a good enhancement join me and give your vote on ms connect. GO AND VOTE!
Thanx in advance.
Now that MS is enforcing CfMD on partners more and more, we all are faced with the requirement to build a help system, that goes with your add-on, more and more. Hence many of you have been working on creating a HTML help project (or even multiple) as described and supported by the Microsoft Dynamics NAV Help Toolkit.
Roughly we could divide a HTML help project into two parts:
One part that's mostly being triggered by the pressing F1 in the application and the other part that's referenced through hyperlinks in help topics, the table of contents, the index or search.
Once you have build your help project and deployed it, the ultimate questions will be: Does it work? Will the expected topic be triggered once you select one of your add-on fields and press F1?
Hopefully it does and that will be great. But what do you do when is does not show up? How do you find what's going wrong? For sure ShowHelpID will be very useful in your search. ShowHelpID? Yep, ShowHelpID. It has been there for ages already and can be applied to both classic and windows clients. All you need to do is create a shortcut of your NAV client and add a startup parameter.
And what does this do?
When you run the client by means of the shortcut, the client will give information on what HTML topic it finds for the field that pressed F1 for.
Let's open the Customer Card, select Address field and press F1. This it what will be shown due to the ShowHelpID:
I reckon you smart enough to read what is exposed here. If you want get more details I would like to refer to the Help Debug Window topic in the help of the Microsoft Dynamics NAV Help Toolkit.
If we do the same in the classic client we will get:
OK! Click OK:
Somewhat different from what the windows client shows.
Note that the windows client only shows the end result, i.e. the help topic found that relates to the Address field, i.e. T_18_5.htm. Whereas the classic client shows also what it first tries to find, being the topic that relates to F_21_6, i.e. the control 6 on form 21, being the control that is bounded to the Address field. But as topic F_21_6.htm is not available in the help (first dialog), the help mechanism will try to find the help topic for the field itself, i.e. T_18_5.htm (second dialog).
Not a very creative title, right? Indeed I am not the first one to blog about this. And surely I am not going to redo the great job my fellow MVP Daniel Rimmelzwaam has done month ago. If you haven't read his post yet, you have to go out and read it. Even more: watch his video embedded in the same post. Very instructive on the various aspects of the awesome debugger we have now for NAV. If you need reasons to get moving to NAV 2013 this one should be added to your list.
And BTW: also have a look at Marq's post.
Is that what I wanted to tell you, folks? Yes ... and no. To be honest: I just wanted to share the relief I felt when I started using this debugger. The shear fact that this debugger lets me break into any NAV process from different angles. For one perspective: have a look at Daniel's video on using the break button. Or for another perspective: have a look at the following.
In the pre NAV 2013 era a typical nuisance would be to debug a long running process. After you have started the process, you realize you have forgotten to set one or more breakpoints. But once the process has started, you have no way to get into the debugger. Now with NAV 2013, as said, you can simply push the break button, but you can also put breakpoints into your C/SIDE object on the fly.
Let's fake a long running process with the following codeunit (56789):
Window.OPEN('Indicator\@1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@');WHILE i < 10000 DO BEGIN Window.UPDATE(1,ROUND(i,1)); i := i + 1; IF i = 8000 THEN ERROR('This is an error'); SLEEP(5);END
Let's run it:
Depending on the hardware you are running it on this takes some time (and if it's to fast rewrite set SLEEP to 10 or more).
OK, not to fast: don't forget to turn on the debugger (in the Development Environment choose Tools > Debugger > Debug Session to open the Session List, select your Windows Client Sessions and press the Debug button)
Now while the indicator progresses: