Серверный агент

Kizarek86

Lotus team
20.07.2007
864
4
#1
Код:
	Dim docST As NotesDocument
Dim ws As New NotesUIWorkspace
Set docST = ws.CurrentDocument.Document

Dim s As New NotesSession
Dim db As NotesDatabase
Dim agent As NotesAgent
Set db = s.CurrentDatabase
Set agent = db.GetAgent("ServerAgentTest")
If agent.RunOnServer(docST.NoteID) = 0 Then
Messagebox "Agent ran",, "Success"
Else
Messagebox "Agent did not run",, "Failure"
End If

Собственно как вообще отловить в серверном агенте переданный параметр?

И возможно ли вернуть значение в текущий документ?


Как передать в агент нашел...получить каким либо способом можно?Данных должно возвращаться много...
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 802
21
#2
думаю только записывать исходящие параметры в какой-нить другой документ... или же в обрабатываемый... тут все зависит от задачи

и, думается мне, Messagebox - тут лишнее... лучше использовать Print
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#3
ребята, ну вы вообще разленились... это ведь уровень хэлпа...

Syntax
status = notesAgent.RunOnServer( [ noteID$ ] )
Parameter
noteID$
String. Optional. The note ID of a document. This value is passed to the ParameterDocID property of the called agent.
вернуть значения можно через тот же документ, что передан агенту, только нужно его в агенте предварительно сохранить, а в вызывающем коде получить заново из базы...
часто агенту передают временный документ, т.е. создают перед запуском агента, удаляют либо агентом, либо после его отработки...
минусы - у пользователя должна быть возможность создать документ!

и, думается мне, Messagebox - тут лишнее... лучше использовать Print
судя по всему указанный код работает локально! поэтому, мессадж тут имеет собственное назначение...
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 802
21
#4
ну вообще из контекста - это серверный агент. или я что-то я не правильно читал ... да и RunOnServer по моему применяетяс к серверам?
А для локально используют метод Run
А на сервере Messagebox - не есть хорошо.
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#5
ну вообще из контекста - это серверный агент. или я что-то я не правильно читал ... да и RunOnServer по моему применяетяс к серверам?
где "это" серверный агент? :) из указанного кода видно, что какой-то агент запускается на сервере с пом. команды RunOnServer. сам агент не приводится, а приводиться лишь код, кот его (агент) запускает...

А на сервере Messagebox - не есть хорошо.
серверу как-то пофик :) только в случае с вебом использовать print некорректно, т.к. он принтует в html, а messagebox пишет в лог...
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 802
21
#6
Тема звучит как "серверный агент", в коде приводится метод запуска на сервере.
Мне лично достаточно. Если что-то не так - пусть автор уточнит
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#7
мы токо зря тему зафлудим :)
ты правильно понял тему и т.п., но тот кусок кода, что приведен, - работает локально, и запускает агент на сервере :)
а локальные мессаджбоксы - обычные модальные сообщения, принты принтуют в статус-бар... эти ж мессаджи не в серверном агенте :)