We use QuickBooks for financial management, and feed it from a variety of sources. I now need to hook it up to BizTalk, and I'd hate to reinvent the wheel. I've done searches, and as far as I can tell there's no QuickBooks adapter for BizTalk. Does anyone know of anything that'll do the job, preferably something that doesn't suck?
Quickbooks talks .NET quite easily. You'll need the QuickBooks SDK 7.0 and a copy of Visual Studio.NET, but after that it's very easy to do anything with Quickbooks.
Imports QBFC7Lib
Sub AttachToDB()
If isAttachedtoQB Then Exit Sub
Lasterror = "Unknown QuickBooks Error"
Try
QbSession = New QBSessionManager
QbSession.OpenConnection("", "Your Company Name")
QbSession.BeginSession("", ENOpenMode.omDontCare)
MsgReq = QbSession.CreateMsgSetRequest("UK", 6, 0)
MsgReq.Attributes.OnError = ENRqOnError.roeStop
Lasterror = ""
isAttachedtoQB = True
Catch e As Exception
If Not QbSession Is Nothing Then
QbSession.CloseConnection()
QbSession = Nothing
End If
isAttachedtoQB = False
Lasterror = "QuickBooks Connection Error. - " + e.Message + "."
End Try
End Sub
See http://developer.intuit.com/ for more information.
Doesn't the QB SDK require that Quickbooks be running on the client machine? Is there any way around it?
Unfortunately it does. It also asks you to authorise any application you've built. (at least once.)
I don't know any way around it.
If you do build the integration code using .NET, you may want to consider leveraging the WCF Line-of-Business SDK:
http://www.microsoft.com/biztalk/technologies/wcflobadaptersdk.mspx
It's not a BizTalk-only technology, despite its categorization. The SDK is designed to make it easier to create a WCF channel to a LOB application, which can be consumed from almost any other platform.
The QB SDK does not require that QuickBooks be running on the client machine. It does require that QuickBooks is installed on the client machine. You can access QuickBooks company files even if QuickBooks is not running though.
Have a look through the SDK docs. Additionally, when QuickBooks first prompts you to authorize the application, you need to make sure to tell it to allow access to the company file, even when QuickBooks isn't open/the company file isn't open.