У меня проблема с qbxml.
Я пытаюсь перенести клиентов, предметы и т. Д. В zohobooks.Я хочу сначала собрать 50 клиентов с помощью быстрых книг и вызова zohobooks apis, чтобы создать там контакты.и снова еще 50 клиентов от QuickBooks и Zohobooks.
Проблема в том, что я уверен, как я могу продолжать запрашивать после вызова apis zohobooks?
Когда я пытался использовать тот же iteratorID из первого ответа на запрос, я ничего не получил от QB.
Я создаю настольное приложение, используя .net, посоветуйте, пожалуйста, лучший вариант для отслеживания миграции и где я нахожусь.
Предположим, что у меня 150 клиентов, и по какой-то причине я прекратил миграцию после 100 клиентов, в этом случае как я могу получить последних 50 клиентов в следующий раз?
public string customerQueryXml()
{
XmlDocument inputXMLDoc = new XmlDocument();
inputXMLDoc.AppendChild(inputXMLDoc.CreateXmlDeclaration("1.0", null, null));
inputXMLDoc.AppendChild(inputXMLDoc.CreateProcessingInstruction("qbposxml", "version=\"1.0\""));
XmlElement qbXML = inputXMLDoc.CreateElement("QBPOSXML");
inputXMLDoc.AppendChild(qbXML);
XmlElement qbXMLMsgsRq = inputXMLDoc.CreateElement("QBPOSXMLMsgsRq");
qbXML.AppendChild(qbXMLMsgsRq);
qbXMLMsgsRq.SetAttribute("onError", "stopOnError");
XmlElement customerQueryRq = inputXMLDoc.CreateElement("CustomerQueryRq");
qbXMLMsgsRq.AppendChild(customerQueryRq);
//customerQueryRq.SetAttribute("requestID", "1");
//customerQueryRq.SetAttribute("iterator", "Start");
customerQueryRq.SetAttribute("requestID", "2");
customerQueryRq.SetAttribute("iterator", "Continue");
customerQueryRq.SetAttribute("iteratorID", "{A1601C19-C6DC-43C0-AE43-6F45088C39F2}");
// for test only, read 10 customers
XmlElement MaxReturned = inputXMLDoc.CreateElement("MaxReturned");
customerQueryRq.AppendChild(MaxReturned).InnerText = "50";
XmlElement ownerID = inputXMLDoc.CreateElement("OwnerID");
customerQueryRq.AppendChild(ownerID).InnerText = "0";
XmlElement timeModifiedRangeFilter = inputXMLDoc.CreateElement("TimeModifiedRangeFilter");
customerQueryRq.AppendChild(timeModifiedRangeFilter);
XmlElement fromTimeModified = inputXMLDoc.CreateElement("FromTimeModified");
timeModifiedRangeFilter.AppendChild(fromTimeModified).InnerText = "1980-01-01T00:00:00";
XmlElement toTimeModified = inputXMLDoc.CreateElement("ToTimeModified");
timeModifiedRangeFilter.AppendChild(toTimeModified).InnerText = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss");
return inputXMLDoc.OuterXml;
}
РЕДАКТИРОВАТЬ: Я заметил, что должен использовать iteratorID в том же запросе.Кстати, у меня нет проблем с самим qbxml.У меня вопрос: как я могу продолжать запрашивать клиентов, товары или что-то еще по другому запросу?
- ProcessRequest (первый раз)
- перенес XML-данные в другую систему
- и после этого по какой-либо причине я остановил запрос
- здесь, могу ли я продолжать запрашивать другой ProcessRequest?