We created a new Payables Transaction approval workflow for a client last week and during UAT they reported that tasks were not escalating when they went overdue.
I verified the workflow and did some testing and was able to confirm that tasks were not escalating correctly.
This was not something I had seen before so I spent a little time doing other things to divert my mind before the realisation struck that a scheduled process has to be checking for tasks to escalate. So off to SQL Server Agent I went.
Or at least tried to. The client does not have SQL Server Agent installed; rather they use an alternate third party tool (I don’t know why).
We passed details of the jobs through to them which are usually created in SQL Server Agent (Scan For Overdue Workflow Tasks For All Companies and Scan For Invalid AD Users and Expired Delegations For All Companies) so that they could create them in the third party tool.
The additional thought which occurred is that Dynamics GP is supported on Microsoft SQL Server Express which does not contain SQL Server Agent, so users on this SQL Server platform cannot use escalations in Workflow 2.0 (unless they use a third party equivalent of SQL Server Agent).
When I returned to the office on Wednesday after being away at reIMAGINE for a few days and then being on holiday in Kentucky, I was asked for assistance by Jason on our service desk.
A client had logged an issue with a PO; lets say the PO Number was PO34791 for the sake of argument (I don’t actually recall what it was).
When the PO Documents Enquiry (Inquiry) window was used, the PO looked fine; the creditor (vendor) was the correct one and all other values were okay and the PO showed as received.
However, the PO was also showing in PO Entry with a different creditor id.
Jason showed me two SQL queries;
- The first, was a select on POP10100 WHERE PONUMBER = ‘PO34791’ and showed the correct PO.
- The second, was a select on POP10100 WHERE VENDORID = ‘1ST001’ AND DOCAMNT = ‘791.50’ and this showed the other PO which the PO Entry window was loading. This query could be run for any information unique to the PO and it would return this PO instead of the correct one; ibncluding the PONUMBER field in the select would cause it to return nothing.
All very unusual.
I ran another query against POP10100 WHERE PONUMBER LIKE ‘PO34791%’ and this returned two lines of information both showing a PONUMBER field of PO34791.
in SQL Server Management Studio I dragged the values from the recordset into the query window to compare them; one was shorter than the other. The cause was that one of them (the one for the Vendor ID 1st001) contained a control character which is why it appeared shorter.
We’re not sure what the user had done, but the second, incorrect, PO was entered with a PO Number containing a control character; they’d been able to successfully enter the PO, but GP was then becoming confused about which one should be loaded when the user typed, or did a lookup, for PO34791.
We copied the live company into test and deleted the second PO (for vendor 1st001) from all tables (it had lines and tax and so on) and then verified the data with a Check Links and Reconcile and asked the user to double check.
This process would then be repeated on live with the PO being re-keyed (it was only a single line).
[Microsoft][SQL Server Native Client 11.0][SQL Server][A .NET Framework error occurred during execution of user-defined routine or aggregate "Get "GetAssignedUsers". System.IO.FileLoadException: Could not load file or assembly 'System.DirectoryServices, Vers[
Towards the end of the deployment an error occurred while the wfDeployClrAssemblies was being executed (actually there were three error messages produced):
Microsoft Dynamics GP Utilities
The following SQL Statement produced an error:
DOC 68 ERROR: eConnect error - The source was not found, but some or all event logs could not be searched. To create the source, you need permission to read all event logs to make sure that the new source name is unique. Inaccessible logs: Security.
The problem was a fairly simple one in that the eConnect service account did not have the necessary permissions; a very similar issue to the one I blogged about in March 2013.
The solution is to add the service account to the Local Admins group; instructions are in the post I linked above.
Microsoft Dynamics GP
Error Registering Table GL_Account_MSTR
This particular client uses the eConnect incoming queue to integrate journals and payables invoices into Dynamics GP from a housing management system.
After installing eConnect and configuring the incoming queue I set about doing a test to ensure it was working.
Unfortunately, it didn’t.
We’ve recently started work with a client to upgrade their Microsoft Dynamics GP 2010 R2 system to Microsoft Dynamics GP 2015. When running GP Utilities the following error, which caused the upgrade to fail, was produced:
The conversion process encountered an error and the temporary table did not get removed.
As a first step, we restored the system database and restarted GP Utilities and got the same error again. I did a little exploring of the Company Master table and found that there were entries for companies which did not exist.
After restoring the DYNAMICS database again and running the Clear Companies.sql script from Microsoft, we were able to run GP Utilities without further errors and complete the upgrade.
I was recently creating an integration for a client to load some Purchase Orders into Microsoft Dynamics GP using Integration Manager. I added the source and destination adapters and then did the destination mapping. However, when I tried to run the integration I got the following error message:
DOC 1 ERROR: There was no endpoint listening at net.pipe://localhost/Microsoft/Dynamics/GP/eConnect/EntityOperations that could accept the message. This is often caused by an incorrect address or SOAP action. See InnterException, if present, for more details.
However, my most recent problem with Integration Manager did actually produce a useful error message:
Integration 'Invoices' is not ready to run due to the following problems:
- The destination could not be initialized due to the following problem:
Cannot create ActiveX component.
I did a search and found a most useful KB article from Microsoft which detailed the problem (Microsoft Dynamics GP hadn’t been written to the registry correctly) and also the solution.
I read the whole article and decided to try a shortcut of starting with step 3 of re-registering the Dynamics.exe. To do this open a Run or Command Prompt and type the following (this particular problem was encountered with Microsoft Dynamics GP 20103 R2):
"C:\Program Files (x86)\Microsoft Dynamics\GP2013\Dynamics.exe" /regsrver
When I retried the integration, it ran through without further problems.