Gosh Folks…

…I can’t believe how long it’s been since I blogged.  Life has a way of plowing over the bandwidth to do so.

Tonight was the season wrap-up for the CMAP Certification Study Group.  We had a really great season.  This time we had two tracks – Business Intelligence and ASP.NET. 

At our final meeting we had three presentations in a row.  I presented two topics – the last part of a chapter from the business intelligence study track and, by request, a presentation on embedding .NET WinForm controls into web pages. Also, Jim Tomney presented on Model View Controller Patterns.

All in all, it was a full speed ahead meeting, but great information.  We concluded the evening over drinks and snacks at the local watering hole.

For those looking for my presentation on the embedded controls, I will be posting it to the CMAP site very soon and will try and blog that when I do.

Gosh…to blog again…how long until the next one?

Can’t Get Enough of that SBA – Sharing Templates

So it seems that my life lately has been SBA based.  It just happens like that I guess.  You get sidetracked on a product and want to completely digest the whole thing.  Such is the case of Microsoft Office Small Business Accounting 2006 – or SBA2006 for short.  In trying to really get behind the product I have been faced with the very many shortcomings that it has to offer…oh, I mean features!  And, well, there are a lot!  Not a bad thing considering the product is new, built by a software company that is trying to put accounting in the mix.  So, right now, there are certainly some grin-and-grunt issues that you just have to either overlook, code around, or find the answer in the answerless abyss.

As many who know me are aware that I am a strong advocate of running as a non-administrator privilege user.  This means, no “good” application should be writing to the system areas like “Program Files”, “Windows”, really – any other folder besides the folders that the user should have access to under their user folder (documents and settings\user).  And, I usually find many programs that offend this.  So, I look for the Designed for Windows XP certification to ensure that the product is designed to do just that.

Well, I have a retail copy of SBA 2006 right here next to me and it proudly displays that logo.  But, something that really bothered me about SBA is that it stores all of the letters and document templates in the Program Files folder.  OUCH!!  So much for Microsoft following its own certification program.  If only I could alert someone there that they are failing their own test.  Something that any other vendor would have to certainly correct before getting the logo.  Believe me, I have tried to contact them on other occasions about some other software that fails with the logo, but I have NEVER heard back from them.  I guess, in disappointment, that it really is just a money grabbing process with no real quality to speak of.

Well, all of that aside.  I still hang on to hope.  And, with the SBA application, there are some other very promising abilities that exist, well worth hanging on for a while.

Okay, so now here is the problem and answer:

Problem:  SBA stores letters and document in the local Program Files folder.

As mentioned this is a security issue from the point that a non-admin user must be given expressed permissions to modify the contents of the \Program Files\Microsoft Small Business\Small Business Accounting folder.  I was okay with this for a while (even though it ate at me night and day), until today I accidentally (not sure how) deleted a dll file out of there and I was no longer able to export properly to Word.  I quickly resolved the issue and copied the file from another install.  But then it ate at me even harder…If I can wipe out a file, so can anyone else, or worse, any of your favorite malicious code can do it as well. 

And, the plot thickens as I am now involved in deploying this application across a small business network…How to handle getting the proper versions of quotes, invoices, letters, etc. to everyone for their use.  Nothing worse than local copies of templates on a shared system.

Answer:  Use the shared “feature” in SBA

Here is an answer that did not come easy.  Thanks again to Lutz Roeder’s Reflector and a little sleuth work the problem is solved. 

