[QODBC Online] QODBC Online: Resetting/Clearing ProjectRefListID on BillExpenseLine
Problem Description:
In earlier versions of QODBC Online, attempting to update or clear the ExpenseLineCustomerRefListID (also known as ExpenseLineProjectRefListID) field on the BillExpenseLine table would fail - even though the SDK API permits QuickBooks Online to accept such updates. This was tracked as internal bug B01772.
Affected products: QODBC Online (prior to B01772 fix), QuickBooks Online Expected outcome: You can reset or clear the Project reference on any BillExpenseLine record via an UPDATE query, after installing the beta build that resolves Bug B01772.
Symptoms:
- An UPDATE on the
BillExpenseLine table fails silently or returns no error when attempting to change the ExpenseLineCustomerRefListID / ExpenseLineProjectRefListID field.
- The existing Project reference persists in QuickBooks Online despite the UPDATE query reporting success.
- The issue is specific to QODBC Online - the same query works correctly against QODBC Desktop (QuickBooks Desktop).
Cause:
Bug B01772 in QODBC Online prevented the driver from properly resetting or updating the Project/Customer reference on BillExpenseLine child records. This was a driver-level limitation where the ODBC layer did not pass the project reference update to the QuickBooks Online SDK correctly. A fix was developed and released as part of beta build B01772-beta-2025-02-11. The issue has been fixed and released in QODBC Online version 360.
Resolution:
- Install the QODBC Online beta build that fixes Bug B01772.
Download from: https://qodbc.com/download/beta/Fixes/B01772-beta-2025-02-11/B01772-beta-2025-02-11.exe Before installing, back up SocketReceiver.exe from C:\Program Files (x86)\QODBC Driver for QuickBooks Online\QBO\. Close all applications using QODBC Online and kill SocketReceiver.exe from Task Manager before overwriting.
- Use an UPDATE query to reset or change the Project reference on BillExpenseLine. After installing the fix, use the following SQL pattern:
UPDATE BillExpenseLine SET ExpenseLineCustomerRefListID = '', ExpenseLineProjectRefListID = '' WHERE TxnID = '<transaction-id>' AND ExpenseLineTxnLineID = '<line-id>' AND ExpenseLineSeqNo = '<seq-no>'
To set a new Project reference instead of clearing it, replace the empty string with the target ListID:
UPDATE BillExpenseLine SET ExpenseLineCustomerRefListID = '<new-list-id>', ExpenseLineProjectRefListID = '<new-list-id>' WHERE TxnID = '<transaction-id>' AND ExpenseLineTxnLineID = '<line-id>' AND ExpenseLineSeqNo = '<seq-no>'
Example Scenarios:
Scenario 1 - Clearing a project from a bill expense line:
A customer needed to remove the project assignment from an existing BillExpenseLine record. After installing the B01772 fix, they ran:
UPDATE BillExpenseLine SET ExpenseLineProjectRefListID = '' WHERE TxnID = '343' AND ExpenseLineTxnLineID = '1' AND ExpenseLineSeqNo = '1'
The project reference was successfully cleared from the QuickBooks Online bill.
Scenario 2 - Reassigning a project on an expense line:
A company needed to move an expense line from one project to another. After installing the B01772 fix:
UPDATE BillExpenseLine SET ExpenseLineCustomerRefListID = '8A', ExpenseLineProjectRefListID = '8A' WHERE TxnID = '343' AND ExpenseLineTxnLineID = '1' AND ExpenseLineSeqNo = '1'
The expense line was reassigned to the new project in QuickBooks Online.
Additional Notes:
- This bug only affected QODBC Online - QODBC Desktop had no such limitation since the QuickBooks Desktop SDK natively supports updating the Project reference on expense lines.
- Bug B01772 is resolved in QODBC Online build 24.0.0.358+ (and later). If you are running a newer release, this issue should not occur.
- The Project reference uses the same ListID field as the Customer reference on BillExpenseLine - projects in QuickBooks Online use the Customer table with
<isProject> = true. This is why both ExpenseLineCustomerRefListID and ExpenseLineProjectRefListID may appear in queries.
- Always test beta builds on sandbox data first. The B01772 fix involves replacing a core binary (
SocketReceiver.exe) - ensure you have backups and verify functionality before deploying to production.
Related Articles:
QODBC Online: FQSaveToCache Field Restrictions for Parent and Child Tables
Keywords:
B01772 BillExpenseLine ProjectRefListID CustomerRefListID QODBC Online Reset Project Update Expense Line QuickBooks Online SocketReceiver.exe Beta Fix
Support Tickets: KHH-312-68538
|