帐户上的 SFDC 数据加载器 - 相同的 ID,不同的字段值

SFDC Data Loader on Account - Same Id, Different Field Values

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

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

参见'blue' 划定区域。

不是手动删除带有 'less recent' 日期的行,有没有一种方法可以让我以这种方式(降序或升序)对列进行排序,以便字段 'Last Login' 字段将用 'most recent' 日期填充?

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

感谢您的帮助!

-M

数据按其在源文件中出现的顺序 inserted/updated。

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

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

最后一个选项将 "win"。请注意,这是 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 是否有帮助。它应该将同一帐户的多行排序在一起,然后按日期升序排序,所以最近的应该 "win".

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

!ISBLANK(Date__c) && PRIORVALUE(Date__c) > Date__c