Search code examples
quickbooksqbfcqbxml

Quickbooks time tracking


I'm in charge of a time clock system which provides easy access for our employees to enter their hours and then publish those hours into quickbooks

This has thus far not been a problem as we have utilized the web connector to interface with a web service which supplied the currently pending time sheets to the system using qbXML time tracking add request objects

Let me preface this by saying that this system works perfectly fine, but we feel like this is not the best way to do what it is that we want to be doing. Here is why:

When we pull in hours, each individual hour block (i.e. 4 hours of vacation, 8 hours of regular pay, 2 hours of overtime) is a separate time tracking add request. As our company has kind of locked themselves into using a company file instead of using a quickbooks database, this adds a lot of individual entries into the company file. We have had to have intuit perform archiving and optimizations to our company file in the past to alleviate problems that this creates (such as slow downs, or the inability to run reports entirely)

Now, there is a single solution that I have found for this, but it's only really a small patch: We can pull in hours on a weekly basis rather than on a daily basis...this means that each week will have one entry of 40 regular hours on Monday rather than 5 entries of 8 regular hours tied to the appropriate weekday. I don't mind this solution, but it doesn't seem like the right solution...

What I'm looking for is a means of bulk adding in time sensitive data in a single call. This means that when the web connector launches and pings my web service, it should return all of the data in a single transaction instead of in a multi-transaction system (which would create one transaction in the company file rather than thousands)

This is probably not possible, but as the Quickbooks documentation is rather lacking I figured I would propose a few questions to the crowd here to see if anyone has found a better solution:

  1. Is there an alternative to timetrackingaddrq that allows you to enter multiple payroll wage item entries, each tied to a specific date? This would be the equivalent of entering all the hours for each week as a single request, but without requiring that these hours be stored all on a single day

  2. Is there a way to return a list of timetrackingaddrq objects (or the alternative as posed in question 1) which Quickbooks can parse through rather than returning each request individually over the web service call?

I understand if this question does not fit in the rules of stack overflow, but seeing as this is the only source that appears to have any kind of activity I hope that this would be the best place to find suggestions. The Intuit forums are quick lacking in the terms of developer assistance...


Solution

  • First, please allow me to respectfully disagree with you about the Intuit forums. I visit both StackOverflow and the Intuit forums regularly, and in my experience the people who answer QuickBooks questions on StackOverflow are generally regular contributors to the Intuit forums.

    Now, on to your question: you've already acknowledged that your system is working well and doing what you want it to. Your sole problem is behavior of QuickBooks in the presence of large numbers of transactions. It is an unfortunate fact of life that QuickBooks can suffer from occasional company file corruption under heavy use. Here's how to deal with this problem:

    1. Make sure you're using the most recent version of QuickBooks
    2. If step 1 doesn't work, be sure you upgrade to QuickBooks Enterprise if you haven't already.
    3. If step 2 doesn't work, then you must institute a policy of cutting your company file over as often as you need to. For example, you could start a new company file every 4 fiscal years.
    4. If you're using QuickBooks Enterprise and cutting your company file over every fiscal year, and you're still seeing problems with file corruption, you should not be using QuickBooks. Note I've seen some very large enterprises use QuickBooks and I've never seen this scenario.

    The core problem you're dealing with is revealed by this remark:

    As our company has kind of locked themselves into using a company file instead of using a quickbooks database

    This is not very clear, but here's what I think this means: you are using an old copy of QuickBooks that is not the Enterprise edition. If this is the case, then I would definitely recommend following the steps outlined above. I'd also recommend you contact a QuickBooks ProAdvisor and let them review the situation. Trying to solve this problem using programming is a bad idea.

    This question (and this answer) is definitely off topic for StackOverflow, and it might be, indeed should be, closed before too long. But I wish you luck! And please don't be a stranger to the Intuit forums, there are plenty of answers there if you know where to look.