如何在Documentum中使用DQL获取文件柜中已删除的文档列表?

How to get the deleted documents list in a cabinet using DQL in Documentum?

我正在尝试使用 DQL 查找已删除的文件列表,条件很少,但我需要查找仅属于特定文件柜的列表。我无法使用 audittraildm_cabinetr_object_id 构建查询。

也许是这样的?

select distinct a.r_object_id, a.event_name, a.user_name, a.audited_obj_id, a.time_stamp from dm_audittrail a, dm_document d where a.event_name='dm_destroy' and a.time_stamp > date(today) and (a.current_state = 'Effective' or a.current_state='Approved') and d.i_cabinet_id='0c0033xxxx...';

请帮助我。

当您删除 Documentum 中的对象时,它实际上被删除了(至少它的元数据、文档内容一直存在,直到 dm_clean 作业被执行)。没有像其他 DMS 系统(例如 Nuxeo)那样的垃圾功能。这就是为什么来自 dm_audittrail 的 SELECT 查询与 dm_document 上的连接不能 return 预期信息的原因。

但是如果您还将 dm_link 事件记录到审计跟踪中,则有一种方法可以做到这一点。然后你可以使用这样的查询:

SELECT * FROM dm_audittrail d, dm_audittrail l 
  WHERE d.event_name = 'dm_destroy' 
  AND l.event_name = 'dm_link' 
  AND d.audited_obj_id = l.audited_obj_id
  AND (l.id_1 = '0c00ad3f80000106' 
    OR l.id_1 IN (SELECT r_object_id FROM dm_folder WHERE CABINET(ID('0c00ad3f80000106'), DESCEND)))

它从审计跟踪中找到有关已删除文档的信息,并将其与有关该文档链接的信息结合起来,审计跟踪也包含 id_1 中的父文件夹 ID。

但请记住,当您同时删除包含文件夹的文档时,使用这一查询将不起作用,您还必须遍历已删除文件夹的审计线索。