OpenText Livelink Content Server调用“GetNode”不会返回任何文档

时间:2015-08-31 16:02:13

标签: c# web-services opentext livelink

嗨,欢迎所有社区。

此问题与名为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。

1 个答案:

答案 0 :(得分:0)

GetNode调用仅返回节点的元数据。 您想使用GetVersionContents

至少您需要为所需内容指定IDversionNum。 以下代码是用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