我的任务是将行从某些SF表中拉到数据仓库中。我看到大多数(也许所有)表都有LastModifiedTime列。所以我的方法就是这样。当我从SF中将行拉入DW时,我将存储所拉出的行的最新LastModifiedTime,然后从该点开始进行下一次拉取迭代。
但是,我被告知SF实现了一个滞后,从而可能不会将具有相同LastModifiedTime的所有行都同时写入SF数据库。
例如,假设总共有10行最后一次修改是在2018年8月15日17:00:00写入数据库。由于这种内置的“滞后”,SF可能会在保存操作期间写入这些行中的7行,然后在下一次保存操作几秒钟或几分钟后写入其余3行。
因此,该LastModifiedTime并不是行到达数据库的时间。这是该行被“缓存”以写入数据库的时间,它会在LastModifiedTime之后的几秒钟或几分钟内物理地添加到数据库中。
任何人都可以确认这一点。如果是这种情况,那么SF数据库中是否存在可以安全地用于如上所述的同步操作的列?
答案 0 :(得分:-1)
LastModifiedTime是通过标准Salesforce UI更新的,则将同步更新。如果它们是由触发器,工作流程规则或流程构建器(工作流程和流程构建器编译为触发器,顺便说一句)进行更新,则更新是异步的。
有多少个对象?您可以创建一个DateTime字段来跟踪上次数据仓库同步吗?然后,您的查询将在LastModifiedTime> LastSyncTime中查找记录。