前辈遗留了一支程序
REPORT ZDMDELTAREPAIR .
parameters: l_ods type RSDODSOBJECT.
data l_count type sytabix.
select count( distinct PARTID ) from rsdmdelta into l_count
where icname = l_ods.
if l_count > 0.
write 'Status are still set. Delta can not be repaired (note 578150)'.
exit.
endif.
data l_max type RSSID.
select max( requid ) into l_max from rsbodslog
where odsobject = l_ods.
update rsbodslogstate set active = l_max
PROCESSED_ALL = 0
PROCESSED_ONE = 0
where odsobject = l_ods.
----------------------
说实在的程序本身没有为我解决什么问题,倒是这里的表 rsbodslogstate 给了我不少帮助,好几次我直接手工去改动这里的数字,问题还真的解决了。
=============================================================
以上是摘自一位前辈的文章,我的理解是这样的:
如果DSO出现加载失败,包括自身加载数据,从DSO加载数据到别的DSO或CUBE时,可能因为频繁删除主求而出现导入新的Request。
1、通过DSO的名字,查看表 rsdmdelta(数据集 Delta 管理) ,如果字段PARTID有值,则表示增量加载无法修复,参考NOTE 578150。
2、否则查看表rsbodslog(ODS 更改日志中的请求),获取最大的REQUID字段的值。
3、查看表rsbodslogstate(ODS 对象的更改日志状态),看ACTIVE的值是否与上一步查得的REQUID的值是否一样, PROCESSED_ALL 是否为0,PROCESSED_ONE 是否为0,如果不是,将其更改。
=========================================
关于Request的几个表