Error 800AC351 While Saving Microsoft Dynamics GP

Microsoft Dynamics GPI was working onsite with a client during an upgrade of Microsoft Dynamics GP from version 10 to 2013 recently, and after doing some work on a client we started receiving an error when trying to log out..

The error we received was the following:

Microsoft Dynamics GP - Unknown error 0 - 800AC351 occurred saving the project fileMicrosoft Dynamics GP – Unknown error 0 – 800AC351 occurred saving the project file

After a little testing to see if we could easily determine the problem, I did a quick online search and came up with this post from Vaidy Mohan which was the same error, but for a different VBA project.

The steps I tried and found to be successful were slightly shorter and easier than those Vaidy needed:

  1. Launch GP and open the Visual Basic Editor
  2. Opened modified report in the Microsoft Dynamics GP VBA project
  3. Added and removed a space from the end of one line
  4. Compiled the entire project to check for errors
  5. Save VBA project
  6. Log off from GP

To verify the problem was resolved we closed and reopened Dynamics GP and didn’t see the error when closing it again.

Problem Adding Fields To VBA in Microsoft Dynamics GP 2013 R2

Microsoft Dynamics GPI had a colleague (actually the First Minion, Erebus) using Modifier with VBA to create a customisation of the Account Maintenance window (Financial area page >> Cards >> Account) in Dynamics GP 2013 R2 (for a client who does not and will not be using the web client). This customisation required a small number of fields and the save button to be added to VBA.

When he was adding the fields everything was fine, but as soon as he tried to add the save button the cursor changed to a standard one and did not allow the save button to be added. Microsoft Dynamics GP 2013 R2 saw the introduction of the action pane (or ribbon bar as I keep on calling it):

Account Maintenance action pane

Continue reading

File Not Found: VBA6.DLL

While VBA is falling out of favour with Microsoft Dynamics GP (by dint of not being supported in the web client) it is still useful for those clients who do not use, and have no intention of using, the web client.

One such client was recently installing some new XenAPp servers using Windows Server 2012; when they tried to open a window with a VBA customisation they received the following error:

File Not Found: VBA6.DLLFile Not Found: VBA6.DLL

Fortunately, Beth Gardner posted the answer to the Developing for Dynamics GP blog.

Adding the Vendor’s Address To The Check Remittance

In Microsoft Dynamics GP 2010, Microsoft changed the underlying tables used by the Check Remittance; I believe this was for purposes of efficiency. However, the downside is that the table, pmRemittanceTemp, used to replace PM_Payment_WORK did not contain the vendor’s address or a link to a table which did.

In the past I have tended to use VBA to add the vendor’s address to the Check Remittance because it was quick and easy to do and I didn’t revisit this approach until Microsoft Dynamics GP 2013 was released. And the reason I revisited, was because of the new Web Client which does not support VBA customisations.

As always, I figured I might as well do a blog post about this and had it scheduled in to write when Richard Wheeler asked the question on the Community Forum. So, here is the step-by-step guide to adding the vendor address back onto the Check Remittance modified report.

Continue reading

VBA Compile Error – Expected: expression

I realise that the use of VBA in modifications and customisations is something that needs to be carefully considered with Microsoft Dynamics GP 2013 including a Silverlight based Web Client which cannot use VBA. I had a requirement from a client for a modification to the Debtor Enquiry (Customer Inquiry to the Americans reading) to include the sum of the displayed transactions on the window and as this was a small client with GP installed locally on each PC there is no requirement for the web client, I felt able to perform this change using Modifier using some VBA.

I added the required fields to the VBA project but encountered an error message when writing the VBA code to concatenate the fields into the SQL statement I was going to use to get the data;

Microsoft Visual Basic: Compile error: Expected: expressionMicrosoft Visual Basic: Compile error: Expected: expression

Continue reading

Customisation Import – Component Write Exception

While importing a customised Form with VBA I encountered a problem and received a Component write exception;

Component Write ExceptionComponent Write Exception

The form itself had imported but the VBA element had not.

Not having seen this error before I hit up Bing and soon found a blog post from Dex Master David Musgrave where he discusses this exact issue on GP9 (I was loading a customisation from GP9 to GP 2010 to upgrade).

The answer was not quite what I wanted. I was hoping for something nice and simple, but instead I needed to export all the customisations, delete the forms.dic, reports.dic and dynamics.vba files and then reimport all of the customisations.

After I did this the import worked fine.

