我找到了一种不同的方法,因为sync.fedb
被OTEdit
进程锁定,并且似乎没有任何方法可以使用 word 宏通过 SDK 访问文档元数据。这有点骇人听闻,但我已将详细信息放在这里,以防其他人有兴趣这样做。
编辑后的文档存储在一个文件夹下,路径如下:C:\Users\[username]\AppData\Roaming\OpenText\OTEdit\EC_[servername]\[folder]\[current document name]
[folder]
可能匹配 Content Server 中的文件夹,也可能不匹配 - 最好检查文件并从url~otdirinfo.ini
中解析父文件夹 ID 。Browse
从这里我们可以使用类似的东西进行数据库搜索:
SELECT
t.DataID AS NodeId,
CAST(t.CreateDate AS DATE) AS CreateDate,
CASE WHEN k.FirstName IS NULL
AND k.LastName IS NULL THEN k.Name
ELSE LTRIM(RTRIM(( ISNULL(k.FirstName, '') + ' ' + ISNULL(k.LastName, '') )))
END AS CreatedByFullName,
CASE WHEN kr.FirstName IS NULL
AND kr.LastName IS NULL THEN kr.Name
ELSE LTRIM(RTRIM(( ISNULL(kr.FirstName, '') + ' ' + ISNULL(kr.LastName, '') )))
END AS ReservedByFullName,
t.CreatedBy,
t.ReservedBy,
t.ParentID,
t.Name AS Title,
v.FileName
FROM
DTree t
INNER JOIN KUAF k
ON t.CreatedBy = k.ID
LEFT OUTER JOIN KUAF kr
ON t.ReservedBy = kr.ID
INNER JOIN DVersData v
ON t.DataID = v.DocID AND t.VersionNum = v.Version
在实践中,我编写了一个 API 来包装数据库查找,它以 JSON 格式返回感兴趣的结果,这比管理数据库连接更容易处理,并且在我的站点上返回结果比 CWS 更快。我使用方便的VBA-Web宏进行调用并处理解析,将调用结果放入 word doc 属性中,然后调用我们现有的页脚生成宏。
注意:我为此使用 Content Server 10.5,显然提取父 ID 的方法有时因版本而异。