Lotus Domino中的预定代理:如何在不运行“now”的情况下进行调度

时间:2014-09-02 10:32:20

标签: scheduled-tasks lotus-notes lotus-domino lotusscript lotus-formula

关于StackOverflow的第一个问题,请耐心等待..

我想创建一个预定的代理人,每晚半小时在23:00到01:00之间运行。它绝对不能运行befpre。

Domino似乎让我嗤之以鼻。

如果我将座席时间表设置为每天超过一次,每半小时,在上述时间之间,与目标所有文档...我保存后立即运行。

如果我禁用它,将其全部设置,然后启用它......启用后立即运行。

似乎如果你有一个代理人每天应该运行一次以上,它总是立即运行。

请注意,我知道如果时间早于21:00,我可以在代理中放置一些LotusScript代码,以便第一次运行不做任何事情。当然......我不应该这样做!

但无论如何,如果代理人是一级方程式赛车,这没有任何帮助。除非你输入像

这样的东西,否则没有选择退出
@if(@hour(@now)<21;@return("");"continue);

..作为第一行非常混乱。

所以..问题:

如何设置它以便我将代理保存为每天运行多次,并且只在我指定的时间后运行?

谢谢!

修改 使用LotusScript代理有一些关于如何停止第一次运行的选项。 然而真正的问题是一个公式代理。我没有写代理,也没有时间在LotusScipt中重写它 - 所以它必须是公式。它在公式方面也快得多!

代理运行22,000个文档并更改了一个简单字段。 @if(@hour(@now)&lt; 21; @return(&#34;&#34;);&#34;继续);线会工作,但它真的很笨拙。

3 个答案:

答案 0 :(得分:3)

代理商确实倾向于这样做。您是否尝试将其设置为&#34;在此日期开始运行代理&#34;并指明明天的约会?它不会在第一天的23:00运行,但至少它不会在14:27运行。

否则,你似乎已经有了答案,而且看起来并不是那么糟糕。不过,我认为LotusScript或Java是比这个公式更好的选择。您不希望它考虑所有处理过的文档。我想如果你真的不希望它在错误的时间运行,那么把时间检查放在一起是一个很好的安全措施,它只是一条线。

另一种选择是将代理设置为运行&#34;从不&#34;,并在服务器的通讯录中创建一个或多个程序文档,指示它在任何特定时间运行代理想要的。

答案 1 :(得分:2)

我相信规则是所有预定的代理都会在保存后立即运行。

我使用的技巧是设置两个代理。一个代理人将是您的主要代理人,基本上就是您刚才编写的代理人。将其设置为手动,并将其命名为&#34; Primary Agent&#34;。您稍后会重命名。

第二个代理应该只调用主代理。您可以使用此LotusScript:

Dim s as New NotesSession
Dim db as NotesDatabase
Dim agent as NotesAgent

Set db = s.CurrentDatabase
Set agent = db.GetAgent("(Real Name Of Agent)")
agent.Run

最后,您可以将您的第一个代理重命名为&#34;(代理的真实姓名)&#34;并且你已经避免让它自动启动。

或者,您可以向服务器的Notes.ini添加设置以防止此自动运行行为:

Amgr_SkipPriorDailyScheduledRuns=1

答案 2 :(得分:1)

如果预定的代理程序已经过了那天的预定运行时间,则它们只会“立即”运行。由于它计划运行到凌晨1点并且还没有运行,它会运行。如果它已安排在2300-2359,那就不会。