【发布时间】:2021-01-14 14:29:26
【问题描述】:
我正在寻找一种重试方法,如果需要,删除位于给定文件夹根目录树内的所有文档及其所有版本,而不仅仅是当前版本。
最简单的方法可能是使用批量删除的 SQL 查询。由于以前版本的文档没有归档在文件夹中,因此我继续这样做:
- 对 Document 类执行
SELECT请求 - 使用 version_series 键在文档版本 (
Document AS doc) 和其他版本 (Document AS doc2) 之间添加LEFT JOIN。 - 过滤以仅从其他版本中获取当前版本 (
doc2.IsCurrentVersion = true) - 仅获取当前版本在给定文件夹树中归档的文档 (
INSUBFOLDER clause)
附加步骤:
- 左连接
ReferentialContainmentRelationShip和Folder类获取文档当前版本的文件夹路径名
最终的请求如下所示:
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
这是实现目标的好方法而不是矫枉过正吗?
【问题讨论】:
标签: sql filenet-p8 filenet filenet-content-engine