Review of Developing Microsoft Dynamics GP Business Applications – Part 1

At the end of December, Developing Microsoft Dynamics GP Business Applications, written by Leslie Vail and published by Packt Publishing was released.

Developing Microsoft Dynamics GP Business Applications by Leslie Vail

I got a copy of the book in order to do a review and have decided to break the review down into multiple parts. The reason for this is that the book includes some practical examples which I have decided to do and then include the results of this in the review; after all if it is a book on developing how can you accurately review the book if you don’t use what you learn to build something?

The book is aimed at developers new to working with Microsoft Dynamics GP, so bear in mind that I am not a developer when reading my reviews. Quick synopsis of my background: I started my career as a trainee developer and moved through a variety of roles such as developer and support analyst before moving to my current position as consultant and project manager.

I oversee development teams working on additions or amendments to Microsoft Dynamics GP as well as personally undertaking some modifications using Report Writer or Modifier with VBA. So despite not being a developer, I am used to working with them and did, once upon a time, be one myself.

The first chapter of the book covers the Microsoft Dynamics GP Architecture from a high level perspective.

It covers the history of the GP interface from it’s origins with Great Plains Software, an overview of Dexterity and the development environment. There is a detailed explanation of the launch file (Dynamics.set), which included a couple of points of which I wasn’t aware, and the configuration/preferences file (Dex.ini).

The explanation of the Dex.ini file included the ExportOneLineBody switch which I didn’t know about, but for which I have an immediate use.

Leslie then goes on to explain about the structure of the tables in the SQL Database which always strikes newcomers as arcane and overly complex. Leslie explains this well with plenty of detail on both the structure, including both the physical and technical names, and how transactions move between tables as their state changes.

Chapter 1 wraps up with a detailed explanation of the UI covering how forms are constructed, how the scrolling windows work and the common buttons used on forms, scrolling windows and individual buttons.

The second chapter of the book focuses on the fundamentals of integrating applications with Microsoft Dynamics GP.

Continue reading

Microsoft Dynamics GP SmartList Default Visible To Company

In July, as part of his weekly MS Connect suggestion series, Mark Polino raised the issue of SmartList Favourites and the default Visible To which is set to System.

Mark’s suggestion was to have the default changed to User which would leave a generally tidier list. To be honest I’d rather have a setting which allowed the default to be chosen by each client. The reason for this is we’re currently in the middle of an upgrade project where a few Microsoft Dynamics GP systems will be merged into one and it would be good to have the default Visib le to set to Company.

Following on from my recent post on a fixed width SmartList left pane I decided to have a fiddle and see if I could force the default to something else. And it turns out with some simple VBA that you can do exactly that;

SmartList

Continue reading

VBA Customisation To Microsoft Dynamics GP 2013 Login Window To Display Desktop Alert If Caps Lock On

In 2009 Patrick Roth, on the Developing for Dynamics GP blog, posted a customisation for the Microsoft Dynamics GP login window which displays a message box if the caps lock is on when the user goes to enter their password.

Then, back in July, Aaron Berquist on his blog High Dynamic Range, posted an article on using VBA to create a desktop alert to users which doesn’t take focus away from the application.

I decided to take a look and see if I could combine these two ideas into one and have a desktop alert displayed when the user has caps lock on when logging in, which is far less intrusive than the message box approach by Patrick.

The result is a customisation of the login window (which you can download at the end of the post) to display an alert if the user has the Caps Lock on using the desktop alert code Aaron posted.

The code displays a message to the user if they have Caps Lock on when the login window displays, or when they tab into the Password field if they haven’t already seen the message;

Desktop Alert

The customisation was created in GP 2013 and has only been tested in this version of GP but has been tested on Windows Server 2008 R2 and Windows 8. As with everything I post here, it is supplied entirely without warranty and you use it at your own risk.

However, if you do have problems let me know and I’ll see what I can do to fix them.

[wpdm_file id=2]

Installing Microsoft Dynamics GP 2010 – Insufficient Privileges To Modify The VBA Project Error

Microsoft Dynamics GPI upgraded a clients test system from Microsoft Dynamics GP 10 SP3 to 2010 R2 successfully on the main system such as installing the main client and upgrading the system and company databases.

The client has a few modified reports on the system which needed to be brought across to Microsoft Dynamics GP 2010. These reports were exported from Customisation Maintenance (Microsoft Dynamics GP menu >> Tools >> Customise >> Customisation Maintenance);

Customisation Maintenance

Continue reading