如何通过SF OData API获取SuccessFactors中已删除的记录
SuccessFactors EC 删除记录捕获可行方案
方案1:OData API 原生软删除字段查询(优先推荐)
- 绝大多数FO(基础对象)、MDF(元数据框架对象)、BG(背景元素)都内置
isDeleted布尔型标识字段,你可以在现有增量同步的筛选逻辑中新增条件,拉取指定时间窗内的删除记录:
示例筛选参数:$filter=lastModifiedDateTime ge {上次同步时间戳} and isDeleted eq true - 部分历史版本的标准FO对象默认不会返回该字段,需要在请求中显式通过
$select参数指定isDeleted和对应对象的主键字段,才能正常获取值 - 该方案无需额外开通权限,可直接兼容现有增量同步逻辑,改造成本最低
方案2:审计日志API 查询删除操作
- 针对少数不支持
isDeleted字段的特殊对象,可以调用SuccessFactors审计日志查询API,筛选条件设置为:操作类型为DELETE、操作对象为你同步的EC对象、操作时间在同步周期范围内,从返回结果中提取被删除记录的主键ID - 审计日志默认保留周期为90天,只要你的同步间隔小于90天就不会出现数据遗漏,使用前需要给API账号开通
Read Audit Log的权限
方案3:全量主键比对兜底
- 对于数据量较小的配置类对象,可在每次同步时先拉取当前EC侧该对象的全量主键集合,和本地数据库存储的主键集合做差集运算,差集对应的本地记录即为需要删除的条目
- 该方案无需调整API查询逻辑,缺点是不适用于员工信息这类数据量较大的对象,会显著增加API请求耗时和服务负载
提示:所有方案落地前请先确认你同步的每个EC对象的元数据定义,自定义MDF对象如果创建时未开启软删除跟踪,需要先到MDF配置界面打开对应开关,才能正常捕获删除记录
内容的提问来源于stack exchange,提问作者mcjai
相关产品推荐
相关产品推荐

