Dynamics GP Diagnostics

Patrick Roth - Click for blog homepageWhat are Diagnostics and why do we need them?

Diagnostics are a CTS (Commercial Technical Support in Microsoft) initiative that has been around a few years.

If you've logged a support incident for other Microsoft technologies such as Windows, Exchange, SQL and others - chances are you were asked to run some sort of "Diagnostic" or "Baseline".

So what does one of these do?

Primarily they are data collectors that search your system for whatever they are looking for and collect that to upload to the Microsoft servers and attach to the incident.  When the tech then looks at the case, they will have access to that information.

How does that help you?  Or us?

Ideally it the application would collect basic information so that we would know more about your system without having to ask for it.  Or perhaps the information takes a bit of work to collect & upload and the diagnostic can automate both.  This also saves time for everyone in time to request the information and the delay in actually providing it.

Why am I talking about this today?

Well, I should have had this out this last Monday as that was the day that a Diagnostic should be offered from PartnerSource / CustomerSource when an incident is logged via eSupport.

Now when you log a Dynamics GP eSupport case against nearly any topic, you should be offered to run a suggested Diagnostic.  Today that will be the Dynamics GP Baseline for pretty much everything but Web Services.  For those you'll be offered a Web Service Diagnostic (that I wrote and published back in January).

Screenshot of eSupport confirmation offering Diagnostic

Note that 2 versions of the diagnositic will be offered to the user.

There is one version for Windows 7 and Windows 2008 R2 that uses msdt.exe to run the diagnostic.

The 2nd version is for everything else and starts running in your internet browser.  This executes via a URL offered as we see in the screenshot.

Unfortunately this page is the only page accessible to you that gives you the MSDT support key and that URL.  So if you dismiss this page like you have done for years, they're gone and you can't get them back.  The tech that owns the case can resend them to you (and they are supposed to be doing this) but that somewhat defeats the "automated" part of this solution.

Once the diagnosic is executed via msdt or the URL, it should be virtually identical when running.

When the diagnostic starts up (the Win7+ version), it will tell the user what diagnostics are in the package.  This should be support for offline execution and well as the selected diagnostics in the package - in this case just the Dynamics GP Baseline.

Screenshot of the Diagnostic starting

Hit next to get started.

In the next window, it will offer the user the choice of running on the currrent computer or it will generate an exe to run on another computer.

Screenshot of offline execution option

Typically choose This Computer to start the ball rolling.

The next window is just an information window telling the user what is going to be run and offer a link to a KB that details what information is going to be gathered.

Hit Next to continue.

If Dynamics GP is properly installed, the diagnostic will find the registry entries and display the existing instances & instance names of your installs.  If this is the "default" GP instance for that version, then the instance will be marked Default.  If a Dynamics GP client is not installed then this window will not appear.

Screenshot of GP instances

So in the screenshot above I have a 10.0 and 11.0 default install available to select from.

Once we know the location of the Dynamics GP location, we can read settings from the Dex.ini.

If a Dynamics GP client is installed, you will be offered to log into SQL as 'sa', a Dynamics GP user, or Cancel Login.

Select SQL Login Preference window

If Dynamics GP is NOT installed, then "Dynamics GP User" will be replaced with "Windows Authentication".

If you chose Dynamics GP user, we need to know which user so it will prompt for that information.  The default from your Dex.ini SQLLastUser setting will default for you.

Enter Login information window (user)

Enter your password window(s)

Assuming that 'sa' or 'Dynamics GP User' was offered & selected, we need a password as shown above.

Now it is very un-cool to have to pop up a separate dialog to ask for this information.  It is much cleaner to ask for this right in the diagnostic window itself.  Unfortunately the platform does not allow for masked textboxes to be used.  And so if there is sensitive information like passwords then either show them plain text or like this.  So don't blame me - blame the platform for this one.

Lastly, if Dynamics was installed we'll ask you for the DSN to log into SQL with (via GPConnNet.dll).  If not, we'll present a list of SQL Servers to choose from.

DSN window with 32 bit ODBC Datasources

Hitting Next will try to connect & run a test SQL query to verify the connection.  If it fails then a dialog will be presented giving the failure and hitting next will take you back to the SQL Database Login Preferences window.

Assuming that the connection worked correctly, you'll be given a list of your companies from the SY60100 or SY01500 table depending on login preference selected.

Select a Company to execute against

In the future, this might present itself as a list of checkboxes and so you can pick any/all of them to execute against.  It depends on what we need a diagnostic for and whether it needs to run against a specific company or many.  But for today, pick one.

Once you select a company, we're home free and the app will run to completion.

I'm running as fast as I can

It'll run some SQL queries against DYNAMICS & the specified company and gather that information.  Then it will pull your Dynamics.set, the Dex.ini, and a list of files in the GP, Data, and Addins folders.  Finally it'll pull some of the event log data for Dynamics, Dexterity, eConnect, Application, and System event logs.

And we're done - send it!

At this point you can upload the data, see the data being sent, or tell it the problem has been resolved.

I'd go with "upload the data".

You might wonder why "The problem has been resolved" option was offered?  That is because this Diagnostic stuff is all built on the FixIt platform and that platform is trying to find & fix issues so it wants you to verify the "problem" has been resolved.  Since we aren't really fixing anything here - just collecting - you'll never want to select this option.

The Diagnostic will exit at this point.  So now that we have the "what happens" questions answered, the next step is to actually use these.  You send them and we'll use the results to help solve your cases.

So the next time the engineer asks you "What version are you on?" and you returned the diagnostic then answer the tech but remind them to look at the diagnostic. (Hey - it is new for us too!)

Best Regards,
Patrick Roth
GP Developer Support