1

我正在使用 QuickBooks SDK 版本 12 连接到 QuickBooks Enterprise 2013。我正在尝试使用下面的 xml 请求通过 api 添加项目收据。

我打开了详细日志记录并捕获了这个错误:

无法在交易行项目中设置未分配的 RSB。QuickBooks 错误消息:应为行/货架箱,但选择了库存站点。来源:.\src\ItemReceiptStorage.cpp 行 #591 HRESULT=0x80043973

QuickBooks 用户启用了 Advanced Inventory,但随后将其禁用。据我了解,QuickBooks 保留了所有高级库存数据,但对用户隐藏了它。似乎 QuickBooks API 假设 Advanced Inventory 仍在使用中,并试图设置不再适用的字段。有什么办法可以强制 API 意识到 Advanced Inventory 不再被使用?

提前致谢,

标记

XML 请求:

<?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>
4

1 回答 1

1

如果有人因为这个错误而来到这里,但与 OP 不同,您已经指定了一个垃圾箱或位置 - 这可能会有所帮助。

您需要使用InventorySiteRef指定位置,然后使用InventorySiteLocationRef指定 bin 。当您指定 bin 时 - 似乎您需要指定位置和 bin (至少在使用全名时),因为它们会出现在快速书籍中。

使用 QBFC 它看起来像这样(C#):

        IInventoryAdjustmentLineAdd InventoryAdjustmentLineAdd1 = adj.InventoryAdjustmentLineAddList.Append();

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

“location”是指定位置的局部变量,“bin”是指定 bin 的局部变量。根据您的操作,还有一些其他必需的值。这只是显示了我如何通过将 bin 值设置为实际为location:bin来修复本文中所述的错误。

希望这可以帮助某人。

于 2018-03-06T20:34:42.630 回答