/* Created by Ian Grieve of azurecurve|Ramblings of a Dynamics GP Consultant (http://www.azurecurve.co.uk) This code is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0 Int). */ Set objShell = CreateObject("WScript.Shell") Set objExec = objShell.Exec("B:\IM.bat")
I’m posting it here so I don’t lose it for when I remember why I write it, and perhaps it may be useful to others.
We have a client who will be loading payables transactions into Microsoft Dynamics GP and need secondary postings created into the General Ledgers of other company databases. The idea is to use the AfterDocument script to create and submit an eConnect document, which is in XML format.
The below code is a small proof of concept which creates an XML file with child and parent nodes and saves it to the T:\:
/* Created by Ian Grieve of azurecurve|Ramblings of a Dynamics GP Consultant (http://www.azurecurve.co.uk) This code is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales (CC BY-NC-SA 2.0 UK). */ Set xmlDoc = CreateObject("Microsoft.XMLDOM") Set objRoot = xmlDoc.createElement("RootElement") xmlDoc.appendChild objRoot Set objRecord = xmlDoc.createElement("SubLevel1") objRoot.appendChild objRecord Set objName = xmlDoc.createElement("Element1") objName.Text = "AAAAAAA" objRecord.appendChild objName Set objDate = xmlDoc.createElement("Element2") objDate.Text = "BBBBBBB" objRecord.appendChild objDate Set objIntro = xmlDoc.createProcessingInstruction ("xml","version='1.0'") xmlDoc.insertBefore objIntro,xmlDoc.childNodes(0) xmlDoc.Save "T:\Test.xml"
One of Perfect Image’s clients is merging with another organisation and I’ve been onsite a few times to help them configure the new companies and import data. One of the items on my list was to use Integration Manager to import the new chart of accounts. While doing this I used VBA to extend the integration to map between the chart of accounts in the new system to the new format and numbering wanted in Microsoft Dynamics GP.
It was when I came to test the integration with the mapping active that I encountered my problem:
ERROR: Error Executing Script 'Before Integration' Line 17: - Object required: 'gpObj' Error Executing Script 'Before Integration' Line 17: - Object required: 'gpObj' Object required: 'gpObj' Integration Failed Integration Results 0 documents were read from the source query. 0 documents were attempted: 0 integrated without warnings. 0 integrated with warnings. 0 failed to integrate.
Since the introduction of the web client in Microsoft Dynamics GP 2013, I have tried to minimise the use of VBA as it is not supported by the web client. However, some clients don’t intend to use the web client and prefer to have a quick customisation to a window done using VBA rather than full development in Dexterity.
As such, I do still sometimes get work with Modifier and VBA. I recently did a change to a client where I added several fields to VBA on the Sales Transaction Entry window.
A little later I needed to add a new checkbox and add it to VBA. I customised the window in Modifier to add the field, but when I tried adding it to VBA I received an error I had not seen before:
Microsoft Dynamics GP
You are manipulating a modified window whose EventMode is set to EmOriginalOnly. You must change this window's EventMode to emModifiedOnly before you can add this field.
I recently assisted a client with an upgrade of Microsoft Dynamics GP 10 to GP 2013 R2. As part of the upgrade we assisted the client to create some Word Template versions of sales invoice, purchase order, and cheque remittance (or check remittance to the American readers).
Everything appeared fine during development and initial testing. Fine that is until we tried producing a batch of twenty remittances which produced the following two error messages:
I 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:
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:
- Launch GP and open the Visual Basic Editor
- Opened modified report in the Microsoft Dynamics GP VBA project
- Added and removed a space from the end of one line
- Compiled the entire project to check for errors
- Save VBA project
- 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.
I had a colleague (actually the First Minion, Erebus) using Modifier with VBA to create a customisation of the Account Maintenance window ( ) 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):
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:
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.
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;