如何将Notes文档链接转换为HTML链接

问题描述:

我负责维护一些旧的代码,我们从消息中提取Notes链接,并将其转化为可从本地计算机上的HTML调用的链接(在其上安装Notes)。我们有一个链接起作用的情况,另一个链接不起作用。如何将Notes文档链接转换为HTML链接

我很努力地理解这段代码究竟做了什么,甚至为什么它甚至起作用。基本上,我们在电子邮件中查看“$ Links”属性。此属性的值,例如,在Notes中查看时,是这样的:

RFC2257F23:004852B9 
VFA5208C4C:6552DA01-VN422569FB:003AAC2D 
NF6D24A297:6579B8E3-NNC225805D:004D8678 

什么我们的代码做的就是让这个属性的二进制值,使用NSFItemInfo和OSLockBlock。然后从偏移量11开始,向后计算8个字节,将每个字节转换为2位十六进制值。然后再执行相同的操作3次,但将原来的偏移量8个字节向前移动。在这8个字节段的第1个和第3个之后插入'/'字符。然后整个事件被附加到“注释:///”。最后,链接生成这个样子的:

Notes:///C2257F23004852B9/A5208C4C6552DA01422569FB003AAC2D/6D24A2976579B8E3C225805D004D8678 

我猜测,这个值表示文档链接的注意事项UNID,并且点击时,注意 启动,并直接进入文件。那么,有没有人有一个想法,为什么一个链接将工作,而其他失败?我们的客户声称Notes链接数据库是完好无损的,并且可以从Notes本身中成功查看 。

+0

您能否提供一个工作示例和一个非工作示例?关于Notes链接的一些信息可以在这里找到:https://www-10.lotus.com/ldd/dominowiki.nsf/dx/notes-urls –

+0

上面的数据是工作示例。非工作示例看起来完全一样,除了一组不同的十六进制代码,我认为这不会有多大帮助。我会看看关于Notes Links的信息 - 谢谢。 –

+0

一个显而易见的问题是,Notes客户机中的非工作机器是否是死链接。另一个明显的问题是用户点击链接是否可以访问数据库和文档。当您(和/或最终用户)单击浏览器中的非工作链接时,会发生什么?当您(和/或最终用户和/或具有完全访问管理员权限的用户分配并激活)在Notes客户端中点击它时会发生什么? –

注 - 链接由协议,服务器部分,数据库部分和数据库内的元素组成。

一个正常的例子是:

笔记://server/path/database.nsf/view/keytodocumentinview

每个部分(除服务器)可以由内部ID来代替。

  • 路径/ database.nsf - >副本ID(在你的例子C2257F23004852B9)
  • 视图 - >视图的设计元素的通用ID(A5208C4C6552DA01422569FB003AAC2D)
  • keytodocumentinview - >通用ID (6D24A2976579B8E3C225805D004D8678)

如果链接中没有服务器,则Notes客户端会尝试“猜测”正确的服务器。它会检查:

  1. 桌面上是否存在请求的副本ID的图标。如果是:将最后一次使用的副本的服务器(如果副本堆叠在顶部)
  2. 我可以找到一个catalog.nsf(从位置文档或邮件主服务器上的目录服务器上)如果是:是replica- ID在那里如果是:以从那里服务器...
  3. 询问用户服务器(不知道那一部分,因为它并不总是似乎发生)

所以答案您的问题是:

如果客户端无法找到任何引用的服务器链接将无法正常工作。 因此,将正确的服务器添加到链接总是更好(如果你知道的话)。

只是为了解释,如何从一种形式到另一个,这里是一些更多的解释:

有些时候,这些ID都表示不同的作为$链接 - 项目发现:

的第一个字母代表的ID的 “类型”:

R =副本ID V =查看通用ID N =注意通用ID

所有32位值是分隔符编辑16位的2个半字节,由另一个字符作为前面的字符,告诉“First”(F)或“Second”(= Next,N)值。

其余分为8个字母块,第一个和第三个八位字节用冒号分隔,前半部分和后半部分用负号分开。

就像你可以很容易地看到:

RFC2257F23:004852B9转化为FC2257F23004852B9

VFA5208C4C:6552DA01-VN422569FB:003AAC2D转化为A5208C4C 6552DA01 422569FB 003AAC2D

NF6D24A297:6579B8E3-NNC2258 05D:004D8678翻译成6D24A297 6579B8E3 C225805D 004D8678

+0

谢谢你,这是非常有帮助的。我想可能我的客户有一个腐败的数据链接,但我会进一步研究它。 –