Link to home
Start Free TrialLog in
Avatar of Jared Luker
Jared LukerFlag for United States of America

asked on

Dynamics GP does not return all results from a smart list on some machines

I have some computers that do not return all the results that they should when running a smart list.  There are several of them and when they try to run a smart list, they will return somewhere south of 200 records.

I can walk to the next cubical and run the exact same smartlist and it will return thousands of results.

I have no idea what to do.  We talked to a guy at Convergence about it.  He suggested that we check some caching files, but the fact that it's happening on multiple new Windows 7 machines, seems to disqualify that possiblity.

Any suggestions would be helpful I'm sure.

Thanks!
Avatar of Steve Endow
Steve Endow
Flag of United States of America image

Hi,

That is definitely odd.

The first thing I probably would try, just as a sanity check, is a SQL Profiler trace.

Use Profiler to see the SQL statement(s) that are issued when you run or refresh the SmartList on a 'problem' workstation.  Then trace the same activity on a workstation that displays all of the results.

Before you run the SmartLists, make sure both workstations are running on the same company DB, and that the SmartList Favorite is set to return the same number of rows.  

Once you get the Profiler traces, compare the two traces and confirm that a different TOP X statement is not appearing in one query.  And then run the query manually to confirm the result set.

You could probably also do a SQL trace with Support Debugging Tool on each client, but if you don't already have the debug tool installed on all of the workstations, SQL Profiler is probably easier.

There is likely a simple explanation, such as the SmartList Favorite is "Visible To" individual User IDs rather than Company or System, and each has a different value for the "Maximum Records" under the search window.  But other than that, I'm not sure what it could be.

Let me know what you find with the SQL trace.

Thanks,

Steve Endow
Dynamics GP Certified Trainer
Dynamics GP Certified IT Professional
Avatar of Jared Luker

ASKER

Ok... so please forgive my ignorance.  I'm one of those admins that has been tasked with GP with zero experience.

I had to look up how to do a SQL Profiler, but I believe that I have done that.  I started a trace and then started the smart list (it works on my machine as sa).  I let the trace run over 300 records and then stopped it.  I ended up with 5762 rows.  That's a lot of data to sift through when you don't know what your looking for.  If you could hold my hand a bit it would be appreciated.
Hi,

No problem, I understand.

So when you use SQL Profiler, I like to apply a filter based on SQL login so that I only see the queries that are being issued by my GP user.

'sa' isn't always the best login, because other processes and tasks sometimes use 'sa'.

So I login to GP with a 'steve' or 'sendow' user, and then I add the filter for that login.  You want to use a login where you know nobody else will have activity.

In your Trace Properties window, click on the Events Selection tab, then click on the Column Filters button in the bottom right.

When the Edit Filter window opens, select LoginName on the left, then expand Like, then type the login and click on OK.

To filter just the select statements, click on the TextData value on the left, expand like, and enter SELECT%

That will tell it to only display Select statements, and skip all of the other noise.

Get GP setup with the SmartList you want to run, then click on Run in Profiler to start your trace.  Then click on the Refresh button in the SmartList.

As soon as your SmartList finishes, pause Profiler.  I just did a trace on the Accounts SmartList and got 24 rows (2 of which are informational)--so 22 actual select statements, and the first one of those is to query the SmartList information--so 21 statements to select data.  Interestingly, it appears that SmartList retrieves the data in 25 row chunks.  Typical GP.

So in my case, I had 523 GL accounts.  Since it queries 25 rows at a time, that's why it issued 21 select statements.  25 * 21 = 525.

So, given what I'm seeing, take a look at the number of actual data queries that are being issued.  That will be the first clue as to where the problem might be.

I've attached a few screen shots of the filters and results.

Let me know if that helps and what you find.

Thanks,

Steve Endow
Dynamics GP Certified Trainer
Dynamics GP Certified IT Professional
Filter1.jpg
Filter2.jpg
Results1.jpg
Awesome directions!  Thanks!  Each machine only executed two select statements.  The first returned 106 rows the second returned 57,252 rows

Here are the results:

Faulty computer SQL:BatchStarting

