This is a reposting of an article Patrick Roth originally wrote on my Developing for Dynamics GP blog.
One of the issues ISV’s have when integrating with the Dynamics GP menu system is to determine the name of a command list and command form to use.
While an experienced Dexterity developer would use the Dynamics GP Integration Guide to find the name of the command on a Dynamics GP menu, there isn’t documentation for any dictionary outside of the Dynamics.dic. If you were a .NET developer trying to write a .NET GP addin, you might not even be aware that documentation exists at all. In either case, you might resort to logging a support incident, a question to the partner forums, or lastly post to a newsgroups and would eventually get your answer.
While I was talking with my PSTL dev guys I asked if they could do me a favor and update another utility in the PSTL application. Great guys that they are, they said “no problem”. I gave them my file, we edited the window a tish, and in no time we had it done.
As I noted, the window that was modified has existed in PSTL since 10.0 and came into GP 2010 unchanged. The window is the free System Tool – Menu Inquiry Utility.
The window actually was created by development back in 9.0 to test issues (I assume) with the brand new commands that the menu system would be based on. It was included with the Dexterity samples in 10.0 in either RTM or SP1 – I don’t recall which – for developer to use with their own menu work.
While this window did a very good job of showing you everything about a selected command, one key piece was missing that would be really useful for menu integration. That key piece was the name of the command itself. Nope, Dexterity didn’t have this. You could get everything about a command except the name itself. 😦
Happily with Dexterity 10.0 SP2, a command was added to Dexterity that would allow this: Resource_GetSubResourceName() and the sample form was modified to now use this function and add this feature.
But as the PSTL guys didn’t know about this update to Dexterity and the sample (since they don’t do this as their “day” job like I do), PSTL wasn’t updated and went into GP 2010 without this functionality.
So what does this mean for developers exactly?
It means that you will easily be able to get all the information required (product, command, command form) for any command in Dynamics GP for any product.
Let’s see how it works.
The window opens from the main PSTL window and immediately populates itself.
The only change to this window is the Technical Name field at the bottom of the window. This field is the name of the command itself. That combined with the Parent Form from the top will give you the full name of the command. In the Dexterity syntax, the selected item is- command CL_Manufacturing_Routing_Cards of form Command_MFG.
From a C# user adding his menu item using Menus for Visual Studio Tools, the code would be the same as it was previously. However now you can easily find the correct name of the command list you wish to integrate with by selecting it in the treeview control.
C# Code Example
ParentTag = MenusForVisualStudioTools.Functions.GetTagByName.Invoke(346, "Command_MFG", "CL_Manufacturing_Routing_Cards");
This window also has other neat features such as showing ALL of the menu items including hidden ones marked with H: as well as all of the command properties that go with them. I’ve used this window a few other times for various purposes but mostly for the same reason you will – to get the name of the command list that I want to integrate to.
Hope this helps,
// Copyright © Microsoft Corporation. All Rights Reserved.
// This code released under the terms of the
// Microsoft Public License (MS-PL, http://opensource.org/licenses/ms-pl.html.)
This article was originally posted on the Developing for Dynamics GP Blog and has been reposted on http://www.winthropdc.com/blog.