CRM and CX Blogs by SAP
Stay up-to-date on the latest developments and product news about intelligent customer experience and CRM technologies through blog posts from SAP experts.
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member182985
Contributor
0 Kudos

很多客户都想知道怎么删除旧的过期的bdoc或者想知道为什么自己的系统中SMW3_BDOC*这样的表中数据越来越多。

在这篇博文中,我来和大家分享如何删除过期的bdoc。


Report SMO6_REORG2 就可以用来将过期的bdoc删除掉。实际上,我们建议大家在系统上将这个report作为后台的job来定期执行的,使smw01中不需要的bdoc不会积攒的过多,同时表SMW3_BDOC*中的数据也不会增长的过快。


执行事务代码SE38,输入report名字SMO6_REORG2,点击执行,你可以看到实际上这个report又包含了很多不同的report。对于这些report,你可以参考SAP note 206439。通常我们将他们都勾选上。


在执行report SMO6_REORG2之前,你可以先执行report RSRLDREL2,在relation处选择SMW0REL,这个report用来删除bdoc之间的object links。先执行这个report的作用是可以使report SMO6_REORG2执行的更快且更彻底。这一点也在KBA 1922644中提到。


同时,在执行report SMO6_REORG2的时候,你会发现有一个参数 “Days to hold”,这个参数用来控制从现在开始往前需要保存几天的bdoc,这个数需要填一个整数,默认以及推荐的数值是7,也就是保存7天内的bdoc,你也可以根据自己的业务需要进行调整。这个参数在note 493156中也有提到。


另外,请大家注意,report SMO6_REORG2只会删除成功执行的bdoc,对于有错误的或者没有执行完成的bdoc是不会被删除的,因为删除有错误的bdoc是有可能引起数据的不一致的。如果你在保证数据已经一致的前提下,需要删除没有成功执行完成的bdoc,那么你可以在事务代码SMW01中选中这条记录,在目录中选择Bdoc Message-> Process-> Delete,这样就手动地将bdoc的状态设为“set to processed”,当再次执行report SMO6_REORG2的时候,这条记录也就可以被删除掉了。


这里还有一个note 1138051,其中包含了一个参数可以阻止系统建立bdoc之间的object links,在这里只是让大家了解有这么一个参数,实际中是不推荐大家添加这个参数的。

English version: How to delete/reorganize old bdocs