I have a few clients with many company in Microsoft Dynamics GP (and one with well over 100) so doing upgrades or live to test backups can require a fair few, potentially time consuming, changes to data. I've posted scripts to update email addresses on test in bulk before as well as a few other variations. One recent one which has come up a couple of times, is the web services server location.
In the Workflow Setup window (Administration area page » Setup » System » Workflow Setup) is a field for the Web Services Server Location; this is the server where the web services have been installed and will be different for a standalone test server to live. Rather than have to move between several dozen companies changing this setting one at a time, the following script can be run to make the change in all companies.
The first highlighted section is the new server location and the second the current one:
/* 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).
*/DECLARE @SQL NVARCHAR(MAX)SET @SQL =STUFF((SELECTCHAR(13)+'UPDATE
Web_Service_Server = ''test.example.co.uk''
'+ INTERID +'.dbo.WF00100 AS WF
Web_Service_Server = ''live.example.co.uk'''FROM
FOR XML PATH(''),TYPE).value('.','NVARCHAR(MAX)'), 1, 1,'')EXECsys.sp_executesql @SQL
The second element is there to make sure the script is only run in companies in which the workflow setup has been completed.
We've just upgraded another client to Microsoft Dynamics GP Fall 2020 Release; everything during the upgrade went smoothly until we came to upgrading the web services. The test environment was created by replicating the live servers into a sandbox environment.
I was pretty much expecting to encounter the problem we did as we were moving from using a SQL Server security store to an Active Directory security store. The error received was:
A loader exception has occurred.
- Microsoft.Dynamics.Security.InvalidSecurityContextException: Microsoft.Dynamics.Security.NonExistentSecurityObjectException : The security object does not exist. Key = 25cc1a21-2cc4-4b13-a1c8-eea186fb688a
at Microsoft.Dynamics.Security.ConcreteValidator.ValidateContext(SecurityContext context)
at Microsoft.Dynamics.Security.SecurityService.Get(SecurityContext context, Key key)
at Microsoft.Dynamics.Security.AzManTaskServiceImplementation.GetTask(SecurityContext context, TaskKey taskKey)
at Microsoft.Dynamics.GP.GPSecurityMetadataSystemLoader.PersistTaskForAction(Action action, Task task, Keyword keyword)
at Microsoft.Dynamics.GP.GPSecurityMetadataSystemLoader.PerformActionOnKeywords(Action action)
at Microsoft.Dynamics.InstallData.Loader.Process(String args)
As the error referred to a security object error, my thinking immediately went to the new security store as being the issue. Due to the change in method I opted to remove the web services and do a reinstall; I tried using the built-in removal process in the Web Services Configuration Wizard, but this took a very long time to run and then crashed, so I used a couple of Microsoft supplied scripts to remove all of the web services objects from the company databases first and then from the system.
Once the web services had been completely removed, I re-ran the Configuration Wizard and deployed the web services again. The deployment ran through without any issues and we were able to test web services without encountering any further issues.
The lesson, which confirmed what I expected, is that if you change the security store type, you need to remove the web services from all companies and do a redeploy.
In our most recent webinar, we took a look at Automation in Microsoft Dynamics GP. In this webinar, we covered how automation can be used in Microsoft Dynamics GP to improve efficiencies and accuracy of data. If you want to catch up on this, or any other, webinar, you can do so here.
In this blog post, I am going to recap the webinar and cover the highlights of how automation can be used in Microsoft Dynamics GP to improve efficiencies and improve data accuracy:
Where possible in this webinar I highlighted standard, or Microsoft supplied, features or additional products where they are available. However, in many cases the standard functionality does not allow for full automation. This is an intentional design choice made when Microsoft Dynamics GP was first created back in the md-90s. The company who created Great Plains, the original name of Dynamics GP, was intended from the very beginning to be extensible with the intention that there be a thriving third-party marketplace for add-ons.
This is the current situation; the core Dynamics GP system has strong core financials and distribution modules, but wider functionality is provided by third party (Independent Software Vendors (ISVs) who have a variety of add-ons and complimentary products which provide the functionality required or automating processes. In each of the areas, there are usually a number of products available from several vendors, but I have selected one in each area. usually an add-on which I have used with several clients across a number of years and which has received positive reviews.
Before implementing one of the solutions, I'd recommend reviewing the functionality it includes, the functionality of competing products and making your own decision about which will best fit your requirements.
When using the Web Services for Microsoft Dynamics GP with external access for Workflow approvals, it is important that the webs services be secured to minimise possible attack vectors. Everything covered in this series is required to install and configure the web services for internal use only
I covered the process for enable a secure connection for the web services a year or so ago which include a few extra steps:
There are three checks which I recommend when verifying the web services:
Is the service running?
Have the security objects been deployed?
Are the endpoints working?
To check that the service account is running, open the Services applet from Computer Management (or hit Win+R and typeServices.msc) and make sure the Microsoft Dynamics GP Service Host is set to a Startup Type of Automatic and that the service is Running.
With the Web Services installed, the next step is to configure them for use. If you marked the checkbox on the final step of the installation the Configuration Wizard will start automatically otherwise it can be started from the Windows Start menu. Click NExt to start the configuration:
The next few posts are going to cover the installation of the Web Services for Microsoft Dynamics GP.
Before we start the installation itself, there are some prerequisites to make sure are sorted out. The majority of them will be installed by the setup utility, but there are others to consider.
Firstly, the Web Services should not be installed on either the SQL Server or an end-user accessible machine. If you're going to make the Web Services externally accessible, they should be installed on a web server or similar machine.
Secondly, a Domain account is required for the Web Services service to run under. During the installation, this service should have local administrator permissions.
Thirdly, all companies which will have the Web Services deployed, needs to have a Functional Currency defined (this is needed even if you are not using Multicurrency; in this case, you will need to configure it for use anyway. When you do so, if you have a lot of hsitorical transactions, plan ahead and allow a lot of time to run Check Links).
A specified logon session does not exist. It may already have been terminated.
I've not seen this error before, so some investigation was in order. As part of the project, I had provided pre-requisites to the client who had forwarded them into their IT partner to sort out. I discovered that when they added the SSL certificate they had, perhaps not unreasonably, added it to the WebHosting certificate store, but it needed to be in the Personal store.
Once the certificate had been moved, I was able to add the certificate to web services and continue with the configuration.
One item I did flag to the client, is that people wanting to do an approval on a mobile (cell) phone, is that it will not work on Android Chrome as this has retired TLS 1.0 and all of the main browsers will be following suite very soon. While I expect Microsoft to provide a fix for this, an upgrade of Microsoft Dynamics GP will most likely be required.