简要描述
我们确实有多个Domino服务器(DS
(。每个DS
都托管着几个邮件数据库。我想删除特定的邮件数据库。删除过程由外部应用程序触发,该应用程序可以运行DS
代理。外部应用程序还可以将参数传递给代理。
基础设施概述
我有一个名为delete-database.nsf
的笔记数据库(ND
(。这个ND
是用3个Domino服务器(DS
(复制的,我们称它们为DS1
、DS2
和DS3
。
工作流
外部应用程序将使用参数mailserver和mailfilename在DS1
上运行agent1
。假设mailserver参数值为DS2
,mailfilename参数为maildoe.nsf
。
由于我无法像代理当前运行的那样删除不在同一DS
上的邮件数据库,我正在副本数据库上调用agent2
(基于mailserver参数(,并传递邮件文件名。
Agent2
应该接收malfilename参数并删除邮件数据库,该数据库与自身位于同一DS
上。
问题
如何从DS1
上的agent1
调用DS2
上另一个名为agent2
的代理,并传递mailfilename等参数。
我试过了,但它没有调用agent2,也没有传递参数。
agent1
:代码
Dim ses As New NotesSession
Dim db2 As NotesDatabase
Dim agent2 As NotesAgent
Dim docTemp As NotesDocument
Set db2 = New NotesDatabase( "DS2/Certifier", "delete-database.nsf" )
Set agent2 = db2.GetAgent( "agent2" )
Set docTemp = New NotesDocument( db2 )
' Parameters
docTemp.mailfilename = "maildoe.nsf"
Call agent2.runWithDocumentContext( docTemp )
agent2
:代码
Dim ses As New NotesSession
Dim docTemp As NotesDocument
Dim description As String
Dim mailserver As String
Dim mailfilename As String
Set docTemp = ses.DocumentContext
mailfilename = docTemp.mailfilename
' * Delete mail file part *
' * ... *
' * Delete mail file part *
到目前为止,最简单的方法是向另一个数据库发送一封内部邮件,其中包含您需要的所有信息。在另一个数据库中,您创建了一个代理,该代理在邮件到达时运行,检查邮件是否来自正确的来源,然后执行您需要的任何内容。您只需要将数据库设置为邮件数据库即可。