OpenText Livelink内容服务器调用getnode;不返回任何文档
本文关键字:返回 任何 文档 getnode 调用 Livelink 服务器 OpenText | 更新日期: 2023-09-27 18:10:29
大家好。
这个问题与一个名为OpenText Content Server 10.5(以前称为LiveLink)的特定产品以及他的Content Server Web Service (CWS)的使用有关。
我们使用一个非常简单的调用来检索文档,使用文档Id"GetNode"传递内部文档Id:
这种方法每次都有效,除非我们检索一些文件,如Microsoft Excel的xls或xlsx扩展名。
即使是包含"hello Word"的文本文件,重命名为xls也不行!
我的想法是这可能是:A)一个有问题的web服务需要补丁b)我们在LiveLink配置中遗漏了一些东西来启用某些文件。
欢迎任何帮助
感谢您的支持
----------第二部分-----------------
更具体地说,假设我们有一个ID= 229835的文档(别名也有相同的值)
1)使用GetNode(229835),我们收到以下错误:DocumentManagement.GetNode() failed on the Livelink Server。没有返回任何结果。检查Livelink Server线程日志。(服务器日志上没有任何内容!)
2)使用GetNodeByNickName("229835")一切正常
3)使用GetGUID(229835)我们首先检索像"3F67.."这样的GUID。然后使用GetNodeByGUID("3F67..8942")一切正常
所以我的问题是为什么第一个命令失败而其他两个工作?
考虑到这种情况"似乎"发生在某些类型的XLS、XLSX、ZIP、DOC、DOCX文件中。大小不超过2mb
GetNode
调用只返回该节点的元数据。您想使用GetVersionContents
至少需要指定所需内容的ID
和versionNum
。下面的代码是一个用Ruby编写的示例,但是将逻辑转换成另一种语言应该很容易。
#
# get specific +version+ of a document +id+
# if +file_name+ is nil it returns the content of the file as base64 encoded string
#
def get_version(id, version, file_name=nil)
response = @docman.request('GetVersionContents',
'wsdl:ID' => id,
'wsdl:versionNum' => version)[:contents]
if file_name
File.open(file_name, 'wb') do |f|
f.write(Base64.strict_decode64(response))
end
else
return Base64.strict_decode64(response)
end
end