SELECT 1 AS '1', HAND.dbo.SOP10200.SOPTYPE AS '2', HAND.dbo.SOP10200.SOPNUMBE AS '3', HAND.dbo.SOP10200.CMPNTSEQ AS '4', HAND.dbo.SOP10200.LNITMSEQ AS '5'  FROM HAND.dbo.SOP10200 (nolock) LEFT OUTER JOIN HAND.dbo.IV00101 (nolock)  ON HAND.dbo.SOP10200.ITEMNMBR = HAND.dbo.IV00101.ITEMNMBR  LEFT OUTER JOIN HAND.dbo.SOP10100 (nolock)  ON HAND.dbo.SOP10200.SOPTYPE = HAND.dbo.SOP10100.SOPTYPE  AND HAND.dbo.SOP10200.SOPNUMBE = HAND.dbo.SOP10100.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.SOP10106 (nolock)  ON HAND.dbo.SOP10200.SOPTYPE = HAND.dbo.SOP10106.SOPTYPE  AND HAND.dbo.SOP10200.SOPNUMBE = HAND.dbo.SOP10106.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.RM00101 (nolock)  ON HAND.dbo.SOP10100.CUSTNMBR = HAND.dbo.RM00101.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.RM00103 (nolock)  ON HAND.dbo.SOP10100.CUSTNMBR = HAND.dbo.RM00103.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.IV40201 (nolock)  ON HAND.dbo.IV00101.UOMSCHDL = HAND.dbo.IV40201.UOMSCHDL  WHERE ((UPPER(ISNULL(HAND.dbo.SOP10200.ITEMNMBR,'')) LIKE '%098%') AND (HAND.dbo.SOP10100.DOCDATE BETWEEN  CONVERT(datetime,'20120101') AND  CONVERT(datetime,'20130430')) AND (HAND.dbo.SOP10200.SOPTYPE IN (3))) UNION ALL SELECT 3 AS '1', HAND.dbo.SOP30300.SOPTYPE AS '2', HAND.dbo.SOP30300.SOPNUMBE AS '3', HAND.dbo.SOP30300.CMPNTSEQ AS '4', HAND.dbo.SOP30300.LNITMSEQ AS '5'  FROM HAND.dbo.SOP30300 (nolock) LEFT OUTER JOIN HAND.dbo.IV00101 (nolock)  ON HAND.dbo.SOP30300.ITEMNMBR = HAND.dbo.IV00101.ITEMNMBR  LEFT OUTER JOIN HAND.dbo.SOP30200 (nolock)  ON HAND.dbo.SOP30300.SOPTYPE = HAND.dbo.SOP30200.SOPTYPE  AND HAND.dbo.SOP30300.SOPNUMBE = HAND.dbo.SOP30200.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.SOP10106 (nolock)  ON HAND.dbo.SOP30300.SOPTYPE = HAND.dbo.SOP10106.SOPTYPE  AND HAND.dbo.SOP30300.SOPNUMBE = HAND.dbo.SOP10106.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.RM00101 (nolock)  ON HAND.dbo.SOP30200.CUSTNMBR = HAND.dbo.RM00101.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.RM00103 (nolock)  ON HAND.dbo.SOP30200.CUSTNMBR = HAND.dbo.RM00103.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.IV40201 (nolock)  ON HAND.dbo.IV00101.UOMSCHDL = HAND.dbo.IV40201.UOMSCHDL  WHERE ((UPPER(ISNULL(HAND.dbo.SOP30300.ITEMNMBR,'')) LIKE '%098%') AND (HAND.dbo.SOP30200.DOCDATE BETWEEN  CONVERT(datetime,'20120101') AND  CONVERT(datetime,'20130430')) AND (HAND.dbo.SOP30300.SOPTYPE IN (3))) ORDER BY  '1'  ASC,  '2'  ASC,  '3'  ASC,  '4'  ASC,  '5'  ASC

Open in new window


Faulty Computer SQL:BatchCompleted:

