2015-08-04 7 views
0

Я пытаюсь создать элемент программно в Quickbooks Desktop Version 15.0. Я использую Quickbooks SDK 13.0.Quickbooks InventoryItemAdd COGSAccountRef Не принимается запрашиваемый тип данных

Вот мой 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.

У меня также есть инвентарь включен в быстрых книгах.

ответ

1

Оказывается, у меня были теги не в порядке, на случай, если кто-то должен знать в будущем. Я просто переместил COGSAccountRef выше AssetAccount, и он сработал.