Showing posts with label QBFC10. Show all posts
Showing posts with label QBFC10. Show all posts

Monday, 25 April 2011

Windows - No Disk - unhelpful Error Help messages

Windows - No Disk
Exception Processing Message c0000013 Parameters 75b6bf9c 75b6bf9c.


I am trying to run a QuickBooks QBFC 10.0 C# application and every time it tries to BeginSession I get this error...  Continue / Try again / Cancel...

I presume the "No Disk" error could indicate that there's a link to a file missing... nothing has changed...

Whilst searching for a solution I discovered www.wiki-errors.com - a good idea I thought - but 1) it took this meaningless error and threw a load of meaningless rubbish back at me... I am no wiser why the problem occurred and I have now spent another 10 minutes reading something that didn't help... 2) I can't edit the Wiki at Wiki-errors.com ... doesn't that defeat the purpose of a wiki?  I can't see how I can sign up and edit it either...  a truly beautiful social solution would be to allow lots of technical minded people look up an error and add our experiences to the solution... I want to edit that page and tell my solution...

but no.. I have now added yet another blog post to the massive number of blog posts about the "Windows - No Disk" error that is probably not very useful to anyone unless they happen to be developing QBFC10.0 in C# and one day their install goes tits up...

Quick solution:  If you're using a third-party library and developing software... just reinstall the software... see if that helps...

Actually I am not sure that was the answer now... there's a property on the referenced Interop.QBFC10lib.dll

  • Embed Interop Types = True / False - I changed this from True to False as well as re-installed the underlying library... so either change could have resolved the problem...
[Edit]
Just when I thought it was all fixed up... I now get the error again... it's gone from working to not working in the space of a blog post.

Well on further reading through the internet sludge... I have switched back to debug again... when I press Continue my program does actually run... it was not obvious at first because the program returns no data on first run at the moment, whereas it would have done a week ago, I forgot...  so stepping back through the pages, I can actually see data.  But I get the No Disk error every time I begin a session with QuickBooks.

I've got a couple of USB storage devices plugged into this laptop: an external USB HD and my printer has a card reader.  When I disconnect my printer, the error goes away.  When I connect my printer the error returns.  The external HD makes no difference.

Recap.. my printer's card reader is throwing an error in my C# QBFC10lib project when I try to create a session... because there is no sd/cf card in the printer.  That's crazy... How on earth do I prevent this on user's computers... I am calling the BeginSession with a blank field... that's supposed to find the QB file that is currently open.  So the QuickBooks SDK  is calling a Windows function, that is returning a 'No Disk' error... shouldn't QuickBooks deal with that?

Why provide us with a function that will bomb out randomly?

New Solution:   Don't let QBFC10lib search for the file you need to access.  Specify it.

Now to fix this inconsistent accessibility error (compiler error CS0051)...
Inconsistent accessibility: parameter type 'type' is less accessible than method 'method'

Resolved... seems that if you declare a public method, then all the types used as parameters must be declared public too... like selling a DVD of a film to everyone and only allowing the film to be played by DVD players in the right region...  or like distributing a software library which will bomb out randomly under certain unhandled circumstances...

Friday, 26 November 2010

Quickbooks SDK and Quickbooks Pro 2005 (UK)

I seem to have dived into the deep end... there are many versions of Quickbooks... and many versions of qbXML... many versions of QBFC ... and QBXMLRP ... slowly I think I might be getting my head around these ...

I've just got my code to open, begin, end and close a session with an open copy of QB Pro 2005 (UK) .. only to spend hours struggling to find out why I am getting all these "Unrecognised qbXML Version".. or "qbXML Version not supported"...

After every possible combination of SessionManager.CreateMsgSetRequest("", _maxQbXmlVer, _minVer)

Finally someone has talked some sense... QBFC10 DOES NOT SUPPORT UK3.0 ... ah... that's why I get "Country Code Incorrect".  Ok .. what does?  Hmm it appears that QBFC5 might be the only one that ever supported UK3.0...

One blogger, Doug Vanderweide, laments: "the quickbooks SDK, one of the sorriest, worst-documented excuses for a programming tool I've ever encountered." - I totally agree... I've been sitting here for 5 hours at least, and I've got so little done compared to nearly every other SDK I've ever used (perhaps apart from one mapping COM component - an early version of CadCorp).

Is it worth me plodding on?  The handy QBFC10 functionality is not available to QB2005... the client will be upgrading to 2010/2011 in the next 6 months... Let's first see if I can squeeze some functionality out of QBFC5... then have a quick go at using the QBXMLRP...(qbXML Request Process - basically XML-SOAP)

Success - QBFC5 did it! it works with values ("UK",3,0) if anyone is looking for that detail - unlikely but then I was... 6 hours to populate a spreadsheet with Customer details from QuickBooks... 24 rows... I could have typed that in a few minutes!  Their other database has 20,000+ records... So let's move one step at a time...

If I could used QBXMLRP then I'd have access to version 4.0?  Or is that just the US version?  I think the UK version is still UK3.0...  Ok... well it's good to know for future reference, that we're quite limited in what we can do if the client has a version less than QuickBooks 2008/2009 (UK) (qbXML v6).  QuickBooks 2010 UK supports up to qbXML Specification version 8.0. (US versions support up to 10.0)

right.. now to move the whole thing from Excel to Visual Studio.NET 2010... maybe fill some entities instead of the spreadsheet...

there are two QuickBooks SDK integration tools available that take all the pain from using the SDK - by RSSBus and n/software... but the one thing lacking from their websites was any indication of whether it would work with my version of Quickbooks... or any version... I think that should be made more obvious... I wasted enough time with the SDK... on top of that I wasted more time messing around with trial software that just wouldn't work on my version... I don't even know what versions those tools work on... it's near misleading, given the number of versions of Quickbooks still in the wild...  and these tools AND the SDK would help us out a great deal if it said - "Error: this SDK WILL NOT work with your version of Quickbooks in your country"