Добавление счета в Quickbooks через IPP вызывает ошибку синхронизации
Когда я пытаюсь добавить Invoice через.net IPP SDK, запрос на добавление Invoice успешно выполняется, но я получаю сообщение об ошибке, как только синхронизация инициируется из диспетчера синхронизации в Quickbooks. Ошибка видна только при получении статуса с помощью GetSyncActivity()
Ошибка, которую я вижу:
Ошибка проверки QBXML: [severity=FATAL_ERROR,message=cvc-complex-type.2.4.a: Обнаружено недопустимое содержимое, начиная с элемента 'TxnDate'. Ожидается один из {{CustomerRef}'., Locator=[url=null, строка =-1, столбец =-1,node=null,object=com.intuit.sb.datasync.writeback.qbxml.schema.InvoiceAdd@4538d9d1, поле = NULL]]
Я включил ведение журнала запросов, и, посмотрев на XML-счет, сгенерированный и отправленный, я не вижу ничего плохого в том, что сравниваю его с примерами запросов в онлайн-документации. Я попытался указать другие идентификаторы клиентов, которые могут быть причиной проблемы, указать адрес выставления счета / адрес доставки и указать ARAccountRef, но ни одно из этих изменений не повлияло на ошибку.
Есть ли что-то, что я пропускаю, или что-то, о чем вы можете подумать, я могу попытаться решить это?
Запрос:
<Add xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.intuit.com/sb/cdm/v2" RequestId="fd0822d7666248119d8ee482f264bd84" FullResponse="true">
<ExternalRealmId>Realm ID removed</ExternalRealmId>
<Object xsi:type="Invoice">
<SyncToken>0</SyncToken>
<MetaData>
<CreateTime>2013-02-24T18:05:21.1706511-05:00</CreateTime>
<LastUpdatedTime>2013-02-24T18:05:21.1706511-05:00</LastUpdatedTime>
</MetaData>
<Header>
<DocNumber>232751</DocNumber>
<CustomerId>11505739</CustomerId>
<CustomerName/>
<TotalAmt>900.00</TotalAmt>
<SalesTermId idDomain="QB">3</SalesTermId>
<DueDate>2013-02-24T00:00:00-05:00</DueDate>
<BillAddr/>
<ShipAddr/>
<ShipMethodId/>
<DiscountAmt>0</DiscountAmt>
</Header>
<Line>
<Desc>Test</Desc>
<Amount>900.00</Amount>
<ItemId>3377682</ItemId>
<UnitPrice>180.00</UnitPrice>
<Qty>5</Qty>
<ServiceDate>2013-02-24T18:05:21.1956543-05:00</ServiceDate>
</Line>
</Object>
</Add>
Отклик:
<RestResponse xmlns="http://www.intuit.com/sb/cdm/v2">
<Success RequestId="fd0822d7666248119d8ee482f264bd84">
<Invoice>
<Id idDomain="NG">12313656</Id>
<SyncToken>1</SyncToken>
<MetaData>
<CreatedBy>app</CreatedBy>
<CreateTime>2013-02-24T23:05:25Z</CreateTime>
<LastModifiedBy>app</LastModifiedBy>
<LastUpdatedTime>2013-02-24T23:05:25Z</LastUpdatedTime>
</MetaData>
<Synchronized>false</Synchronized>
<Header>
<DocNumber>232751</DocNumber>
<TxnDate>2013-02-24T00:00:00Z</TxnDate>
<CustomerId idDomain="NG">11505739</CustomerId>
<SubTotalAmt>900</SubTotalAmt>
<TaxRate>0</TaxRate>
<TaxAmt>0</TaxAmt>
<TotalAmt>900</TotalAmt>
<SalesTermId idDomain="QB">3</SalesTermId>
<DueDate>2013-02-24T00:00:00Z</DueDate>
<BillAddr>
<Tag>Billing</Tag>
</BillAddr>
<ShipAddr>
<Tag>Shipping</Tag>
</ShipAddr>
<Balance>900</Balance>
</Header>
<Line>
<Id idDomain="NG">37505805</Id>
<Desc>Test</Desc>
<Amount>900</Amount>
<Taxable>false</Taxable>
<ItemId idDomain="NG">3377682</ItemId>
<UnitPrice>180</UnitPrice>
<Qty>5</Qty>
<ServiceDate>2013-02-24T00:00:00Z</ServiceDate>
</Line>
</Invoice>
<RequestName>InvoiceAdd</RequestName>
<ProcessedTime>2013-02-24T23:05:25Z</ProcessedTime>
</Success>
</RestResponse>
Информация, полученная посредством вызова GetSyncStatus(...) с указанием ErroredObjectsOnly=True
requestId: "fd0822d7666248119d8ee482f264bd84",
stateCode: "9",
stateDesc: "Record has fatal error",
messageCode: "100",
messageDesc: "QBXML validation error: [severity=FATAL_ERROR,message=cvc-complex-type.2.4.a: Invalid content was found starting with element 'TxnDate'. One of '{CustomerRef}' is expected.,locator=[url=null,line=-1,column=-1,node=null,object=com.intuit.sb.datasync.writeback.qbxml.schema.InvoiceAdd@4538d9d1,field=null]] ",
responseLogTMS: "2013-02-24T23:06:22Z",
idsType: "Intuit.Ipp.Data.Qbd"