Having supported the various customization tools over the years, you run into common requests again and again. Something that often surprises me is that you get requests to 'customize' Dynamics GP to make it do something and as it turns out Dynamics GP already does this out of the box.
To be sure, this isn't an everyday occurrence and sometimes the requested tweak is fairly obscure in Dynamics- but not always.
I was able to come up with a couple customizations that I've been requested to do several times - either as support cases or as consulting - that the end user can do themselves in the system without a customization. I'm sure there are more - these just came readily to mind. If I think of any others, I'll amend this post to include them for future reference.
Scenario 1: I need to be able to change the menu item names in Dynamics.
If you want any menu item name changed, then you can use the Toolbar Customization window in Dynamics GP to change this. Use Layout Icon on the Navigation Pane | Toolbars | Customize to open the window.
- Once in the window, select any toolbar you like - such as the Custom* one.
- After you select the toolbar, press the Add button and select your menu item from the Add Command window that will appear.
- Once you do that and the new toolbar item has been added, select it and press the Modify Selection drop list and select Name.
- Give that item a New Name - this will be the new menu item name and will take effect immediately when you close the window.
- At this point you can delete the toolbar item if you don't want/need it. The customized name will stay in the SY07105 table and continue to be applied to the menu items either way.
There are a couple of drawbacks to this method however.
- This customization is per user and not system wide. Each user would have to do this or a SQL script used to insert the same record for each user in Dynamics.
- Once the record goes into the table via the User Interface (UI), it doesn't come back out again. There isn't a delete button that would remove it although you could use this same process to set it back to the original value. Or you would have to remove the record from the back end in SQL.
Scenario 2: I need to change the Internet Information categories in the Internet Information window from what Dynamics GP uses.
This actually is a set up issue in Dynamics GP. In Dynamics GP, we default the names as you see them in this window when you create your company. However these values can be changed by the end user using the Internet User Defined Setup window.
Open this window by choosing Microsoft Dynamics GP | Tools | Setup | Company | Company. In the Company Setup window, choose the Internet User Defined button to open the Internet User Defined Setup prompt values.
Scenario 3: I need to change the User Defined 1 prompt in the Customer Address Maintenance window to a specific value.
OK, you got me on this one. For some reason, there isn't a setup option on this and the prompt is just a static string on the window. So in order to change this you would need a customization of some sort.
Using Modifier, open up the RM_Customer_Address form or open the window and choose Modify Current Window.
Click the static text tool (the 'A' button on the toolbox) and then click on the User Defined 1 static prompt.
Change the label there to what you want it to be - perhaps "Test".
Grant access to the Modified Form in the Security window for your Dynamics version.
This approach would work fine and you can use the Customization Maintenance window to make a package file in order to import into your other machines that you want to see this changed.
There is another approach you can use however. You can use VBA to change this prompt.
Open up the Customer Address Maintenance window in Dynamics.
Add the current window to VBA.
Add the User Defined 1 field (not the prompt - the field itself) to VBA using Add Fields to Visual Basic.
Add in the following code:
Private Sub Window_AfterOpen()
UserDefined1.Caption = "Test"
Save your changes and close the VBA Editor.
That is about it. When you open the window again the prompt will now say "Test".
The advantage to this method is that you don't have to change security in order to see the change. And if you really wanted to be cool, you could also make a SQL table to store your prompt name(s). Then in the Window_AfterOpen() event, make a connection to your SQL data and query your table for the name. Then set the Caption property in your code to the value from your query.
Edit: Mariano Gomez brings up a great point about using this technique. It only works if the prompt has been linked to the field. Please see his blog article The importance of linking your fields to their prompts in Microsoft Dexterity for more details.
06-Feb-2009: Added link to Mariano Gomez's article on linking prompts.
// 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.)