Friday, September 19, 2008
Another gem found!

For those who love Excel and Great Plains, here's a quick (5 minutes) video intro on how to do Excel Based Budgeting in Great Plains.

Thanks Dynamic Shepra and the guys at!

Here's their website, chock full of other GP video how to goodness!

- Dave
Tuesday, August 26, 2008
I see how it is. Always keeping us on our toes. But I found you. The FRx labs I "discovered" a while ago disappeared on me, but I found them again. Ha ha!
Monday, August 25, 2008
Check it out, the Dynamics Road Show is Coming to a City Near You!
Monday, June 23, 2008
Check out my .NET User Group blog for a link to a TechNet Plus Direct Subscription give-a-way that I am running!
Tuesday, May 27, 2008
I'm attempting to upgrade to GP 10. I've run into a few snafu's and I thought I'd post them here (with my solutions/work arounds) to help anyone else out that might be encountering similar snafu's.

When attempting to install GP 10 SP1 on a PC with NET 2.0 SP1, I got an error like so:

"Product: Dexterity Shared Components -- .NET Framework 2.0 is not installed. The installation cannot continue"

Well, come to find out, the GP 10 installer checks for .NET 2.0 but has an issue if you have .NET SP 1 installed.

The work around is to uninstall .NET 2.0 SP1 (and in my case, .NET 3.0 as well) and then my install got past this particular error.

If you don't have the luxury of uninstalling .NET 2.0 SP 1 (as most people don't), you can try this fix from MS:

Good luck and let me know how you make out!
Tuesday, April 22, 2008
I recently had a fight/set up transactional replication (with updating subscribers!) on my databases.

Here's some of the crazy stuff I had to do:

1) Go into the bowels of my DCOM security setup and open everything up (more details to come).

2) Run msdtc -install / hack the registry / run msdtc -reinstall.

3) Create some funky looking user in my SQL db so that trusted authentication would work for connecting to the distributor.

4) Enable MSDTC on my servers (since its disabled by default!), which involves doing an install of the MSDTC windows component (makes me wonder why they didn't just call in installing MSDTC versus "enabling" it?)

5) Had to create a linked server specifically named with my Server Name

6) Had to go into Windows Firewall and add port 135 and the MSDTC program as exceptions, even though Windows Firewall wasn't running!

7) Used tool DTCPing to tell me I wasn't crazy. But it reported everything was successfull, even though I couldn't get a distributed transaction to run, so I am crazy! :-)

Whew. OK. This is just a first post to vent my frustrations with setting up replication. I promise to come back and tidy this up with more details, screen shots, and KB links!
Tuesday, April 15, 2008
I stumbled on this little gold nugget by accident.

Great way to check out FRx using a hosted virtual lab! Nothing to install, runs in your browser, and comes with a nice little Hands On Lab type walk through.

Check it out!

(UPDATE: The labs moved! Here they are:
Friday, March 28, 2008
MES (from the GP public newsgroups) had an error when attempting to use Integration Manager:

"Operation must use an updateable query"

I love these kind of error messages, because they're just so darn recognizable. (I'm not kidding, really, its quite sad when you can recognize error messages, like, "Hey, there's Larry!")