It turns out that SBA was developed to use a shared folder – there just is nothing on how to do it (which is par for the course since even the most basic accounting operations have little to nothing on how to do them)  So here we go (You need admin privilege to do these operations):

  1. Go to your Control Panel – Administrative Tools – Microsoft .NET Framework 1.1 Configuration.
  2. Under Tasks, Click on “Manage the Assembly Cache
  3. Click on “Add an Assembly to the Assembly Cache or If you have been here before and “unchecked” the “Show this Help topic by default” then you are just seeing a list of configured assemblies at this point – right-click on “Assembly Cache” in the tree view and select “add”.
  4. Browse to the \Program Files\Microsoft Small Business\Small Business Accounting folder and find the SBAUI.DLL (if you have “Show Hidden Files and Folder” turned off, you will need to turn it on prior to this step)
  5. Click on SBAUI.DLL and click “Open
  6. Exit out of the configuration tool
  7. Run regedit  (Start –> Run –> regedit)
  8. Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Small Business Accounting\1.0\InstallRoot
  9. You should find a “Shared” key there.
  10. Double-click on it and enter the location of your choice. (it can be a UNC folder name if you want to avoid drive mapping.  I’ve even tried it with a sharepoint document repository…works great!)

Now – if you have already done some adjustments to letters and templates, then you will want to copy (I would leave the original in place just for the future) the “Basic Templates”, “Templates”, and “Letters” folder from the \Program Files\Microsoft Small Business\Small Business Accounting folder to your new location.  (May also be a good time to clean it up a bit and get rid of the one’s you don’t want.)

Okay…final step…start up SBA.  Go to “Company –> Manage Word Templates”.  Click on “Create” and you should see, to your hearts delight that it tells you your template will be saved in the folder you set up.  More proof…Click on “Company – Write Letters” (hit next on the wizard) and click "create" there as well as your final proof that the folder is now in a shared location.

I hope that this helps some one out there! 


Sept 11 – Added Additional Information

So, once you do this step above, you no longer have help.  That's right, hit the F1 or choose help from the menus and nothing!

So, here is the fix for that (again, admin privilege is necessary):

  1. Run Regedit (assume all the normal cautions here)
  2. Navigate to the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\HTML Help key
  3. Create a new String Value called SBAHelp.chm
  4. Modify the value to C:\Program Files\Micorosft Small Business\Small Business Accounting\
  5. Exit Regedit

You now have help again!! 

Next challenge is to do all of this through a GPO for install and configure. 

But, this could be a wasted venture since Micorosoft today informed me that this particular problem of storing the files in the Program Files folder is fixed in the new version….we shall see.  Sometimes their version of fixed is something totally different than you might expect.

Take two asprin and call it a day with SBA

What a headache!!

I had a battle today with the fairly new Microsoft Office Small Business Accounting package.  From an earlier post I mentioned a little development application based on this platform…but that’s not what I’m here to barf about today…

So you would think that a logical way to go (speaking about selling this application to companies…which is what I seem to do these days) is to install the trial version (a great 20-use trial, 5 of which get burned just setting it up for the customer) and let them kick the tires.  Then, when they have a smile on their face, purchase a volume license and deploy.

But NO…this is not a clean way to go.  Microsoft made it that you can simply purchase a retail license when you hit the end of your trial and punch in the license key.  That’s nice in a one or two license situtation, but if you want volume license, here is a word of advice…

The Problem – the Trial will not go away!!
You would think that an uninstall (complete) of SBA (the trial) and then an install from the Volume License CD (VLCD) would be the answer.  Mostly because the VLCD does not have a license key…it is baked into the install.

So you install from the VLCD on a virgin machine and when you run it, it shows the product key already entered (with ‘*’s) for you.  Click next and you are done.

So you install from the VLCD on a machine that had (note: HAD since you uninstalled) the trial.  You run the app and it says, “this is a Trial version…wanna buy a license”…No thanks, already have one.

