Menus for Visual Studio Tools for Microsoft Dynamics GP 10.0

David MeegoGreat News for Visual Studio developers working with Microsoft Dynamics GP 10.0.

The Issue

As I worked more with the Developer Toolkit and in particular Visual Studio Tools for Microsoft Dynamics GP, I found that the main support issue being seen was that it is not possible to add menu entries into the Microsoft Dynamics GP application navigation system without creating a Dexterity dictionary. This is mentioned in the following Knowledge Base (KB) article:

You cannot insert a menu item that is always visible by using Visual Studio Tools for Microsoft Dynamics GP (KB 922871) Secure Link

While creating a Dexterity dictionary to add the appropriate menus is not that hard for a Dexterity developer, it would mean learning a new set of skills for a Visual Studio developer that doesn’t have previous dexterity experience.  It seems rather inefficient to force Visual Studio developers to work in Dexterity, when they had achieved everything else with Visual Studio, just to add some entries in the menus.

If the customization is sufficiently complex that it requires Dexterity code (maybe for procedure/function triggers, table triggers, or for alternate windows) as well as Visual Studio code, then there is no problem adding the navigation code into the existing dictionary.  However, this is not the case for many smaller Visual Studio customizations.


The Solution

The long term plan is to provide built-in support for adding to the navigation menus from Visual Studio into the next version of Microsoft Dynamics GP. 

In the meantime, I have created a generic Dexterity dictionary which has an API (Application Programming Interface) which easily allows Visual Studio Tools developers to create their own menus, sub menus and separators directly from C# or VB code. 

After discussions with the development and support teams, it was agreed that this code could be made available to developers to use with their Visual Studio based add-ins for Microsoft Dynamics GP release 10.0.  Due to several fixes and enhancements in Visual Studio Tools for GP 10.0, this menu solution will not be available for GP 9.0. The plan for GP 11.0 onwards is that this functionality will be built into Visual Studio Tools.

[Edit] The menu functionality did not make it into GP 2010 (v11.0) and so an updated version of Menus for Visual Studio Tools will be released for v10.0 and v11.0 soon. Details will be posted on the blog.

We are still working on getting everything ready for release, but it will be made available soon.



For downloads, please see the Menus for Visual Studio Tools Portal Page:

Menus for Visual Studio Tools Portal


Support Information

Technical support for Menus for Visual Studio Tools for Microsoft Dynamics GP can be obtained through the standard Dynamics GP Support channels.  Information on contacting support can be found in the support area of the MSDN Dynamics GP Developer Center.

For customers or partners on a Dynamics specific support plan, please use the following link from CustomerSource or PartnerSource to log a “Visual Studio Tools-Developer Toolkit” case.


More Information

For more information, please see the Menus for Visual Studio Tools Portal Page:

Menus for Visual Studio Tools Portal


Please add your feedback as comments, will this tool be useful to you?


26-Aug-2008: We are looking for beta testers for this utility, if you are interested, please use the email link at the top of the page.

28-Aug-2008: We have enough beta testers for now. You will need to wait a little bit for the actual release now.

25-Sep-2008: Added link to release announcement blog post.

13-Oct-2008: Created post on Using Menus for Visual Studio Tools from VBA.

24-Jun-2009: Added Link to KB Article 922871.

23-Apr-2010: Updated status menu support for Microsoft Dynamics GP 2010 (v11.0).

03-Nov-2010: Added links to related articles.

16-May-2013: Changed More Information Link to go to Menus for Visual Studio Tools Portal Page.

