Lotus notes 使用调度代理刷新lotus文档

Lotus notes 使用调度代理刷新lotus文档,lotus-notes,lotus-domino,lotusscript,lotus,agent,Lotus Notes,Lotus Domino,Lotusscript,Lotus,Agent,我在计算显示文本字段上有一个错误。 对于每个文档,我都以编辑模式打开它,然后重新保存以更正它。 我在许多数据库和文档上也有同样的问题。 我试图通过uiworkspace中的函数EditDocument在整个基础上使用代理更正它。详情如下: Option Public Option Declare Sub Initialize Dim session As New NotesSession Dim db As NotesDatabase Dim col As NotesDocumentColl

我在计算显示文本字段上有一个错误。 对于每个文档,我都以编辑模式打开它,然后重新保存以更正它。 我在许多数据库和文档上也有同样的问题。 我试图通过uiworkspace中的函数EditDocument在整个基础上使用代理更正它。详情如下:

Option Public
Option Declare

Sub Initialize

Dim session As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim view As NotesView
Dim doccand As NotesDocument
Dim doc As NotesDocument
Dim result As Integer
Dim uiwks As New NotesUIWorkspace
Dim uidoc As NotesUIDocument

Set db  = session.Currentdatabase
Set col = db.Unprocesseddocuments
Set docCand =  col.getfirstdocument

On Error Resume next

While Not docCand Is Nothing
    Set uidoc =  uiwks.Editdocument(True, docCand)
    Call uidoc.save
    Call uidoc.close(True)
    Set docCand =  view.getNextdocument(docCand)
Wend

End Sub
只有当我从Notes客户端启动时,此函数才能更正此问题。它不作为domino服务器中的计划任务工作。我尝试使用computewithform,但没有uiworkspace,它也不起作用。 有人可以在scheduled agent中通过编辑和保存文档进行刷新吗

为显示文本字段计算

这种类型的字段不会保存在文档中,它与计算文本是一样的

关于您的解决方案:

NotesUIWorkspace和EditDocument不能用于在后台(即服务器上)运行的计划代理中,而只能从UI中使用(这就是为什么在运行LN时它可以工作的原因)

您需要做的是使用NotesDocument中的方法。它将在后台刷新文档(无需打开/保存)

请注意,在您的脚本中有一个问题,您试图从未初始化的视图中获取下一个文档。我想你应该用col来代替

Set docCand =  view.getNextdocument(docCand)
为显示文本字段计算

这种类型的字段不会保存在文档中,它与计算文本是一样的

关于您的解决方案:

NotesUIWorkspace和EditDocument不能用于在后台(即服务器上)运行的计划代理中,而只能从UI中使用(这就是为什么在运行LN时它可以工作的原因)

您需要做的是使用NotesDocument中的方法。它将在后台刷新文档(无需打开/保存)

请注意,在您的脚本中有一个问题,您试图从未初始化的视图中获取下一个文档。我想你应该用col来代替

Set docCand =  view.getNextdocument(docCand)

不应保存为显示而计算的字段。您不必进行刷新

据我所知,只有一种情况保存了computed for display字段的值。当表单上的字段最初设计为常规计算字段,但后来有人将其更改为“计算以显示”时,就会发生这种情况。原始的计算字段被保存为存储文档中的项目,即使在字段更改为computed for composited Notes后,也将继续看到保存的值。如果发生了这种情况,那么您真正想要做的就是运行一个代理来删除保存的值。例如:

FIELD myFieldThatUsedToBeComputedButIsNowCFD := @DeleteField;

不应保存为显示而计算的字段。您不必进行刷新

据我所知,只有一种情况保存了computed for display字段的值。当表单上的字段最初设计为常规计算字段,但后来有人将其更改为“计算以显示”时,就会发生这种情况。原始的计算字段被保存为存储文档中的项目,即使在字段更改为computed for composited Notes后,也将继续看到保存的值。如果发生了这种情况,那么您真正想要做的就是运行一个代理来删除保存的值。例如:

FIELD myFieldThatUsedToBeComputedButIsNowCFD := @DeleteField;

如果它是为显示而计算的,则不会保存它,并且每次有人打开文档阅读时都会重新计算它。如果您已经更正了公式,那么没有人会看到错误。我真的看不出刷新的意义。它是一个为显示计算的字段,在上次保存文档时保存。我必须切换到编辑模式以查看更正。计算字段和计算用于显示字段之间的区别在于,计算用于显示字段不会保存到文档中,并且仅在打开文档进行显示时计算。如果计算用于显示,它不会保存,并且每次有人打开文档阅读时都会重新计算它。如果您已经更正了公式,那么没有人会看到错误。我真的看不出刷新的意义。它是一个为显示计算的字段,在上次保存文档时保存。我必须切换到编辑模式才能看到更正。计算字段和计算显示字段之间的区别在于,计算显示字段不会保存到文档中,只有在打开文档进行显示时才会计算。