HCL Domino 11 Javascript提交表单后重定向回同一编辑文档视图未刷新问题
问题原因
原有方案走不通的核心原因是:WebQuerySave代理执行时,当前正在提交保存的文档还未被纳入视图索引的更新事务中,视图的Refresh方法也无法捕获到仍在保存流程里的当前文档,所以永远只能拿到上一次保存的文档。
实际上完全没必要通过视图取最新文档,WebQuerySave代理本身就可以直接获取到当前正在处理的提交文档,不需要绕视图查询的逻辑。
修复后的代码
Sub Initialize Dim session As New NotesSession Dim db As NotesDatabase Dim doc As NotesDocument Dim docUnid As string Set db = session.CurrentDatabase ' 直接获取当前Web提交正在保存的文档,不需要查询视图 Set doc = session.DocumentContext docUnid = doc.Universalid Print "[https://kclisd01/nibsport.nsf/(WorkOrders)/" & docUnid & "?editDocument]" End Sub
补充说明
session.DocumentContext是Lotus Domino专门为Web请求代理提供的内置对象,直接对应当前触发WebQuerySave的前端提交文档,100%准确不会匹配到其他文档,也不需要依赖视图索引更新- 该实现方式性能远高于查询视图,同时完全避免了视图刷新不及时、多人同时提交时拿错他人最新文档的并发问题
内容的提问来源于stack exchange,提问作者Keertika
相关产品推荐
相关产品推荐

