嗨,欢迎所有社区。 p>
此问题与名为OpenText Content Server 10.5(以前称为LiveLink)的特定产品及其Content Server Web Service(CWS)的使用有关。
我们使用一个非常简单的调用来检索文档,使用他的DocumentID“GetNode”传递内部文档ID:
此方法每次都有效,除非我们使用xls或xlsx扩展名检索某些文件,例如Microsoft Excel。
即使是包含“Hallo Word”的文本文件,重命名为xls也不起作用!
我的想法是,这可能是: a)需要有错误的Web服务和补丁 b)我们错过了LiveLink配置中的某些内容以启用某些文件。
任何帮助都是莫测而不是欢迎
感谢您的支持
----------第2部分-----------------
更具体地说,我们有一个ID = 229835的文件(昵称也有相同的值)
1)使用 GetNode(229835),我们收到以下错误:Livelink Server上的DocumentManagement.GetNode()失败。没有返回任何结果。检查Livelink Server线程日志。 (服务器日志上没有任何内容!)
2)使用 GetNodeByNickName(“229835”)一切正常。
3)使用te GetGUID(229835),我们首先检索GUID,如“3F67..8942”,然后使用 GetNodeByGUID(“”3F67..8942“)一切正常。
所以我的问题是为什么第一个命令失败而另外两个命令工作?
考虑到这似乎与某些类型的XLS,XLSX,ZIP,DOC,DOCX文件一起发生。大小不超过2 Mb。
答案 0 :(得分:0)
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