【问题标题】:How to get the deleted documents list in a cabinet using DQL in Documentum?如何使用 Documentum 中的 DQL 获取文件柜中已删除的文档列表?
【发布时间】:2020-08-13 21:04:21
【问题描述】:

我正在尝试查找使用 DQL 在几个条件下删除的文档列表,但我需要查找仅属于特定文件柜的列表。我无法使用 audittrailr_object_iddm_cabinet 来构建查询。

也许是这样的?

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...';

请帮帮我。

【问题讨论】:

  • 当您删除对象时,它在其原始表中不再可用,因此 dm_document 表上的此 JOIN 没有任何意义。我怀疑这是可以实现的

标签: documentum documentum-dql


【解决方案1】:

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

但是,如果您还将 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。

但请记住,当您同时删除带有文件夹的文档时,使用此查询将不起作用,您还必须遍历已删除文件夹的审计跟踪。

【讨论】:

  • 太好了,实际上我现在就这样尝试了。 select * from dm_audittrail a where a.event_name='dm_destroy' and a.time_stamp between date('01/01/2018 00:00:00','mm/dd/yyyy hh:mi:ss') 和 date(today ) 和 acl_name 像 '%imms_clin%' 和 (a.current_state = 'Effective' 或 a.current_state='Approved'); acl_name 与我需要的机柜有关。
  • 很高兴听到,您找到了一种方法来做到这一点;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-02
  • 2015-03-05
  • 2021-03-10
  • 1970-01-01
  • 1970-01-01
  • 2015-09-23
相关资源
最近更新 更多