You’ve done your homework, searched everywhere, contacted Microsoft (up to the point of paying for support) and still no answer.  You’ve religiously followed the detailed uninstall guide in the Microsoft KB (http://support.microsoft.com/kb/897877) …nothing, it still thinks it’s a Trial version.  (By now you are down to 0 uses most likely)

The Answer – Seek and destroy.
Well, when anything really stumps me, it is usually a quick trip to http://www.sysinternals.com.  My favorites, FileMon and RegMon.  Well, FileMon was the hero this time.  I was able to determine that out of all the places that the KB article listed, they forgot one. 

Under \Documents and Settings\All Users\Application Data\Microsoft\Small Business Accounting  you will find a pa.dat file.  When I killed this file, all of a sudden when going back into SBA, instead of the “buy a license” screen, I was treated with a activation screen with the license key entered (in ‘*’s) for me.

Problem solved!!

So, since I saw no other information on this and since (according to Microsoft) SBA is becoming popular, I would think there will be many that might run into this.  In fact, I haven’t tried this, but I’m not sure if killing that file will start your 20 uses over again with the trial…I hope to not have to find out.

The day of the dead

So my day was abruptly broken up by two calls for ‘dead’ computers.  One was a simple ‘hangover from hibernation’.  When your on a portable computer and rely on hibernation, you sooner or later experience the ‘hangover from hibernation’ syndrome where it “kind of” came back from hibernation, but it really is not functioning.  Usually a whack with the power button is the cure.


But, the other was not such the case.  Here is a customer (well – sort of) that I have been trying to emphasize the importance of routine computer cleaning.  This is one of those services that we offer to customers where on a twice a year basis, the computer is torn down, dust bunnies blown out, fans oiled and inspected or replaced and then some follow-up software cleaning (defrag, non-critical updates, etc.) is done.


This customer doesn’t see the need for it and would rather pinch a few pennies to save a few dollars.  Even though that grinding noise has been going on for some time now, and even though I have emphasized the need to take care of it now…the dude decided to ignore it.  Well, today is the day!!  And now that it no longer makes any noise, nor for that matter does anything at all, it is most likely time for a new CPU, motherboard or both (or more).  The cost will certainly dwarf the cost of routine cleaning.


This is not unlike anything else…wait until something goes wrong.  The doctor, the dentist, the mechanic all have similar stories.  Heck, we’ve heard about them in the IT world with backup for ages.  Well, today was just another one of those days.


Of course, I can also add the stories of those that resist running as a non-admin user that claim they will be just fine…until that day came where I got the chance to look at them with that “I told you so” face.  Prevention is cheap – Repair is expensive.

Yet another posting…

…what’s the world coming to??  I’m trying to at least get a post a week out.  But, in reality, I’ve not much to blog about.  It has been a busy week – between business and life.

I’ve had some fun with building an application for Microsoft Small Business Accounting.  It’s really interesting to see how “fresh” the product really is.  One thing for sure is that it is at least all written in .NET (unfortunately 1.1).  That has been a great thing since there is VERY little documentation or help available for most of the methods, properties, etc. on the classes of the SDK.  Well, nothing a little Reflector (http://www.aisto.com/roeder/dotnet/) can’t help with.  There are still some mysteries, but Reflector and a little time goes a long way.  My application is far from complete, and now that I have at least prototyped the functions needed from SBA, my attention is now turned toward the UI – which is a WinForms app.   But, man…after working in VS 2005, I am back in 2003 and really miss the 2005.  I understand that I can perhaps use 2005 for the development, but there are some tricks to getting it to work…somehow I am finding that the parts I am missing from 2005 are easier to get around than figuring out how to deal with this in 2005.  Maybe it will come to me.

As a side note on the whole SBA thing, I was sorely disappointed that there were some “key” capabilities lacking from the SDK that I found only a SQL query would do.  That really sucks because now my application is SBA version locked.

’til next time.

Let’s get ready to rumble!

Okay, so I have resisted the blog for many years now.  Not because I don’t like them – not the case at all.  I read many of them and enjoy the good stuff available (some of the wacky stuff too).  My resistance to my own blog has been about keeping one current.  I guess I always felt that my blog would be a “one entry” blog….maybe this is it!  I always felt that after a day of problem solving, business building, knowledge enhancing and so forth, more time typing about it was going to cause me to go crazy. 

Well…I’m going to give it a go and see how well I can fit it into my life.  I know I certainly run across many areas that are worth blogging about, so I should be able to produce something.

Let’s see how it goes.