1

I am using the QuickBooks SDK version 12 to connect to QuickBooks Enterprise 2013. I am trying to add an Item Receipt through the api using the xml request below.

I turned on verbose logging and captured this error:

Cannot set unassigned RSB in transaction line item(s). QuickBooks error message: A row/shelf bin was expected, but an inventory site was selected. Source: .\src\ItemReceiptStorage.cpp line #591 HRESULT=0x80043973

The QuickBooks user had Advanced Inventory enabled but then disabled it. From what I understand, QuickBooks retains all of the Advanced Inventory data, but hides it from the user. It seems that the QuickBooks API is assuming that Advanced Inventory is still in use and is trying to set fields that no longer apply. Is there anything that can be done to force the API to realize that Advanced Inventory is no longer being used?

Thanks in advance,

Mark

XML Request:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?qbxml version="12.0"?>
<QBXML>
<QBXMLMsgsRq onError="continueOnError">
<ItemReceiptAddRq requestID="0">
<ItemReceiptAdd>
<VendorRef>
<FullName>Nodac Tech</FullName>
</VendorRef>
<APAccountRef>
<FullName>Accounts Payable</FullName>
</APAccountRef>
<TxnDate>2013-10-11</TxnDate>
<RefNumber>1742</RefNumber>
<Memo>PO #1742, Packing Slip: 1742</Memo>
<ItemLineAdd>
<ItemRef>
<FullName>OCB-PS-18DC-30</FullName>
</ItemRef>
<Desc>Power Supply 18 CH 12 DC, 30 AMP</Desc>
<Quantity>1.00</Quantity>
<Amount>67.00</Amount>
<ClassRef>
<FullName>Phone</FullName>
</ClassRef>
</ItemLineAdd>
</ItemReceiptAdd>
</ItemReceiptAddRq>
</QBXMLMsgsRq>
</QBXML>
Manas Mukherjee
  • 5,270
  • 3
  • 18
  • 30
Mark
  • 11
  • 2

1 Answers1

1

If anyone comes here because of this error, but unlike OP you have specified a bin or location - this may help.

you need to specify a location using InventorySiteRef, then specify bin using InventorySiteLocationRef. when you specify bin - it seems you need to specify the location and bin (when using fullname at least) as they would appear in quick books.

using QBFC it would look like this (C#):

        IInventoryAdjustmentLineAdd InventoryAdjustmentLineAdd1 = adj.InventoryAdjustmentLineAddList.Append();

        adj.InventorySiteRef.FullName.SetValue(location);
        InventoryAdjustmentLineAdd1.ORTypeAdjustment.QuantityAdjustment.InventorySiteLocationRef.FullName.SetValue($"{location}:{bin}");

"location" is a local variable specifying the location, and "bin" is a local variable specifying the bin. Depending on what you are doing, there are a few other required values. This just shows how I was able to fix the error stated in this post, by setting the bin value to actually be location:bin.

hope this helps someone.

Heriberto Lugo
  • 589
  • 7
  • 19
  • I have also seen that you must enter both the site and the full location (including the site). ex: InventorySiteRef = "MySiteName" InventroySiteLocationRef = "MySiteName.MyBinName" – Timothy Jannace Nov 08 '18 at 18:58