SELECT 1 AS '1', HAND.dbo.SOP10200.SOPTYPE AS '2', HAND.dbo.SOP10200.SOPNUMBE AS '3', HAND.dbo.SOP10200.CMPNTSEQ AS '4', HAND.dbo.SOP10200.LNITMSEQ AS '5'  FROM HAND.dbo.SOP10200 (nolock) LEFT OUTER JOIN HAND.dbo.IV00101 (nolock)  ON HAND.dbo.SOP10200.ITEMNMBR = HAND.dbo.IV00101.ITEMNMBR  LEFT OUTER JOIN HAND.dbo.SOP10100 (nolock)  ON HAND.dbo.SOP10200.SOPTYPE = HAND.dbo.SOP10100.SOPTYPE  AND HAND.dbo.SOP10200.SOPNUMBE = HAND.dbo.SOP10100.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.SOP10106 (nolock)  ON HAND.dbo.SOP10200.SOPTYPE = HAND.dbo.SOP10106.SOPTYPE  AND HAND.dbo.SOP10200.SOPNUMBE = HAND.dbo.SOP10106.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.RM00101 (nolock)  ON HAND.dbo.SOP10100.CUSTNMBR = HAND.dbo.RM00101.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.RM00103 (nolock)  ON HAND.dbo.SOP10100.CUSTNMBR = HAND.dbo.RM00103.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.IV40201 (nolock)  ON HAND.dbo.IV00101.UOMSCHDL = HAND.dbo.IV40201.UOMSCHDL  WHERE ((UPPER(ISNULL(HAND.dbo.SOP10200.ITEMNMBR,'')) LIKE '%098%') AND (HAND.dbo.SOP10100.DOCDATE BETWEEN  CONVERT(datetime,'20120101') AND  CONVERT(datetime,'20130430')) AND (HAND.dbo.SOP10200.SOPTYPE IN (3))) UNION ALL SELECT 3 AS '1', HAND.dbo.SOP30300.SOPTYPE AS '2', HAND.dbo.SOP30300.SOPNUMBE AS '3', HAND.dbo.SOP30300.CMPNTSEQ AS '4', HAND.dbo.SOP30300.LNITMSEQ AS '5'  FROM HAND.dbo.SOP30300 (nolock) LEFT OUTER JOIN HAND.dbo.IV00101 (nolock)  ON HAND.dbo.SOP30300.ITEMNMBR = HAND.dbo.IV00101.ITEMNMBR  LEFT OUTER JOIN HAND.dbo.SOP30200 (nolock)  ON HAND.dbo.SOP30300.SOPTYPE = HAND.dbo.SOP30200.SOPTYPE  AND HAND.dbo.SOP30300.SOPNUMBE = HAND.dbo.SOP30200.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.SOP10106 (nolock)  ON HAND.dbo.SOP30300.SOPTYPE = HAND.dbo.SOP10106.SOPTYPE  AND HAND.dbo.SOP30300.SOPNUMBE = HAND.dbo.SOP10106.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.RM00101 (nolock)  ON HAND.dbo.SOP30200.CUSTNMBR = HAND.dbo.RM00101.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.RM00103 (nolock)  ON HAND.dbo.SOP30200.CUSTNMBR = HAND.dbo.RM00103.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.IV40201 (nolock)  ON HAND.dbo.IV00101.UOMSCHDL = HAND.dbo.IV40201.UOMSCHDL  WHERE ((UPPER(ISNULL(HAND.dbo.SOP30300.ITEMNMBR,'')) LIKE '%098%') AND (HAND.dbo.SOP30200.DOCDATE BETWEEN  CONVERT(datetime,'20120101') AND  CONVERT(datetime,'20130430')) AND (HAND.dbo.SOP30300.SOPTYPE IN (3))) ORDER BY  '1'  ASC,  '2'  ASC,  '3'  ASC,  '4'  ASC,  '5'  ASC

Open in new window


Working Computer SQL:BatchStarting

