使用REST API更新和删除Salesforce中的记录

时间:2015-07-07 15:20:33

标签: api rest salesforce

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参数(所有记录中最高的)并执行相同的

两个查询都会产生相同的结果

事实上,第二个提到的更好的结果

我可以继续这样做吗?

会有任何问题吗?

1 个答案:

答案 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特定问题的好地方。