LotusScript getNextDocument文件数量

时间:2016-08-29 10:44:04

标签: view lotus-domino lotusscript agent

  1. 我的NotesView名为" status"选择:documentStatus = 0,
  2. 我是一名来自"状态"的所有文件的lotusscript代理人。查看并将documentStatus值更改为1。
  3. 代理人运行"状态"视图应该是空的,但有代理没有处理的文件。

    我犯了错误吗?

    有一个Lotussript代码:

    Set doc = view.Getfirstdocument()
    While Not ( doc Is Nothing)
        Set docNext = view.Getnextdocument(doc)
        Call doc.Replaceitemvalue("documentStatus", 1)
        Call doc.Save(True, True)
        Set doc = docNext
    Wend
    

3 个答案:

答案 0 :(得分:3)

用一行开始你的代码

view.AutoUpdate = false

这可以防止在代理运行期间刷新视图。

答案 1 :(得分:0)

好的,我明白了。

我认为view.GetNextDocument(doc)并没有将文档分配给docNext变量,而是将文档的位置分配给视图。代理保存文档后,它从视图中删除(因为选择标准)并且循环错误文档丢失了一些。

而不是view.GetNextDocument(doc)我在循环结束时使用了view.GetFirstDocument()。

我将代码修改为:

Set doc = view.Getfirstdocument()
While Not ( doc Is Nothing)
    Set docNext = view.Getnextdocument(doc)
    Call doc.Replaceitemvalue("documentStatus", 1)
    Call doc.Save(True, True)
    Set doc = view.Getfirstdocument()
Wend

答案 2 :(得分:0)

将文档收集到一个集合中然后逐步完成收集进行更改

会好得多
view.AutoUpdate = false

将阻止视图在您工作时刷新,因此将停止服务器接收许多更新以进行视图重新索引

如果有很多,您可能需要考虑关闭复制,直到您完成