I recently encountered a couple of issues with the new Making Tax Digital functionality in the latest version of Dynamics GP 2016.
The first issue was when clicking “Submit” on the Dynamics GP VAT Return window the HMRC login window wasn’t opening. The HMRC_Log_in window in question is a IE type window as shown below
The second issue was occurring when trying to bring through the Obligations when creating a new VAT Return. At the end of the process the message “No Obligations found for the year 2019” occurred.
**What was very strange is the second issue also opens the HMRC_Log_in window and during this process the window opened fine? The client then entered their credentials into the HRMC_Log_in window and authentication was also successful however it was the final bit of the process that involved bringing through the Obligations that was failing?
As the first issue seemed easier to trace I focused my efforts on resolving this one in the hope it would also resolve the second issue.
The next thing was to ensure the process worked on my PC with the clients data. I therefore created a test environment on my PC and both processes all worked fine. I therefore suspected it was an environmental issue on the clients system.
Next I logged onto the clients system and performed a Process Monitor trace when clicking “Submit” and found the following issue
I was getting a NAME NOT FOUND for the file GPConnNet.dll in the local GP folder just before calls to the VAT100ElectronicSubmission.dll
I checked the local GP folder and the GPConnNet.dll file didn’t exist. I know this is a shared component so I looked in C:\Program Files (x86)\Common Files\Microsoft Shared\Dexerity\v2.0 and found the DLL
Therefore I simply copied the file from the shared folder above to the local GP folder and now clicking “Submit” opens the HMRC_Log_in window and the client can submit the VAT return electronically as per the new HMRC guidelines. I also checked if the Obligations part worked and now this all works fine as well.
Unfortunately I don’t know why GP wasn’t working as the DLL doesn’t exist in my local GP folder either, and mine still works, so I suspect another environmental issue is in play that I didn’t get to the bottom of.
If anyone has any suggestions on this it would be much appreciated.
I’ve seen this error message crop up a few times. It occurs when you try to receive a Purchase Order in Receiving Transactions Entry and you are presented with the message below even though “Purchase Order Approvals” hasn’t been activated in the “Purchase Order Enhancement” module
As mentioned in several articles online it can be caused because a budget hasn’t been assigned in the “Commitment Setup” window for the year of the Purchase Order you are trying to receive against. Therefore if you go into “Commitment Setup” and assign a budget to the relevant year the issue is resolved. However, on some occasions I’ve found missing records in the commitment table causing the issue. (perhaps because several Purchase Orders have been raised whilst the Commitment Setup was missing a budget for that year)
At first I tried running “Checklinks” on the Purchase Order Enhancements tables via “Microsoft Dynamics GP > Maintenance > Purchase Order Enhancements” however when this failed I’ve fixed the issue by manually inserting data into the commitment tables based on data in the Purchase Order line table.
Just in case anyone else encounters the same issue I thought I’d share the script I’ve used.
INSERT INTO cpo10110
FROM pop10110 pop
LEFT JOIN cpo10110 poe
ON pop.ponumber = poe.ponumber
AND pop.ord = poe.ord
WHERE pop.polnesta IN ( 1, 2 )
AND poe.ponumber IS NULL
As you can see this SELECTs data from the Purchase Order Line table (POP10110) and inserts into the Commitment tables (CPO10110) where its missing from the Commitment table (CPO10110).
As with any script that updates data please ensure you have a good backup of your data prior to running this. I’d also recommend testing this in a TEST company as well before implementing in the LIVE or production company.
Its also a good idea to just run the SELECT portion of the script in the first instance and see if it highlights the PO you are trying to receive against. If it does you can always investigate further, for example ensuring lines aren’t cancelled or checking if there definitely is a budget setup for the year of the purchase order. You also need to ensure the line item has a valid account number.
You can also adapt the script and change the WHERE clause so it just includes the POs you know to have the problem.
I hope this comes in handy for someone else in the future.