I instantly recognized this to be an Access database error that occurs usually for one of two reasons (actually its the same reason, the database cannot be written to, but there's two different causes).

The first cause is if the Access .mdb file has been marked with the readonly attribute. This can happen when you copy it from a CD or if you inadvertly had it selected when you selected another file and marked it for read only.

The second cause (and more common, I think) is if you don't have permissions to write to the database, which was the case for MES.

Which Access database file am I referring to? The IM.mdb file that Integration Manager uses to store its integration definitions.

So, if you get this error when trying to run an integration, make sure that the user who you are logged in as when trying to run the integration has permissions to write to the IM.mdb file!

If that aint it, make sure the file hasn't been marked read only.

Happy Integrating!
Thursday, March 27, 2008
So, a user by the name of 2020 asked on the newsgroups the other day, how can we disable outlook on the Great Plains home page?

I happen to have had this same issue and using my trusty SQL Profiler, I found that when I manually uncheck Outlook from my home page, GP ran a SQL statement like the following :

SET Visible = 0
AND Visible = 1
AND USERID = 'dpatrick' -- comment this if you want to do it for all users
AND SectionID = 2

This works great, but it doesn't actually stop any particular user re-checking Outlook on the home page (but it got me what I wanted, which is to default Outlook to being off for everyone).

Dave Musgrave, from Microsoft, later chimed in and gave us this link:;en-us;918313

which discusses how to actually disable Outlook from the homepage (and uses a script that looks pretty close to the one I use).

Good stuff!

Thanks Dave and thanks 2020 for asking the question!
Tuesday, March 18, 2008

Neil Jordan shot me an email about one of my recent posts and mentioned that it would be nice to have a central place to discuss GP Developer related issues.

I agreed that it would be nice to have a central depot for sharing GP developer information.

The challenge I find is that there already are several "central" places to share info, and the fact that there are several of them kind of takes away from any of one of them being the "central" one!

That said, here's my short list of GP dev resources:




Great Plains Microsoft Public Newsgroups

There's two newsgroups here, Microsoft Dynamics GP and Microsoft Dynamics GP Developer, make sure to check both.

Watch out for the occasional SPAM post and make sure to modify your email address before you post, something like, so as not to get SPAM'ed.


Log in required, but worth signing up if you're a GP customer

Lots of good stuff, access to the Knowledge Base is probably what I use most


You mean you're not a partner? Why not become one!

Lots of good resources here for partners.

Great Plains User Group

Not free, but host web based meetings, so you can join from anywhere

Experts Exchange

Free to read, costs money to ask your own questions, but could be well worth it!

One of only a few GP Developer blogs that I know of

GP Dynamics

Lots of free GP SQL scripts

Micosoft Dynamics Forums

A non-MS newsgroup dedicated to Dynamics

Tech Round Up

A friend of mine's (and GP MVP) GP dev blog. Hasn't been updated in a while, but still lots of good stuff!

Great Plains Guy

This blog!

If I had to pick one to be the grand daddy central place, it'd have to be the GP newsgroups (but there really are 2 of them that I check, so I guess I still can't pick just one, ack!).

The nice thing about the newsgroups is that they are read and answered by MS folks and (even better) by MVPs. So, it's not a bad place to voice your concerns, share your issues, and sometimes even help your fellow GP dev guy out.

Do you have any resources to add to my list? Maybe we need a central list of GP dev resources? Maybe a wiki or something?

What do you think?

Wednesday, March 5, 2008

I mentioned yesterday that I had to restore some Item records after making a horrendous change to one of my Unit of Measure Schedules. It occurred to me that not everyone may be familiar with the underlying GP tables, maybe because they are named oh-so-intuitively...NOT!

So, for those of us who can't read minds, here's two ways for finding out what the table IV00106 really is. From the GP Menu, select:

Tools >> Resource Descriptions >> Tables

That pops up the Table Descriptions window. From there you can click the elispes to select a table.

Once you select a table, you get the down and dirty details.

Another way, which is actually the way I use most of the time, simply because it's a quick and dirty look up using SQL in Query Analyzer (or SQL Server Management Studio, as it's now called, but I still like the old name) , which is where I am at most of the day. So, without further ado, here's the script:


Gives you all the physical table names, what series they belong to, and a little descriptive info on what the table actually contains.

While the first way to obtain table info (i.e. through the GP GUI) certainly gives a more complete picture, the second way (i.e. through SQL) usually gives me what I am looking for.

Have fun!
Tuesday, March 4, 2008

I made a change to one of my Unit Of Measure Schedule's yesterday, trying to figure out why one of my items didn't have a unit of measure showing in one of our custom web pages that query from the Great Plains database. Turns out that the item's default purchasing unit of measure was left blank and that was the culprit, because that's the field that our custom web app displays.

But, in my debugging efforts (and yes, I *know* I shouldn't have been messing around in the production environment, yes - we have test and QA and DEV environments, any one of which would have been a better choice to experiment in, BUT I didn't think my change was going have to be saved (where are you UNDO?!?!) and I didn't think the change to my UoM Schedule would result in the deletion of records from three different tables! Yes, the change I made, after saving, caused about 16000 records to be deleted from each of 3 IV tables. Eeeks!

Yes, Great Plains did warn me, something along the lines of "your price list and options will be lost", but who pays attention to that stuff. :-)

