0

这是一个关于数据加载器的相对简单的问题。我目前正在对我们的应用程序运行一个查询,该查询正在为每个帐户的用户提取“最后一次登录”。由于我们的应用程序没有与我们的 SFDC 集成,我必须查询数据,然后使用数据加载器手动上传 CSV 文件。

此特定字段“上次登录”位于帐户页面上。长话短说,我的查询的输出有一些行将具有相同的帐户 ID,但具有不同的日期——最近的和最近的。例如,具有相同帐户 ID 的两行。一个“上次登录”日期是 2018 年 7 月 30 日,另一行(相同的帐户 ID)的“上次登录”日期是 18 年 7 月 17 日。

见“蓝色”划定区域。 我希望 7/30 填充该字段而不是 7/17

不是手动删除具有“最近”日期的行,有没有一种方法可以以这种方式(降序或升序)对列进行排序,以便字段“上次登录”字段将填充“最近”日期?

本质上,如果记录是相同的,那么组织提取数据的顺序是什么?

谢谢你的帮助!

-M

4

1 回答 1

1

数据按其在源文件中出现的顺序插入/更新。

如果您有这样的更新文件:

Id,Name
00170000015Uemk,Some Name
00170000015Uemk,Some Different Name

最后一个选项将“获胜”。请注意,这是 API 访问的行为 (u)r。在 Apex 中,这样做会崩溃并烧毁:

update new List<Account>{
    new Account(Id = '00170000015Uemk', Name = '1'),
    new Account(Id = '00170000015Uemk', Name = '2')
};
// System.ListException: Duplicate id in list: 00170000015UemkAAC

如果您想快速而肮脏地进行操作,请查看是否有SELECT ... FROM Account ORDER BY Id, LastLoginDate ASC帮助。它应该将同一帐户的多行排序在一起,然后按日期按升序排序,因此最近的应该“获胜”。

但这听起来像您有一条业务规则,永远不要用旧日期覆盖新日期。所以一个验证规则可能会拒绝坏行?就像是

!ISBLANK(Date__c) && PRIORVALUE(Date__c) > Date__c
于 2018-07-28T08:32:17.597 回答