我最近切换到 Notes Designer 8.5.2 并注意到如果我正在编辑一个计划在每天 08:00 运行的代理,该代理会在保存程序员面板中的更改后立即运行。
这是一个新功能吗?我如何避免代理现在运行?
我最近切换到 Notes Designer 8.5.2 并注意到如果我正在编辑一个计划在每天 08:00 运行的代理,该代理会在保存程序员面板中的更改后立即运行。
这是一个新功能吗?我如何避免代理现在运行?
不,这是一个老错误...{ahem}...功能。至少我在 6.0 和可能更早的版本上处理了很多。当您保存计划代理时,您会清除服务器上计划代理今天运行的记录,并将代理放回队列中。
我采用的解决方法是将计划代理更改为隐藏的手动代理。然后我会创建另一个运行隐藏手动代理的计划代理。然后,您可以根据需要编辑手动代理,而无需在保存时触发它。
这是我在计划代理中使用的通用代码。只需更改代理的名称,这应该对您有用:
Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim agt As NotesAgent
Set db = s.CurrentDatabase
Set agt = db.GetAgent("(Send Reminders)")
Call agt.Run()
End Sub
更新:
如果您有权访问服务器,则可以将设置添加到 Notes.ini 以防止这种行为:
Amgr_SkipPriorDailyScheduledRuns=1
在已启用的生产应用程序中编辑代理并不被认为是一种好的做法,但如果您需要对其进行处理,请更改在一天结束时运行的时间,直到您完成。您仍然可以从代理视图运行代理,以检查是否有任何更改破坏了进程。
多年来,我实际上发现此功能很有用,因为它允许我通过在 domino Designer 中打开并保存代理来强制服务器重新运行代理。它总是可以从代理列表手动运行代理,但这是不可取的,因为它将使用您的凭据(用户 ID)运行,因此如果在服务器 ID 下运行,它的行为方式可能不同。