Приветствую всех !
Используя Brodcast Message накатал агентика, по отправке сообщений, но возникли грабли
При тестировании на кошках (я и фейковый юзер), проблем не наблюдалось.
А потом время показало, что после запуска агента проходит мин 5-10, пока появиться сообщение об успешной отправке.
Написал логирование и словил ошибку ОШИБКА: " 4000:Notes error: No response from server for this command " см в приложенных текстах далее.
Прошу плиззз гуру наставьте на путь истинный "начинающего".
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Вызов агента (вырезки из кода)</div></div><div class="sp-body"><div class="sp-content">
Dim pardoc As NotesDocument
Dim item As NotesItem
Dim session As New NotesSession
Dim user As NotesName
Dim agent As NotesAgent
Dim db As NotesDatabase
Set db=session.currentdatabase
Set user = New NotesName(CStr(session.UserName))
' Создаем документ для параметров
Set pardoc = db.CreateDocument
' Наполняем полями
Set item = pardoc.AppendItemValue("singer", user.Common)
item.IsAuthors=True
Call pardoc.save(True, True)
' Устанавливаем привязку параметрического документа
Set agent = db.GetAgent("(Broadcasting)")
Call agent.RunOnServer(pardoc.Noteid)
MessageBox "Сообщение отправлено, попробуйте войти в документ позже...",64,"Сообщение успешно отправлено."
Параметры запуска Агента:
Runtime Trigger On event Agent list selection
Target None
Options Shared и Profile this agent
Run of behalf of - Administrator
Runtime security level 3.Allow restrict operations with full administration rights
галки стоят All readers and above и Allow Public access users to view and run this agent
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Агент</div></div><div class="sp-body"><div class="sp-content">
Option Public
Sub Initialize()
On Error GoTo err1
Dim s As New NotesSession
Dim agent As NotesAgent
Dim doc As NotesDocument
Dim db As NotesDatabase
Dim mes As Variant
Set db = s.CurrentDatabase
' db.delayupdates = False
Set agent = s.CurrentAgent
agentName$=agent.name
agentSigner$ = agent.Owner
agentDb$=db.Title
agentServer$=db.Server
Dim agentLog As New NotesLog("Agent log")
Call agentLog.OpenAgentLog
Call agentLog.LogAction("Start")
'---------------------------начало основного кода агента здесь
' Получение параметрического дока через запуск агента
Set doc = db.GetDocumentById(agent.ParameterDocID)
<--вот здесь получаю после отправки ОШИБКА: " 4000:Notes error: No response from server for this command ". Как следствие сообщение не доходит до адресата.
mes = "Пользователь "+doc.singer(0)+" просит Вас освободить сообщение ..."
Call s.Sendconsolecommand(db.server, |BROADCAST "(!) BROADCAST "(!) |+mes+|" "|+doc.locker(0)+|"|)
' Прощаемся с док-ом
Call doc.remove(True)
Call agentLog.LogAction("Success")
Call agentLog.Close
'---------------------------конец основного кода агента
Exit Sub
err1:
tema$={Произошла ошибка в агенте "}+agentName$+{" в БД "}+agentDb$+{" на сервере "}+agentServer$+{"}
Call agentLog.LogAction(tema$)
Call agentLog.Close
mess$={ОШИБКА: "} & Str(Err) & {:} & Error$ & { " в строке } & Erl() & {.}
Call errormail(tema$,mess$,agentSigner$)
Exit Sub
End Sub
Sub errormail(tema As String, mess As String, who As String)
Dim s As New NotesSession
Dim db As NotesDatabase
Set db=s.currentdatabase
Set mdoc=db.createdocument
mdoc.form="Memo"
mdoc.Subject=tema
mdoc.SendTo=who
Set rtitem = New NotesRichTextItem( mdoc, "Body" )
Call rtitem.AppendText(mess)
Call mdoc.Send(False)
End Sub