如何在 Filenet P8 中使用 SQL 查询检索文档的所有版本?

问题描述

我正在寻找一种重试方法,并在需要时删除位于给定文件夹根目录树中的所有文档及其所有版本,而不仅仅是当前版本。

最简单的方法可能是批量删除的 SQL 查询。由于以前版本的文档未归档在文件夹中,因此我继续这样做:

  • 对 Document 类执行 SELECT 请求
  • 使用 version_series 键在文档版本 (LEFT JOIN) 和其他版本 (Document AS doc) 之间添加 Document AS doc2
  • 过滤以仅从其他版本 (doc2.IsCurrentVersion = true) 中获取当前版本
  • 仅获取当前版本在给定文件夹树 (INSUBFOLDER clause) 中归档的文档

附加步骤:

  • 左连接 ReferentialContainmentRelationShipFolder 类以获取文档当前版本所在文件夹的路径名

最终请求如下所示:

SELECT doc.this,doc.majorversionnumber AS "MAJV",doc.minorversionnumber AS "MINV",doc.IsCurrentVersion AS "Is Current",doc2.This AS "Current version",f.pathname AS "Current version folder"
FROM ((Document doc
       LEFT JOIN Document doc2 ON
                 doc2.VersionSeries = doc.VersionSeries)
       LEFT JOIN ReferentialContainmentRelationShip rcr ON
                 doc2.VersionSeries = rcr.VersionSeries)
LEFT JOIN Folder f ON f.This = rcr.tail
WHERE doc2.IsCurrentVersion = true AND
      doc2.this INSUBFOLDER '/path/to/a/folder'
ORDER BY doc2.This

这是实现目标的好方法而不是矫枉过正吗?

解决方法

删除文档将删除所有版本。您必须执行降级才能删除当前版本。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...