Ah well, lessons learned. I had to do a restore from the night before (thank God for my back ups, which I test almost too much) and copy all my deleted records from the following three tables:

IV00106 - Item Purchasing Options
IV00107 - Item Price List Options
IV00108 - Item Price List

So, just a little drama and no permanent damage done (I hope!).

The moral for today is, be careful what you tinker with in Great Plains, sometimes it wont let you out without saving (see my earlier post/rant) and sometimes what seems like a small change can result in big changes!

Sign up to get 40% off new exams on Visual Studio 2008 and SQL Server 2008!
Tuesday, February 26, 2008
Ever make a change to a PO that you didn't want to?

You know, before it's received, like to an item's price or something, and then decide, oh crap, I didn't want to do that!

So, you click the little X in the upper right corner to get out of the window and what pops up? This:

So, I click Cancel, thinking, yes, I want to cancel, get out, go away, stop the edit! But, guess what, as I'm sure we all know, clicking Cancel doesn't get out of the PO Entry window, oh no, it just plops you back into it. And there's no undo, no quit, no exiting, nothing!

I have short term memory issues and I can't remember what the price just was that I changed! So, I have to go look it up and put it back the way it was. Ugh! Too much effort.
Why can't I just close the window WITHOUT saving???

Tuesday, February 19, 2008
So, I am attempting to install FRxForecaster and as part of the oh-so-easy (not!) install instructions, it asks me for my company ID. Huh?

I don't know my company ID! I know the name, and I guess I can guess that my company ID might be 1, since the default company record that the FRxForecaster install has listed has a company ID that is zero (and 1 comes after zero, as my son might tell me).

But I need to know for I am off to try out my google fu....

Minutes later (because that's all I have the patience for)...NOTHING.

Ah well, so, I remember from one of my many GP upgrades that I had some script somewhere that told me what companies I had installed and what was their various state of upgradiness. I also remember distinctly that the script showed me what my company ID was (I also remember seeing one company ID listed as somthing like -32676, which was weird. I think it might have been TWO).


So, I go digging through my scripts archive ('cause you know I keep them all, hey, drive space is cheap!) and voila!, here it is:

SELECT b.fileOSName, a.Status, a.errornum, c.INTERID
FROM DYNAMICS.dbo.DU000030 a
JOIN DYNAMICS.dbo.DU000010 b ON a.fileNumber = b.fileNumber
JOIN DYNAMICS.dbo.SY01500 c ON a.companyID = c.CMPANYID
WHERE a.Status <> 0 or a.errornum <> 0

From this script I gather that the SY01500 table is the one holding my company info (and ID!). Sure enough, the following gives me my answer:


which is, in my case, (ready for it?):


I know, I know, kind of anti-climatic, but whatcha gonna do.

Until next time...
I've been asked this a few times, and so, I thought a post might be in order.

If you ever get "locked" out of the system, i.e. something crashes and then you cannot log back in, this little piece of SQL will kick everyone off ( or,more specifically, it will delete everyone's login from the activity table):


In Great Plains 7.5 and below, this was a life saver. You could also do individual users like so:


In Great Plains 9 and above, they now have a nice window that pops up that lets you delete yourself, if you happen to already be logged in, so the theory is that this script is no longer necessary.

But wait!

That assumes that that little window will still pop up after a crash. And sometimes, after a crash, all bets are off, so I still keep this little guy handy, just in case...
Here's a site full of handy SQL scripts for us Great Plains guys:
Friday, February 15, 2008
I've started this Great Plains Blog to try to help people avoid the mistakes I've made when developing for, customizing and working with Dynamics Great Plains. I've been using since version 6 and I'm currently on version 9 at the moment, and will soon be making the leap to 10.

I hope to post various tips and tricks, interesting bugs, cool work arounds, and maybe even a few good SQL scripts that have made my life easier.

Good looking out!