如何从一个代理运行到另一个在不同domino服务器上运行的代理



简要描述

我们确实有多个Domino服务器(DS(。每个DS都托管着几个邮件数据库。我想删除特定的邮件数据库。删除过程由外部应用程序触发,该应用程序可以运行DS代理。外部应用程序还可以将参数传递给代理。

基础设施概述

我有一个名为delete-database.nsf的笔记数据库(ND(。这个ND是用3个Domino服务器(DS(复制的,我们称它们为DS1DS2DS3

工作流

外部应用程序将使用参数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 *

到目前为止,最简单的方法是向另一个数据库发送一封内部邮件,其中包含您需要的所有信息。在另一个数据库中,您创建了一个代理,该代理在邮件到达时运行,检查邮件是否来自正确的来源,然后执行您需要的任何内容。您只需要将数据库设置为邮件数据库即可。

最新更新