SELECT 1 AS '1', HAND.dbo.SOP10200.SOPTYPE AS '2', HAND.dbo.SOP10200.SOPNUMBE AS '3', HAND.dbo.SOP10200.CMPNTSEQ AS '4', HAND.dbo.SOP10200.LNITMSEQ AS '5'  FROM HAND.dbo.SOP10200 (nolock) LEFT OUTER JOIN HAND.dbo.IV00101 (nolock)  ON HAND.dbo.SOP10200.ITEMNMBR = HAND.dbo.IV00101.ITEMNMBR  LEFT OUTER JOIN HAND.dbo.SOP10100 (nolock)  ON HAND.dbo.SOP10200.SOPTYPE = HAND.dbo.SOP10100.SOPTYPE  AND HAND.dbo.SOP10200.SOPNUMBE = HAND.dbo.SOP10100.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.SOP10106 (nolock)  ON HAND.dbo.SOP10200.SOPTYPE = HAND.dbo.SOP10106.SOPTYPE  AND HAND.dbo.SOP10200.SOPNUMBE = HAND.dbo.SOP10106.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.RM00101 (nolock)  ON HAND.dbo.SOP10100.CUSTNMBR = HAND.dbo.RM00101.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.RM00103 (nolock)  ON HAND.dbo.SOP10100.CUSTNMBR = HAND.dbo.RM00103.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.IV40201 (nolock)  ON HAND.dbo.IV00101.UOMSCHDL = HAND.dbo.IV40201.UOMSCHDL  WHERE ((UPPER(ISNULL(HAND.dbo.SOP10200.ITEMNMBR,'')) LIKE '%098%') AND (HAND.dbo.SOP10200.SOPTYPE IN (3)) AND (HAND.dbo.SOP10100.DOCDATE BETWEEN  CONVERT(datetime,'20120101') AND  CONVERT(datetime,'20130430'))) UNION ALL SELECT 3 AS '1', HAND.dbo.SOP30300.SOPTYPE AS '2', HAND.dbo.SOP30300.SOPNUMBE AS '3', HAND.dbo.SOP30300.CMPNTSEQ AS '4', HAND.dbo.SOP30300.LNITMSEQ AS '5'  FROM HAND.dbo.SOP30300 (nolock) LEFT OUTER JOIN HAND.dbo.IV00101 (nolock)  ON HAND.dbo.SOP30300.ITEMNMBR = HAND.dbo.IV00101.ITEMNMBR  LEFT OUTER JOIN HAND.dbo.SOP30200 (nolock)  ON HAND.dbo.SOP30300.SOPTYPE = HAND.dbo.SOP30200.SOPTYPE  AND HAND.dbo.SOP30300.SOPNUMBE = HAND.dbo.SOP30200.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.SOP10106 (nolock)  ON HAND.dbo.SOP30300.SOPTYPE = HAND.dbo.SOP10106.SOPTYPE  AND HAND.dbo.SOP30300.SOPNUMBE = HAND.dbo.SOP10106.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.RM00101 (nolock)  ON HAND.dbo.SOP30200.CUSTNMBR = HAND.dbo.RM00101.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.RM00103 (nolock)  ON HAND.dbo.SOP30200.CUSTNMBR = HAND.dbo.RM00103.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.IV40201 (nolock)  ON HAND.dbo.IV00101.UOMSCHDL = HAND.dbo.IV40201.UOMSCHDL  WHERE ((UPPER(ISNULL(HAND.dbo.SOP30300.ITEMNMBR,'')) LIKE '%098%') AND (HAND.dbo.SOP30300.SOPTYPE IN (3)) AND (HAND.dbo.SOP30200.DOCDATE BETWEEN  CONVERT(datetime,'20120101') AND  CONVERT(datetime,'20130430'))) ORDER BY  '1'  ASC,  '2'  ASC,  '3'  ASC,  '4'  ASC,  '5'  ASC

Open in new window


Working Computer SQL:BatchCompleted

