API Quickbooks - .NET - QBD - V2 - У кого-нибудь есть рабочий пример на C#, как удалять или возвращать объекты с ошибками?

У кого-нибудь есть рабочий пример в C# о том, как удалить или вернуть объекты, которые были помечены как Errored процессом синхронизации?

Я создаю приложение.Net, которое использует V2 API QuickBooks для отправки счетов в Intuit.

Совсем недавно я, по-видимому, выдвинул счет в Intuit, который он определил как "плохой".

Когда я ищу похожие вопросы, я вижу ряд ответов, которые мне нужны, чтобы отменить или удалить их, но не могу найти ни одного примера того, как это сделать.

Спасибо!!

1 ответ

PFB .net фрагменты кода.

Для запроса объектов ошибок

Intuit.Ipp.Data.Qbd.CustomerQuery qbdCustomerQueryErroredObjects =  new Intuit.Ipp.Data.Qbd.CustomerQuery();
qbdCustomerQueryErroredObjects.ErroredObjectsOnly = true;
IEnumerable<Intuit.Ipp.Data.Qbd.Customer> qbdCustomers = qbdCustomerQueryErroredObjects.ExecuteQuery<Intuit.Ipp.Data.Qbd.Customer>(context) as IEnumerable<Intuit.Ipp.Data.Qbd.Customer>;

Чтобы запросить состояние синхронизации объекта

Intuit.Ipp.Data.Qbd.SyncStatusRequest syncSt1 = new Intuit.Ipp.Data.Qbd.SyncStatusRequest();
syncSt1.ErroredObjectsOnly = true;
syncSt1.OfferingIdSpecified = true;
syncSt1.OfferingId = Intuit.Ipp.Data.Qbd.offeringId.ipp;
syncSt1.NgIdSet = new Intuit.Ipp.Data.Qbd.NgIdSet[1];
syncSt1.NgIdSet[0] = new Intuit.Ipp.Data.Qbd.NgIdSet();
syncSt1.NgIdSet[0].NgId = "949162";
syncSt1.NgIdSet[0].NgObjectType = Intuit.Ipp.Data.Qbd.objectName.Customer;

//Optional Params
//syncSt1.StartCreatedTMS = DateTime.Now.AddDays(-90);
//syncSt1.StartCreatedTMSSpecified = true;
//syncSt1.EndCreatedTMS = DateTime.Now;
//syncSt1.EndCreatedTMSSpecified = true;
IEnumerable<Intuit.Ipp.Data.Qbd.SyncStatusResponse> syncResultCustomers = commonService.GetSyncStatus(syncSt1);

Удалить объект ошибки

Intuit.Ipp.Data.Qbd.Customer customerToDelete = new Intuit.Ipp.Data.Qbd.Customer();
customerToDelete.Id = new Intuit.Ipp.Data.Qbd.IdType() { idDomain = Intuit.Ipp.Data.Qbd.idDomainEnum.NG, Value = "949162" };
customerToDelete.SyncToken = "1";
commonService.Delete(customerToDelete);

Вы можете сделать все это, используя ApiExplorer.

Вы можете проверить, выполнив запрос и установив ErroredObjectsOnly = true.

http://docs.developer.intuit.com/0025_Intuit_Anywhere/0050_Data_Services/v2/0500_QuickBooks_Windows/0100_Calling_Data_Services/0015_Retrieving_Objects

Если объект находится в состоянии ошибки, вы можете выполнить запрос по конкретной причине, используя SyncStatus API:

http://docs.developer.intuit.com/0025_Intuit_Anywhere/0050_Data_Services/v2/0500_QuickBooks_Windows/0600_Object_Reference/SyncStatus

Оттуда вам нужно будет удалить или вернуть объект в состоянии ошибки, в зависимости от того, произошла ли синхронизация.

Удалить (синхронизация не произошла):

http://docs.developer.intuit.com/0025_Intuit_Anywhere/0050_Data_Services/v2/0500_QuickBooks_Windows/0100_Calling_Data_Services/Deleting_an_Object

Если успешная синхронизация произошла с сущностью хотя бы один раз, но затем обновление перевело ее в состояние ошибки, вам нужно будет выполнить возврат:

Спасибо

Другие вопросы по тегам