【问题标题】:NotesDocument opens twiceNotesDocument 打开两次
【发布时间】:2020-05-29 03:51:36
【问题描述】:

我有一个使用 2 个服务器和 2 个数据库的应用程序。 服务器 1 - 主应用程序 服务器 2 - 日历

在主应用程序中启动文档时,我有一个指向日历条目的链接。这将打开日历服务器上的日历条目。日历条目中有一个链接,可在主应用程序中启动文档。

此操作使用 notesuiworkspace.editDocument 函数执行。

我遇到的问题是,在上面的场景中,我在应用程序中打开了主文档(1 个文档)。然后我单击按钮启动日历条目(我现在打开了 2 个文档,主应用程序中的文档和相应的日历条目)。如果我然后单击打开主文档按钮,它将打开主文档的另一个副本。如果用户不知道他们会导致保存冲突。

Notes 的多个版本都出现了这种情况,目前是 10。

主应用程序服务器 1 文档中用于打开日历条目的代码:

Set uidoc = ws.CurrentDocument
Set doc = Srv1.GetDocumentByUNID(uidoc.FieldGetText("CalenderUNID")
If Not (doc Is Nothing) Then
  Set uidoc = ws.EditDocument(True, doc)
End If      

从日历条目到 Server1 上的主文档的代码

sID = uidoc.FieldGetText("MainUNID")
Set doc = Srv1.GetDocumentByUNID(sID)
If Not (doc Is Nothing) Then
  Call uidoc.Close(True)
  Set uidoc = ws.EditDocument(True, doc)
End If

【问题讨论】:

  • 请出示您的代码。
  • 现在已经这样做了。

标签: lotus-notes lotus


【解决方案1】:

请检查documentation NotesUIWorkspace 中的“EditDocument”:

设置 notesUIDocument = notesUIWorkspace .EditDocument( [editMode] , [notesDocument] , [notesDocumentReadOnly] , [documentAnchor$] , [returnNotesUIDocument] , [newInstance] )

你看,有一个可选参数“newInstance”。如果您进一步阅读,它会说:

新实例

布尔值。选修的。如果为 True(默认),则在 UI 中打开 notesDocument(参数 2)的新实例。如果为 False,则将焦点转移到 notesDocument 的现有实例(如果存在),或者转移到新实例(如果不存在)。如果未指定 notesDocument 或文档有目标框架,则此参数不适用。

只需相应地更改您的代码:

Set uidoc = ws.EditDocument(True, doc,False,"",True,False)

但请注意:“newInstance”标志存在(小)错误: 如果您创建一个新的主文档并保存它。然后打开日历文档并单击返回主文档的链接,然后将始终有第二个带有主文档的窗口,除非您在此期间关闭并重新打开主文档......保存后关闭并重新打开新实例标志无法识别...

【讨论】:

  • 谢谢@Torsten - 这归结为 RTFM - 哈哈!我真的很兴奋,但是这个小错误本质上意味着它对我不起作用。你知道它在什么情况下有效吗?这并不常见,但它是一些代表保存冲突的原因,我想关闭它。我也会用 HCL 记录它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-10
  • 2018-11-04
  • 2021-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多