ax1.salesforce.com/services/data/v29.0/sobjects/Account/updated/?start=2015-06-30T06%3A49%3A00%2B00%3A00&end=2015-06-30T16%3A30% 3A26%2B00%3A00
这似乎是一个典型的更新查询和删除查询也将类似 到上面
此查询的响应形式为:
" ids":[" 0019000001QeOINAA3" ]," latestDateCovered":" 2015-06-30T09:00:00.000 + 0000" }
这里的主要问题是latestDateCovered参数:
由于以下链接中提到的原因,它没有返回确切的时间:
https://help.salesforce.com/apex/HTViewSolution?id=000199029&language=en_US
所以我可以使用LastModifiedDate参数来更新这样的内容,而不是这样: https://ap1.salesforce.com/services/data/v30.0/query?q=select%20LastModifiedDate%2CName%20from%20Account%20Where%20LastModifiedDate> 2015-07-01T10%3A04%3A00.000%2B0000
我存储lastModifiedDate参数(所有记录中最高的)并执行相同的
两个查询都会产生相同的结果
事实上,第二个提到的更好的结果
我可以继续这样做吗?
会有任何问题吗?
答案 0 :(得分:0)
您可能希望将Id
帐户添加到SOQL查询中,以获取与REST等效的getUpdated()复制API调用类似的数据。
阅读What is the difference between LastModifiedDate and SystemModStamp?。您可能会发现SystemModStamp更合适。
来自您链接的Why is GetUpdatedResult.latestDateCovered not updating or changing for long periods of time?文章。
"如果Salesforce在您的实例上执行长时间运行的事务,则此字段中的值是该长时间运行事务的开始时间,直到它完成为止。这是因为长时间运行的事务可能会影响您的用户数据(例如,批处理)。"
因此,Salesforce正在返回一个保守的latestDateCovered
来为可能尚未完成的交易提供补贴。
两种方法的合适程度取决于您计划对结果做些什么。如果您只想监视在较短时间内发生变化的记录,您可能还需要考虑Streaming API。例如。用户会话。
顺便说一下,Salesforce StackExchange site是询问Salesforce特定问题的好地方。