【问题标题】:OpenText Livelink Content Server call "GetNode" does not return any documentOpenText Livelink Content Server 调用“GetNode”不返回任何文档
【发布时间】:2015-08-31 16:02:12
【问题描述】:

大家好。

此问题与名为 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 服务器上的 DocumentManagement.GetNode() 失败。没有返回任何结果。检查 Livelink 服务器线程日志。 (服务器日志上没有任何内容!)

2) 使用 GetNodeByNickName("229835") 一切正常。

3) 使用 GetGUID(229835) 我们首先检索像“3F67..8942”这样的 GUID,然后使用 GetNodeByGUID(""3F67..8942")一切正常。

所以我的问题是为什么第一个命令失败而其他两个有效?

认为这“似乎”发生在某些类型的 XLS、XLSX、ZIP、DOC、DOCX 文件中。大小不超过 2 Mb。

【问题讨论】:

  • 我认为这与 Web 服务没有任何关系。这听起来像是安装中的缺陷。您运行哪个补丁级别?它是在 Windows(C# Web 服务)还是 *IX(Java Web 服务)上运行?
  • 我现在正在检查补丁级别。系统在windows上运行

标签: c# web-services opentext livelink


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-06-19
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多