gpt4 book ai didi

quickbooks - 使用 Web 连接器的 Quick books 中的迭代示例

转载 作者:行者123 更新时间:2023-12-05 02:23:31 24 4
gpt4 key购买 nike

我在 QBSDK_ProGuid.pdf 文件(第 117 页)上看到了关于迭代的文档。我很困惑如何再次发出相同的查询并将迭代器值现在设置为继续,并且 IteratorID 字段设置为从返回的 IteratorID 值第一次查询迭代。

 <?xml version="1.0" ?>
<?qbxml version="5.0" ?>
<QBXML>
<QBXMLMsgsRq onError="stopOnError">
<CustomerQueryRq requestID="5001" iterator="Continue"
iteratorID="{D7355385-A17B-4f5d-B34D-F34C79C3E6FC}">
<MaxReturned>10</MaxReturned>
<IncludeRetElement>ListID</IncludeRetElement>
</
CustomerQueryRq>
</QBXMLMsgsRq>
</QBXML>

我正在关注由 intuit 提供的 WCWebService 示例...并获取客户数据..任何人都可以提供一个使用迭代概念的示例。谢谢!

最佳答案

下面是使用迭代器查询客户的示例,一次获取五 (5) 个客户。此查询获取符合以下条件的客户:

  • 1984 年 1 月 29 日之后修改
  • OwnerID 为 0(这只是确保我们返回 GUI 中定义的 DataExt 值(自定义字段))

您的初始请求如下所示。请注意,我们声明了 iterator=“Start” 属性来启动我们的迭代器:

<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="5.0"?>
<QBXML>
<QBXMLMsgsRq onError="continueOnError">
<CustomerQueryRq requestID="1" iterator="Start">
<MaxReturned>5</MaxReturned>
<FromModifiedDate>1984-01-29T22:03:19</FromModifiedDate>
<OwnerID>0</OwnerID>
</CustomerQueryRq>
</QBXMLMsgsRq>
</QBXML>

QuickBooks 将向您发回包含前五 (5) 位客户的回复,如下所示。请注意,QuickBooks 已将 iteratorID="..." 发回给我们属性和 iteratorRemainingCount="..."属性,表示用于标识迭代器的ID,以及迭代器中剩余的项数。

<?xml version="1.0" ?>
<QBXML>
<QBXMLMsgsRs>
<CustomerQueryRs
requestID="1"
statusCode="0"
statusSeverity="Info"
statusMessage="Status OK"
iteratorRemainingCount="18"
iteratorID="{eb05f701-e727-472f-8ade-6753c4f67a46}">
<CustomerRet>
<ListID>110000-1232697602</ListID>
<TimeCreated>2009-01-23T03:00:02-05:00</TimeCreated>
<TimeModified>2009-01-23T03:00:02-05:00</TimeModified>
<EditSequence>1232697602</EditSequence>
<Name>10th Customer</Name>
<FullName>10th Customer</FullName>
<IsActive>true</IsActive>
<Sublevel>0</Sublevel>
<Balance>0.00</Balance>
<TotalBalance>0.00</TotalBalance>
<SalesTaxCodeRef>
<ListID>10000-1232327562</ListID>
<FullName>Tax</FullName>
</SalesTaxCodeRef>
<ItemSalesTaxRef>
<ListID>10000-1232327661</ListID>
<FullName>Out of State</FullName>
</ItemSalesTaxRef>
<JobStatus>None</JobStatus>
</CustomerRet>

... 4 more customer records will go here ...

</CustomerQueryRs>
</QBXMLMsgsRs>
</QBXML>

然后您将检查 iteratorRemainingCount属性,如果它大于 0,则使用 iteratorID 发送您的下一个请求属性。请记住,使用此迭代器的每个后续请求都必须使用相同的搜索条件,并且该搜索条件必须随每个请求一起发送。

因此,在这种情况下,迭代器下一部分的每个请求都将重新发送 <MaxReturned> , <FromModifiedDate> , 和 <OwnerID>元素。请注意,我们发送返回的 iteratorID="..."来自先前响应的属性,并声明 iterator="Continue"指示我们要继续从现有迭代器中获取的属性:

<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="5.0"?>
<QBXML>
<QBXMLMsgsRq onError="continueOnError">
<CustomerQueryRq
requestID="2"
iterator="Continue"
iteratorID="{eb05f701-e727-472f-8ade-6753c4f67a46}">
<MaxReturned>5</MaxReturned>
<FromModifiedDate>1984-01-29T22:03:19</FromModifiedDate>
<OwnerID>0</OwnerID>
</CustomerQueryRq>
</QBXMLMsgsRq>
</QBXML>

这个过程会一直重复,直到迭代器中没有剩余的项目为止。在每个响应中,您将检查 iteratorRemainingCount属性,如果它大于 0,您将发出另一个请求以获取迭代器的下一部分。

最终,您会注意到 iteratorRemainingCount属性将减少到零 (0),此时您将停止发出请求,因为迭代器没有更多记录可返回。如果您发出另一个请求,您将返回一个错误,因为此时迭代器已过期。

<?xml version=“1.0” ?>
<QBXML>
<QBXMLMsgsRs>
<CustomerQueryRs
requestID="5"
statusCode="0"
statusSeverity="Info"
statusMessage="Status OK"
iteratorRemainingCount="0"
iteratorID="{eb05f701-e727-472f-8ade-6753c4f67a46}">
<CustomerRet>
<ListID>1B0000-1232697643</ListID>
<TimeCreated>2009-01-23T03:00:43-05:00</TimeCreated>
<TimeModified>2009-01-23T03:00:43-05:00</TimeModified>
<EditSequence>1232697643</EditSequence>
<Name>Pat Daniels</Name>
<FullName>Pat Daniels</FullName>
<IsActive>true</IsActive>
<Sublevel>0</Sublevel>
<Balance>0.00</Balance>
<TotalBalance>0.00</TotalBalance>
<SalesTaxCodeRef>
<ListID>10000-1232327562</ListID>
<FullName>Tax</FullName>
</SalesTaxCodeRef>
<ItemSalesTaxRef>
<ListID>10000-1232327661</ListID>
<FullName>Out of State</FullName>
</ItemSalesTaxRef>
<JobStatus>None</JobStatus>
</CustomerRet>

... 4 more customer records will go here ...

</CustomerQueryRs>
</QBXMLMsgsRs>
</QBXML>

关于quickbooks - 使用 Web 连接器的 Quick books 中的迭代示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21757478/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com