SELECT 1 AS '1', HAND.dbo.SOP10200.SOPTYPE AS '2', HAND.dbo.SOP10200.SOPNUMBE AS '3', HAND.dbo.SOP10200.CMPNTSEQ AS '4', HAND.dbo.SOP10200.LNITMSEQ AS '5'  FROM HAND.dbo.SOP10200 (nolock) LEFT OUTER JOIN HAND.dbo.IV00101 (nolock)  ON HAND.dbo.SOP10200.ITEMNMBR = HAND.dbo.IV00101.ITEMNMBR  LEFT OUTER JOIN HAND.dbo.SOP10100 (nolock)  ON HAND.dbo.SOP10200.SOPTYPE = HAND.dbo.SOP10100.SOPTYPE  AND HAND.dbo.SOP10200.SOPNUMBE = HAND.dbo.SOP10100.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.SOP10106 (nolock)  ON HAND.dbo.SOP10200.SOPTYPE = HAND.dbo.SOP10106.SOPTYPE  AND HAND.dbo.SOP10200.SOPNUMBE = HAND.dbo.SOP10106.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.RM00101 (nolock)  ON HAND.dbo.SOP10100.CUSTNMBR = HAND.dbo.RM00101.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.RM00103 (nolock)  ON HAND.dbo.SOP10100.CUSTNMBR = HAND.dbo.RM00103.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.IV40201 (nolock)  ON HAND.dbo.IV00101.UOMSCHDL = HAND.dbo.IV40201.UOMSCHDL  WHERE ((UPPER(ISNULL(HAND.dbo.SOP10200.ITEMNMBR,'')) LIKE '%098%') AND (HAND.dbo.SOP10200.SOPTYPE IN (3)) AND (HAND.dbo.SOP10100.DOCDATE BETWEEN  CONVERT(datetime,'20120101') AND  CONVERT(datetime,'20130430'))) UNION ALL SELECT 3 AS '1', HAND.dbo.SOP30300.SOPTYPE AS '2', HAND.dbo.SOP30300.SOPNUMBE AS '3', HAND.dbo.SOP30300.CMPNTSEQ AS '4', HAND.dbo.SOP30300.LNITMSEQ AS '5'  FROM HAND.dbo.SOP30300 (nolock) LEFT OUTER JOIN HAND.dbo.IV00101 (nolock)  ON HAND.dbo.SOP30300.ITEMNMBR = HAND.dbo.IV00101.ITEMNMBR  LEFT OUTER JOIN HAND.dbo.SOP30200 (nolock)  ON HAND.dbo.SOP30300.SOPTYPE = HAND.dbo.SOP30200.SOPTYPE  AND HAND.dbo.SOP30300.SOPNUMBE = HAND.dbo.SOP30200.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.SOP10106 (nolock)  ON HAND.dbo.SOP30300.SOPTYPE = HAND.dbo.SOP10106.SOPTYPE  AND HAND.dbo.SOP30300.SOPNUMBE = HAND.dbo.SOP10106.SOPNUMBE  LEFT OUTER JOIN HAND.dbo.RM00101 (nolock)  ON HAND.dbo.SOP30200.CUSTNMBR = HAND.dbo.RM00101.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.RM00103 (nolock)  ON HAND.dbo.SOP30200.CUSTNMBR = HAND.dbo.RM00103.CUSTNMBR  LEFT OUTER JOIN HAND.dbo.IV40201 (nolock)  ON HAND.dbo.IV00101.UOMSCHDL = HAND.dbo.IV40201.UOMSCHDL  WHERE ((UPPER(ISNULL(HAND.dbo.SOP30300.ITEMNMBR,'')) LIKE '%098%') AND (HAND.dbo.SOP30300.SOPTYPE IN (3)) AND (HAND.dbo.SOP30200.DOCDATE BETWEEN  CONVERT(datetime,'20120101') AND  CONVERT(datetime,'20130430'))) ORDER BY  '1'  ASC,  '2'  ASC,  '3'  ASC,  '4'  ASC,  '5'  ASC

Open in new window


I loaded the two start files into windiff and there are two differences toward the middle and end of the SQL string:

NoWork Middle:

(HAND.dbo.SOP10100.DOCDATE BETWEEN  CONVERT(datetime,'20120101') AND  CONVERT(datetime,'20130430')) AND (HAND.dbo.SOP10200.SOPTYPE IN (3)))

Work Middle:

(HAND.dbo.SOP10200.SOPTYPE IN (3)) AND (HAND.dbo.SOP10100.DOCDATE BETWEEN  CONVERT(datetime,'20120101') AND  CONVERT(datetime,'20130430')))

NoWork End:

(HAND.dbo.SOP30200.DOCDATE BETWEEN  CONVERT(datetime,'20120101') AND  CONVERT(datetime,'20130430')) AND (HAND.dbo.SOP30300.SOPTYPE IN (3)))

Work End:

(HAND.dbo.SOP30300.SOPTYPE IN (3)) AND (HAND.dbo.SOP30200.DOCDATE BETWEEN  CONVERT(datetime,'20120101') AND  CONVERT(datetime,'20130430')))

Any of that make any sense?
Near as I can tell, the start and stop SELECT commands are the same.

I have also created a DEX log if you'd be interested in seeing those.
Hi,

So I compared the initial select statements from the faulty and working computers, and agree both statements look the same.

There are two sections where the SOPTYPE IN (3) and DOCDATE BETWEEN are in different orders, but other than that, I don't see any differences.

