CRM 4.0 数据删除维护(data deletion) Part 1

CRM 4.0里90%以上的实体数据删除需要通过2阶段删除的: 物理删除(“硬”删除)和逻辑删除(“软”删除).

软删除是指在CRM的界面上通过菜单删除数据记录 (此动作CRM平台通常设置CRM数据库对应记录的删除标志位 DeletionStateCode=2,当然有少数实体是通过设置别的标志位的,这些是系统实现细节,后续版本可能会改变的),具体的实际数据库删除动作(硬删除)是有4.0中Deletion Service来做的。Deletion Service是作为CRM Async Service的一部分来运行的,没有单独的可执行操作系统进程。Deletion Service 是每24小时循环运行一次的。我们可以使用 CRM 4 Deployment Job Editor 来修改循环运行间隔。

 JobEditor

 

小窍门:如果是调试目的希望Deletion Service能运行一次,简单的办法是把Job Next Run设置为某一过去的时间,比如当前为6:02:11 PM,我们修改为5:02:11 PM,然后点击Update按钮更新数据库 (其他的都不需要改动)。等待大概5分钟Deletion Service一定会运行起来的。

由于Deletion Service运行时候要删除记录,所以推荐循环间隔选择在午夜等非业务繁忙时间执行,以期对系统性能影响最小。

 

Deletion Service 运行结果:

很不方便的是,没有用户界面查看结果,只能直接执行SQL语句

select LastResultCode, LastRunTime from ScaleGroupOrganizationMaintenanceJobs where OperationType=14

 

LastResultCode:  0 代表成功执行; 1代表上次执行失败。

LastRunTime: 上次运行时刻 (GMT格式)

 

如果上次执行失败,详细地错误信息只能查看Windows事件查看器。如果还是没有线索,那么如下排错步骤:

1. 打开CRM Trace日志

2. 运行SQL Profiler

3. 参照上面的小窍门运行Job Editor修改Job Next Run,触发Deletion Service运行一次

AsyncService开头的日志文件应该有了详细的错误信息了。

 

下篇将列出一些常见的数据无法删除错误问题的解决。

thanks

Clifford