Caps Lock Reminder – For Microsoft Dynamics GP 2013

I had developed a small customisation module which would alert users while logging on to Dynamics GP with CapsLock key on. You can read more about it here: GP Login Form – Caps Lock Reminder Update.

That customisation was developed using Modifier with VBA. But with Dynamics GP 2013, much emphasis has been given to the new Web Client. Which means, all our VBA code logic won’t be supported by web client.

That said, I have now converted my code from VBA to VS Tools (using C#.Net as programming language). Those who are interested can download it FOR FREE from following link:


Instructions to use:

  1. Copy this DLL file and paste it on to GP AddIns folder (can be located inside GP 2013 application folder).
  2. Ask users to log out and log on back.
  3. If you do not need this tool anymore, just remove this DLL from AddIns folder, after all users log out.
  4. This can be used safely in production environment. This tool doesn’t interfere in any of your day-to-day transactional activities. The scope of this is restricted only to GP login form.

Your feedback is always welcome.



Adding Customer Item User-defined Fields to SOP Invoice – Mariano

Another excellent post up there on Mariano’s blog, which explains how to add customer item user-defined fields to SOP invoice.

The customization is done using Support Debugging Tool (SDT) to achieve this.

There is an interesting point which Mariano mentions there, which is not about the topic itself, but about how clients have started demanding things from us, consultants, which shows how much clients are aware nowadays.

Modifier with VBA would have been the BEST and easy option for any developer or consultant for this functionality. But looks like the client was strictly against it because *it’s not supported on Microsoft Dynamics GP 2013 Web Client*. 🙂

But that demand indeed had led to another superb piece of customization using SDT.


"Unknown error 0 – 800AC351 occurred saving the project file" – Error & Solution

My last post discussed about an error message faced by users once GP2010 R2 upgrade was over. This post gives you a solution for that.

The following error message was faced by users when they log off from GP:

Initially I thought it was occurring only on “sa” login. But couple of users today reported the same error when they logged off from GP.

When I analyzed this further, I realized that users who have access to Field Service processes in GP alone were getting this error message. Those who do not have access never reported this issue at all.

That made me to think about next step in solving this. No one has reported this issue yet, thus leaving me in the lurch.

I finally found a solution for this menace.


1. I logged off all users from GP environment, as it is Terminal Server environment for us.
2. Launched GP and opened Visual Basic editor.
3. Opened Field Service VBA project.
4. Did some harmless edits (like adding some comments, etc.).
5. Opened the “References” wizard.
6. Unselected all references and selected it back.
7. Compiled the entire project to check whether I am getting any error message.
8. Saved VBA project.
9. Logged off from GP.

Surprisingly (but expectedly) the error message never appeared again.

Those who are looking for some solution for this menace, here it is for you.


Unknown error 0 – 800AC351 occurred saving the project file – Error Message

Has anyone faced this error message?

I recently found this error message after upgrading to GP2010 R2, though it doesn’t have any impact towards other users’ sessions and even the customizations.

This happens only for an “sa” login. Very strange error message.

UPDATE 1: This is happening for all users who have access to Field Service module. If you see the above message, the error is thrown by Field Service VBA project.

UPDATE 2: Issue is resolved. Please read my next post to know better about this message.


Solution to "File not found: VBA6.DLL" Error Message

The File Not Found: VBA6.DLL issue which I had explained in my previous post has got a solution.

Thanks to Japheth Nolt, who pointed me to this Partner Forum post.

The following are the steps to fix this issue, taken directly from Dynamics GP Partner Forum Post (Link To the Original Post: File Not Found: VBA6.dll):

Important This article contains information about how to modify the registry. Make sure to back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base: 

1. Export all customizations to a .package file.

2. Close Microsoft Dynamics GP.

3. Make a backup of the system registry.

4. Change the following key in the system registry:


to have the path of this: C:\Program Files\Common Files\microsoft shared\VBA\VBA6\VBE6.dll

Note, if on a Windows 2008 Server R2 install the key was this: HKEY_CLASSES_ROOT\TypeLib\{000204EF-0000-0000-C000-000000000046}\4.1\9\win32

5. Delete all VBA files with a file size of 4KB.

6. Rename all VBA files with a file size greater than 4KB.

7. Start GP.

8. Open VBA editor.

9. Check the VBA reference to ensure the path is to the C:\Program Files\Common Files\microsoft shared\VBA\VBA6\VBE6.dll file.

10. Add a window and field to VBA and test the message box code.

11. Verify the message box works.

12. Import all customizations.

13. Verify more than one customization works.

Note, this has only been tested on an Office 32-bit installation. If you have an Office 64-bit installation, you will need to uninstall it and then install the 32-bit version. This will not affect Outlook user profiles.

What I did is the following:

1. I removed all the VBA files from GP Folder in my 32 Bit machine.

2. I performed the steps listed above from #1 to #4 (modifying the registry entry).

3. I launched GP and opened the VBA Editor, to make sure that the Visual Basic for Applications Reference is pointing to the path C:\Program Files\Common Files\microsoft shared\VBA\VBA6\VBE6.DLL.

4. Closed GP. Relaunched it.

5. Imported the VBA Customizations that were exported from 64 Bit machine.

6. My customizations started working.

IMPORTANT NOTE: You must re-reference any 3rd Party plugin references after importing the VBA Packages, in case these 3rd Party plugins sit in Program Files (x86) folder in 64 Bit machine.

Hope this is helpful for people who face this issue.


Currency Values Returned By VBA To A Report – David

Such a weird issue, but since it’s said to be known, we can’t do much about it. But David gives us an alternate option to tackle this.

Read it here: Currency values returned by VBA to a report are multiplied by 10 or 100.

Must read for Developers.


Display Extender Data for GL Trx Lines on GL Inquiry – David

This post is awesome. And quite a practical requirement nowadays. David takes us thru’ the steps involved in writing a piece of code that does wonders for us.

Read it here: Display Extender Data for GL Trx Lines on GL Inquiry


Changing Dictionary Context when using Passthrough Sanscript – David

David has started a new series which will explain Passthrough Sanscript Coding, from simple to complex scenarios.

First post here: Changing Dictionary Context when using Passthrough Dexterity sanScript Part 1

Watch out for some awesome posts from now on.


VBA – Adding Extender Windows to GL Transaction Entry Lines : David Musgrave

This is another code wonder from David Musgrave.

A Hybrid approach (VBA & Dex) which solved a GP – Extender issue. Read it here: VBA – Adding Extender Windows to GL Transaction Entry Lines.

A Must Read for GP Developers.


GP Login Form – Caps Lock Reminder – UPDATE

This post is an update to my previous article, CapsLock Reminder for GP Login.

In my previous article, I had shared a package which would remind you of Caps Lock being switched on.

This warning will be shown as soon as you either launch GP or try to change the User after your first login.

I thought I would tweak it so that it would show this warning when you enter Password Field. And that makes more sense than showing it right after opening the GP Login form.

So please find that updated package here: CapsLockReminder-Update.package.