The Importance of Proactive Logging in Dynamics GP Integrations
When integrating with Dynamics GP, logging is frequently overlooked. Custom integrations usually lack logging altogether, and while integration tools might offer default logging, the information is often unclear or excessively detailed with irrelevant events.
A while back, I created a custom RESTful JSON web service API for Dynamics GP, allowing a customer to send real-time data from their PHP-based system to Dynamics GP. This involved saving new customer details and payment information (credit card or ACH).
My initial integration used my typical logging method: daily text log files. While this might raise eyebrows among logging purists, my extensive experience has proven that simple text log files are the most practical solution for the Dynamics GP clients I work with.
The GP integration worked seamlessly, with the logging functioning discreetly in the background. Months later, the customer experienced performance problems with the GP integration. To address this, I improved the logging to include detailed information for quick identification and resolution of performance bottlenecks. Beyond enhancing logging detail, I introduced proactive measures, tracking and logging any GP integration delays and implementing email notifications for errors or delays.
The logging enhancements proved highly effective, uncovering several intricate issues that would have been impossible to diagnose without granular, millisecond-level logs.
A recent event highlighted the importance of integration logging and, crucially, the value of proactive error notifications.
At 9:18 am Central time, the finance department received an email alert. This notification informed them of an error, its nature, and provided recent log entries to facilitate rapid troubleshooting. While users wouldn’t grasp all the technical details, they were instantly aware of the problem and could see the affected customer record.
The email, titled “GP Web Service - Registration Error - PROD,” indicated that the Dynamics GP Web Service experienced errors, specifically a timeout error when submitting registration data for a customer named Acme Supply Co. The email included a snippet of log entries with timestamps, revealing a significant delay associated with a call to Authorize.net, causing the overall processing time to exceed the defined threshold and trigger the timeout error notification.
This quick glance at the email allowed me to identify Authorize.net as the source of the delay. The log clearly showed a single Authorize.net call taking over 15 seconds, exceeding the 10-second timeout threshold and triggering the notification.
Similar timeout errors persisted throughout the morning, consistently pointing to Authorize.net delays. We consulted the Authorize.net status page but found no reported issues. We informed the client about the likely cause and offered two options: wait and monitor the situation or submit a support case to Authorize.net.
The client decided to wait, and at 10:35 am Central time, Authorize.net acknowledged the issue in a Twitter status update. They later provided more detailed updates on their website, resolving the issue by 11:18 am Central time.
Thanks to the proactive logging and notification system, the customer became aware of the problem with a major payment gateway within seconds – over an hour before Authorize.net officially acknowledged it. This allowed the team to avoid unnecessary panic, speculation, and wasted effort on ineffective fixes. The users were promptly informed, and within minutes of diagnosis, they adapted their workflow accordingly.
Although we couldn’t directly fix the external provider’s issue, the logging system saved everyone significant time and potential frustration. This experience underscores the critical importance of meaningful logging and proactive notifications for integrations, particularly automated processes, in minimizing support effort and costs.