• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Запустить агент из другой базы

  • Автор темы SlavaRahmatov
  • Дата начала
S

SlavaRahmatov

Всем добрый день.
Как, находясь в одной базе запустить(выполнить) агент из другой базы.

На данный момент сделано так: агент, библиотека, нужные формы и представления скопированы из исходной базы в текущую, опробован запуск-работает, но планируется запускать этот агент и с других баз тоже, (это Агент для создания отчетов), боюсь, что потом будет труднее остлеживать изменения.

Какой может быть принцип(алгоритм) для решения этой задачи?!
С помощью LS открыть базу (Set db) и выполнить запуск агента из db?
Lotus 7.2
Какие комманды для этого использовать?
 
H

hosm

С помощью LS открыть базу (Set db) и выполнить запуск агента из db?
Lotus 7.2
Какие команды для этого использовать?
примерно так:
Код:
Dim ag as NotesAgent
Set ag = db.GetAgent("имя")
if not ag is Nothing then
call ag.Run ' или ag.RunonServer - если надо запускать на сервере
end if
 
A

alik86

Дизайнерский хелп. Находим NotesAgent class и изучаем (особое внимание обращаем на методы Run и RunOnServer), смотрим примеры.

Код:
'Examples: RunOnServer method 
Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim agent As NotesAgent
Set db = s.CurrentDatabase '<- тут указываете не текущую базу, а нужную вам 
Set agent = db.GetAgent("Agent to be run LotusScript")
If agent.RunOnServer = 0 Then
Messagebox "Agent ran",, "Success"
Else
Messagebox "Agent did not run",, "Failure"
End If
End Sub
 
S

SlavaRahmatov

Код:
 Set db = s.CurrentDatabase '<- тут указываете не текущую базу, а нужную вам
А как это сделать?

Ведь
Set db = s.CurrentDatabase использует текущую базу, и написав например
Set db = s.Mybase.nsf
получится глупость.

Если я правильно понял, то нужную базу можно ОТКРЫТЬ примерно так? (см. ниже)
Или как то иначе ?
Код:
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Call workspace.OpenDatabase _
( "Algiers", "new\plan", "All by Category", _
"Current", False, False )
End Sub
Как правильно присвоить db другую базу(не открывая в окне для работы) ?
 
N

nvyush

См. в справке
Set notesDatabase = notesSession.GetDatabase( server$, dbfile$ [, createonfail ] )
flag = notesDatabase.OpenByReplicaID( server$, replicaID$ )
 
S

SlavaRahmatov

См. в справке
Set notesDatabase = notesSession.GetDatabase( server$, dbfile$ [, createonfail ] )
flag = notesDatabase.OpenByReplicaID( server$, replicaID$ )

А для чего нужно flag = notesDatabase.OpenByReplicaID( server$, replicaID$ ) ?

За 10 минут с Вашей сделал то что хотел.
Заработало, даже сам не ожидал что ТАК будет!
Большое спасибо.
 
S

SlavaRahmatov

Вам же написали:У вас какие-то сложности с открытием хелпа дизайнера?
Нет, скорее с внимательностью :)
Просто так обрадовался (я раньше скриптами почти не пользовался- боялся), что аж...
А в хелпе действительно все очень ХОРОШО описано.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!