Ever used ShowHelpID? (or: How-to: Enable Help Debug Mode)
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:
- Object Reference Help (also called context-sensitive or F1 help)
- Non-Object Reference Help
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).
- Typically the classic client shows NAV searches for context-sensitive Help according to a fallback scheme. It's a pity that the windows client is not showing us this info.
BTW: for Pages and report this fallback scheme looks like this (taken from the help of the Help Toolkit):
- Did you notice that the windows client debug message says Language=nl-NL? Indeed I have been running NAV NL, but using ENU as application language and indeed the ENU help is shown. Strange that the dialog does not say en-US.