Lotus notes 运行返回值

Lotus notes 运行返回值,lotus-notes,error-logging,lotus,agents,Lotus Notes,Error Logging,Lotus,Agents,我有一个代理运行其他代理(为了我的目的,我们称这些为“子代理”)。每次代理运行时,它都会记录其操作,无论是成功运行还是生成错误。我现在想要的是记录子代理是否会成功运行(使用NotesAgent.run/runnserver)。文档说明,如果子代理成功运行,此方法将返回0。但是当我强制子代理出错时,Run方法仍然返回0。有没有一种方法可以让它在发生错误时返回其他值?或者是否有其他方法可以将子代理事件记录到主代理的数据库中。请注意,子代理在其他数据库上运行。非常感谢D可能是将代理链接在一起的良好指南

我有一个代理运行其他代理(为了我的目的,我们称这些为“子代理”)。每次代理运行时,它都会记录其操作,无论是成功运行还是生成错误。我现在想要的是记录子代理是否会成功运行(使用NotesAgent.run/runnserver)。文档说明,如果子代理成功运行,此方法将返回0。但是当我强制子代理出错时,Run方法仍然返回0。有没有一种方法可以让它在发生错误时返回其他值?或者是否有其他方法可以将子代理事件记录到主代理的数据库中。请注意,子代理在其他数据库上运行。非常感谢D

可能是将代理链接在一起的良好指南。

可能是代理异步运行。启动代理时,它将成功启动并返回0。您可以通过单步执行代码来轻松确定这一点,如果代理很快启动,您就知道它们可能没有实际运行,但刚刚启动


如果是这样的话,您可能会从notes代理之外的一个中心位置获益,您可以在那里进行日志记录。它可以是单个文本文件,不过您必须考虑锁和并发性。或者,您可以将邮件通过电子邮件发送到另一个Notes数据库,并使用一个公共“ID”,以便将单个代理运行会话分组在一起。除了Notes代理之外,还有许多其他方法可以做到这一点。

这篇@giulio链接的文章概述了一种在“链接”代理之间有效传递数据的好方法

@Jairo可能面临的文章中示例的一个问题是,其noteid正在传递给子代理的文档(让我们称之为“代理”文档)存储在发起代理调用的数据库中。如果子代理位于同一个数据库中,这是可以的,但是原始描述指定子代理有时位于不同的数据库中。这意味着,如果要从子代理中检索和更新代理,首先需要获得调用DB的句柄

现在,在某些情况下,子代理可能不关心从何处调用它,但仍然希望将一些结果写入代理


因此,一个好的方法是将代理存储在您知道始终可用的位置。例如,当从Notes客户端的呼叫链接代理时,您可以将代理文档存储在本地“bookmarks.nsf”中。它是一个系统数据库,始终可用,因此是存储文档的好地方。然后,当您的子代理运行时,使用传入的“noteid”从bookmarks.nsf检索代理,而不必担心父代理驻留在何处。完成后从书签数据库中删除代理文档可能是一种好做法。

当通过NotesAgent.run(noteid)方法调用Notes代理时,它不会异步运行,也就是说,在子/子代理完成执行之前,父脚本会被有效地暂停。不过,我同意你关于登录到中心位置的观点仍然是一种有效的方法。然而,不需要通过电子邮件来完成真正的工作,更合理的做法是处理您正在登录的中心NotesDatabase并创建日志文档。而不是加重路由器交付文档的负担。