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).
While in America on vacation following reIMAGINE 2016, I received the notification email that I had been awarded the Microsoft Most Valuable Professional award for the fourth year running. It’s very nice to receive the award as it shows I am still contributing in a meaningful way to the Dynamics GP community.
There was another new MVP for Dynamics GP added to the roster this month as well; Jen Kuntz.
Jen has been a great contributor to the Dynamics GP community for a while now and I’m delighted to see that this has been officially recognised by Microsoft with her MVP award.