Lotus notes 无法将文档存档到lotus notes中的存档数据库

Lotus notes 无法将文档存档到lotus notes中的存档数据库,lotus-notes,lotus-domino,lotusscript,lotus-formula,domino-designer-eclipse,Lotus Notes,Lotus Domino,Lotusscript,Lotus Formula,Domino Designer Eclipse,有一个代理将文档存档到存档数据库,并将其从当前数据库中删除,但当我运行该代理时,一些文档被存档,存档停止,并出现错误 “存档挂起的请求:4000:第33行:用户定义的错误” 幸运的是,您的代码有一个错误处理程序。。。因此,我们确切地知道该错误发生在哪一行: Call doc.Save(True, False) 这意味着:无法保存代码所处理的文档 不幸的是,错误号4000是一个通用错误,可能意味着很多事情。 我猜,在您的情况下,文档已经增长到很大(一个字段中的数据超过32k),因此无法保存

有一个代理将文档存档到存档数据库,并将其从当前数据库中删除,但当我运行该代理时,一些文档被存档,存档停止,并出现错误 “存档挂起的请求:4000:第33行:用户定义的错误”


幸运的是,您的代码有一个错误处理程序。。。因此,我们确切地知道该错误发生在哪一行:

Call doc.Save(True, False)  
这意味着:无法保存代码所处理的文档

不幸的是,错误号4000是一个通用错误,可能意味着很多事情。 我猜,在您的情况下,文档已经增长到很大(一个字段中的数据超过32k),因此无法保存

我会以这种方式修改代码,它会写一个关于无法归档的文档的日志,然后继续处理下一个文档,而不是崩溃。因此,您还需要更改逻辑,因为如果无法保存文档,文档将永远不会从视图中消失:

Dim viwNav as NotesViewNavigator
Dim ve as NotesViewEntry
Set viwNav = Oview.CreateViewNavigator()
Oview.AutoUpdate = False
Set ve = viwNav.GetFirst()
While Not(ve Is Nothing)           
    Set doc = ve.Document
    On Error Goto errorHandlerDoc
    Call doc.CopyToDatabase(archdb) 
    doc.Archived = "True"
    Call doc.Save(True, False)   
NextDoc:   
    Set ve = viwNav.GetNext(ve)
Wend    
On Error Goto errorHandler

Set Oview2 = Odb.GetView("Archive Requests 2")
Call Oview2.Refresh
Set Ovc = Oview2.AllEntries

Exit Sub    
errorHandlerDoc:
  Msgbox "Archiving Pending Requests: " + Format$(Err) + " : Line " + Format$(Erl) + " : " + Error$(Err) + " for document " + doc.UniversalId
  Resume NextDoc
errorHandler:
  'LogAction("Archiving Pending Requests: " + Format$(Err) + " : Line " + Format$(Erl) + " : " + Error$(Err) )
  Msgbox "Archiving Pending Requests: " + Format$(Err) + " : Line " + Format$(Erl) + " : " + Error$(Err)  

嗨,托斯滕,谢谢你的帮助。我有5000多个文档要归档,但问题是此代码显示了错误文档的通用ID,但它总是要求确认以转到下一个文档。(错误显示为带有“确定”按钮的文档的通用ID)由于文档计数非常高,怎么可能很难始终单击“确定”按钮,你能帮我一下吗?然后用“打印”替换“msgbox”。。。抱歉:但是您真的在不了解LotusScript最简单的基础知识的情况下修改了5000个文档吗?这有点可怕。。。。请确保:您知道您的代码不会从原始数据库中删除文档,而是复制它们,然后简单地将“存档”标志设置为true?我是这项技术的新手,我知道这段代码只是在文档中添加了一个标志,它不会从原始数据库中删除文档。但是当我们运行代理时出现错误时,这段代码会在错误文档处停止,而不会移动到下一个文档,它正在多次复制错误文档,直到我强制停止该过程。请检查我的编辑:使用NotesViewNavigator,不要刷新视图,然后它将工作
Dim viwNav as NotesViewNavigator
Dim ve as NotesViewEntry
Set viwNav = Oview.CreateViewNavigator()
Oview.AutoUpdate = False
Set ve = viwNav.GetFirst()
While Not(ve Is Nothing)           
    Set doc = ve.Document
    On Error Goto errorHandlerDoc
    Call doc.CopyToDatabase(archdb) 
    doc.Archived = "True"
    Call doc.Save(True, False)   
NextDoc:   
    Set ve = viwNav.GetNext(ve)
Wend    
On Error Goto errorHandler

Set Oview2 = Odb.GetView("Archive Requests 2")
Call Oview2.Refresh
Set Ovc = Oview2.AllEntries

Exit Sub    
errorHandlerDoc:
  Msgbox "Archiving Pending Requests: " + Format$(Err) + " : Line " + Format$(Erl) + " : " + Error$(Err) + " for document " + doc.UniversalId
  Resume NextDoc
errorHandler:
  'LogAction("Archiving Pending Requests: " + Format$(Err) + " : Line " + Format$(Erl) + " : " + Error$(Err) )
  Msgbox "Archiving Pending Requests: " + Format$(Err) + " : Line " + Format$(Erl) + " : " + Error$(Err)