Comments (25)

  1. jivtesh says:

    I had this problem a couple of months back.

    We had an application that integrated with GP, and had multiple menu items in GP.

    When planning for an upgrade we decided it would be more efficient to migrate the code to C#. Everything worked out fine – except the menu’s. We had to write dexterity code and create a chunk file, and all it did was add a menu option that launched the application. Definitely seemed in-efficient, but that was the only way to go. To make things simpler – we decided to move all menu items but the app launcher in .Net application.

  2. maruf_d says:

    Awesome! I have seen people struggling with it. This would be very helpful. Look forward to the next post 🙂

  3. cftung says:

    Great to heard that this available tools. By the way, GP menu security able to control the menu access for those menu created in VS tools?

  4. David Musgrave says:

    Hi Richard.

    Great question.

    When you create a menu from VS Tools you have the option to assign a security form to it. The new menu will now have the same security access as that form.

    For example: Assigning the RM_Customer_Maintenance form to a menu will mean that it can only be used if the current user has access to the Customer Maintenance form itself.

    Security can be asign at the time the menu is registered, or afterwards if desired.


  5. lfdiii says:

    100% needed here.  

    This will be great to have.  Also, you would probably get more of a response if anon comments weren’t disabled.

  6. Russ says:

    This tool would be very helpful.

  7. Some great news for Microsoft Visual Studio developers who use Visual Studio Tools to integrate with

  8. Sajeesh says:

    Dear David,

    This new innovation is really marvelous. I would like to take this opportunity to express my happiness and congratulation to you. The one of main constraints have been removed because of this new feature.

    I hope we will get the LineFill event as well, soon in DTK 🙂

    Kind Regards,


  9. David Musgrave says:

    Hi Sajeesh

    The LineFill event was removed from v9.0 as it would not have worked.

    At the time when Dexterity executes the LineFill event, the contents of the scrolling window (grid) are not yet populated.  In Dexterity we have to access the data from the table buffer.  As v9.0 of Visual Studio Tools did not have table buffer support, the LineFill event would not have been of any use.  Because of this it was removed from the v9.0 release.

    When table buffer support was added into v10.0 of Visual Studio Tools, the LineFill event was overlooked and not added back.  Development are aware of this and hopefully will we see it added back soon.


  10. I have been involved in the Great Plains world now since 1994. During that time I have become known for

  11. Rayzback says:

    Awsome! Being one who does not have time to dive into Dexterity. In just a couple of hours I was able to take all of the scattered menu handlers for our custom .net apps and turn them into a professional and easy to find menu items. Thank You!

  12. Triven says:

    Please let me know if we can have this in GP 9.0 – menus

  13. David Musgrave says:

    Hi Triven

    The Menus for Visual Studio Tools has only been released for v10.0.  For v9.0 you will still need to create your own Dexterity dictionary. For v11.0, the plan is to have a different method built into Visual Studio Tools.


  14. Kevin Jones says:


    I am running into a problem when accessing VS Tools windows using the new Menus for VS Tools. The problem is this: if the VS Tools window is open when I change companies the window does not automatically close like all the other windows in GP do. Also if I close GP with the VS Tools window open it appears that the VS Tools window hangs and is the very last thing to close (after GP is already closed). Are there any solutions to this issue? When using VS Tools windows the old way (attached to another GP window) it is easy to close it based on if the GP window has closed.


  15. Patrick Roth [MSFT] says:


    You need to take care of your own windows – just the same as if they were "attached" to a form.

    In this case you need to trigger on a window that is open and closes on the switch company.  Use the Toolbar.MainMenu1 window for this.

  16. Ed Colby says:

    The post says "The plan for GP 11.0 onwards is that this functionality will be built into Visual Studio Tools."

    I’ve read the VS Tools SDK for GP 11 beta and tested it out, but I have not seen this functionality built into GP 11.  Has it been included?  If so, how is it accessed?

  17. Patrick Roth [MSFT] says:


    The table buffer & procedure/function events took a lot more to get working than was anticipated and so the ‘hooks’ for menus in vstools wasn’t even started and thus not available.

    The new plan is that David M will update the Menus application to support v11.0.  This should be fairly trivial to do – just update the references to the 11.0 assemblies and change the version check to 11.0 and done.

    This should be completed before GP 2010 ships (easily).


    dev suppport

  18. David Musgrave says:

    Hi Ed

    There is a bit more too the upgrade to v11.0 as we are extending the functionality for v10.0 first and then doing the upgrade to v11.0.  While the upgrade to v11.0 is fairly quick from a Dexterity and Visual Studio Tools perspective. I am still working on the updated functionality.

    I will update the blog once I have news.


  19. Kevin Vogler says:


    I’m trying to add an item to the Transaction – Manufacturing – Forcasting menu. Is this possible? If so, can you supply the correct references or tell me how I might discover them?


    Kevin Vogler

  20. David Musgrave says:

    Hi Kevin

    Use the KB Article below to create a combined dictionary for manufacturing, then look for the Command forms, should have "Command" in the name, usually starting with it.  You can then open the form definition and look at the commands tab.  This will allow you to identify the name of the form and command.

    How to combine the Dynamics.dic core dictionary and an extracted dictionary by using Dexterity Utilities in Microsoft Dynamics GP (KB 930350);en-us;930350

    Good luck.


  21. Kevin Vogler says:

    Thanks Dave. Just what I was looking for.


  22. Vinay says:

    Hi David,

    Is there any way to add the additional menus through VST ? If so please let me know the process of doing it.



  23. David Musgrave says:

    Hi Vinay

    Menus for Visual Studio Tools is designed to allow a Visual Studio Tools developer to integrated with the commands and menus of the Microsoft Dynamics GP application level menus.

    The Additional menu is used when additional menus are created using Dexterity Form triggers or the equivalent AddMenuHandler() method from Visual Studio.

    I suggest you look at the Chapter 15: Forms of the Visual Studio Tools for Microsoft Dynamics GP Programmers Guide (VSTDGPProgrammersGuide.pdf) for more information on the AddMenuHandler() method.