我正在尝试在Quickbooks Desktop 15.0版中以编程方式创建项目。我正在使用Quickbooks SDK 13.0。
这是我的xml
<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="13.0"?>
<QBXML>
<QBXMLMsgsRq onError="stopOnError">
<ItemInventoryAddRq>
<ItemInventoryAdd> <!-- required -->
<Name >Cash Sales</Name> <!-- required -->
<IncomeAccountRef> <!-- optional -->
<FullName >Food Sales</FullName> <!-- optional -->
</IncomeAccountRef>
<AssetAccountRef> <!-- optional -->
<FullName >Food Sales</FullName> <!-- optional -->
<COGSAccountRef>
<FullName>Cost of Goods Sold</FullName>
</COGSAccountRef>
</AssetAccountRef>
</ItemInventoryAdd>
</ItemInventoryAddRq>
</QBXMLMsgsRq>
</QBXML>
我从xml验证器收到此错误:
Src Text: <COGSAccountRef>
Reason: Element content is invalid according to the DTD/Schema.
COGSAccountRef正在请求给出的STRTYPE变量,但它并不想接受它。如果我删除了这个标签,验证器会说它是一个有效的xml代码,但我收到了来自quickbooks的回复说:
<ItemInventoryAddRs statusMessage="There was an error when saving a Item Inventory list, element "Cash Sales". QuickBooks error message: A COGS account must be specified." statusSeverity="Error" statusCode="3180"/>
我还尝试使用ListID,以及在quickbooks中手动创建项目,然后查询quickbooks以获取为该项目存储的xml以使用它的COGSAccountRef xml。
我也在快速书中启用了库存。
答案 0 :(得分:1)
原来我的标签出了故障,万一以后有人需要知道。我刚刚将COGSAccountRef移到了AssetAccount以上而且它运作良好。