Can you tell how many times the query is run for each workstation?

To make it easier to count and eliminate dups, I would recommend reducing the Events you have selected.  For instance, you don't need BatchStarted and BatchCompleted--just one or the other.

Attached is a screen shot of the events I have selected.  

Once you have reduced the events, try running the Profiler trace for the two workstations again and see how many statements are issued.

Also, can you post screen shots of your SmartList favorite Search window from each workstation?  I just want to confirm that the settings are exactly the same on both.

Lastly, can you select the SmartList favorite you are running, then click on the Favorites button, and post a screen shot of the Favorites options from each machine?

Sample screen shots of each attached.

Thanks,

Steve Endow
Dynamics GP Certified Trainer
Dynamics GP Certified IT Professional
EventsSelection1.jpg
SmartListSearch1.jpg
SmartListFavorites1.jpg
Ok... I think that I followed your directions.

On the working computer this smart list produced 649,014 rows.  After running it on the broken machine, there were 650330 rows.  That means that the problem machine added 1316 rows to the trace.

I have attached what is a pretty typical representation of what the trace looks like and the SELECT command for the highlighted row.  This one did not appear to pull in groups of 25 like yours did.  

I also posted the SmartList caps as requested.User generated imageUser generated imageUser generated imageUser generated image
Hi,

That is pretty puzzling.  So the SmartList Search options obviously look identical.

So a few questions:

1. Can you send me a screen shot of the SmartList (including main folder name and favorite name)?
2. Is this a standard GP SmartList, or a custom one created with SmartList Builder?

I'll profile the same / similar smartlist in my environment and see if it does the same Top 1 statements.  Seems terribly inefficient.

My wild guess at this point is that perhaps there is something slightly different on the problem workstation, such as a different SmartList DLL or dictionary file, that is executing the queries slightly differently.  If it is using a different sort order or index or is interpreting the results differently, that could theoretically (it's a stretch), result in the different number of records.

If this is valid, then one idea would be to copy the entire GP application directory from a working computer to a problem computer (i.e. Program Files\Microsoft Dynamics\GP2).  Then launch GP from that "working" copy of GP on the problem computer.  Then run the SmartList.  If that produces the correct results, then it is something with the GP install.  

Let me know if that makes sense.

Thanks,

Steve Endow
Dynamics GP Certified Trainer
Dynamics GP Certified IT Professional
Hey Steve,

I copied the GP folder from the working to a non working computer.  I called it GP2 and modified the dex.ini to reflect the new path.  Ran GP from the new location and it did the same blasted thing.

It's got to be something outside of the GP folder.

I also tried a complete uninstall and reinstall on the afflicted machine with the same results.

Any more ideas, or have I officially stumped you?
Hi,

Well, I think we've definitely covered the usual and unusual possibilities and ruled out any simple causes.

My last wild guess...

Open up the 32-bit ODBC settings on both machines and verify that the Dynamics GP DSN settings are EXACTLY the same.

Check the driver name and driver version.

Check the DSN name, server name, and all other options in the DSN (there should be no option boxes checked in the DSN settings)

If you notice even the slightest difference between the two, document it and set the problem machine the same as the working machine.

Some screen shots attached.

Thanks,

Steve Endow
Dynamics GP Certified Trainer
Dynamics GP Certified IT Professional
DSN1.jpg
DSN2.jpg
DSN3.jpg
DSN4.jpg
DSN5.jpg
Neither machine has anything listed under System DSN.  I take it that's unusual?

The SQL Native Client and SQL Server are the same versions as on yours and are the same on both machines here.

Would versions of .net have any relevance here?
Hi,

Sounds like you are using 64-bit machines.  Run the 32-bit ODBC admin tool:

C:\Windows\SysWOW64\odbcad32.exe

Thanks,

Steve Endow
Dynamics GP Certified Trainer
Dynamics GP Certified IT Professional
Ok... the ODBC stuff looks to be identical.

System DSN name was "Dynamics GP" on both

SQL Server was "ERP" on both.  It looks like I either re-image these machines, or MS is about to get another $300 of the companies money.
ASKER CERTIFIED SOLUTION
Avatar of Steve Endow
Steve Endow
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thanks Steve.. you have been awesome.  Even though we didn't get a resolution, you get the points.  You put in a fair amount of effort.  :)
Thanks