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

OpenText Livelink内容服务器调用getnode;不返回任何文档

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