If you take a look at the Intuit Marketplace, several applications state they have “syncing” capabilities with QuickBooks. If you have ever shopped for an add-on to QuickBooks, you know that the degree in which these third-party applications can sync with QuickBooks varies depending on who created the application.
The QuickBooks SDK allows developers to also create “listening” add-ons to QuickBooks. So your next question is going to be, “What are listening add-ons” right? These are QuickBooks third-party applications that keep an open ear to activity that is taking place in QuickBooks while it is open. When something does happen in QuickBooks (such as adding a customer, creating a new item, etc.), it then notifies the third-party application that something has taken place. The third-party app can stay current with what is happening in QuickBooks without having to perform a manual sync process. Sounds good, right?
Here in lies the problem. Many of the developers out there are writing poorly written apps that use these “listening” abilities. As a result, they cause QuickBooks to slow down in performance and end up wasting any time that was saved through the automatic syncing process. Not only that, it gives us “good guys” a bad name. By “good guys” I mean, software developers who write properly written programs.
Naturally, when a person experiences this, they easily lose faith in “listening” applications and won’t want to use or recommend them to their customers. So here are some quick things you should know about well-written and poorly written programs.
First the “bad guys” or poorly written program:
The program acts ‘synchronously’, in that it will perform extra functions during the listening. This means QuickBooks has to sit there and wait for those functions to complete before moving on to do more important things.
So breaking that down into more detail:
- QuickBooks provides the event details that are taking place to the third-party application.
- App then performs one or more additional functions like getting more information from QuickBooks, updating its own database with changes, etc.
- App then returns control back to QuickBooks so that QuickBooks can continue doing what it was doing before.
Now the “good guys” or well written program (like Method of course! WOOT WOOT!)
The program acts ‘asynchronously’, in that it will immediately return control back to QuickBooks and perform any additional actions on its own time.
So what does that mean?
- QuickBooks provides the event details to the listening app.
- App simply takes note of the event details.
- App immediately returns control back to QuickBooks so that QuickBooks can continue doing what it was doing before.
- App, on its own time, performs additional functions like requesting more information from QuickBooks, updating its down database, etc.
So there you have it! Next time someone asks you “Can poorly written add-ons to QuickBooks slow things down?” you’ll know exactly how to answer. Or at the very least, point them to this article.
Cheers,
Danny Do Couto
Method Integration