• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Проблема с запуском агента на Lotusscript

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

SkyDream

Доброе время суток!

Столкнулся с такой проблемой..
создал на форме кнопку и прописал код запуска агента

Код:
Sub Click(Source As Button)
Dim w As New NotesUIWorkspace
Dim s As New NotesSession
Dim agent As NotesAgent

Set agent=s.CurrentDatabase.GetAgent("AgentNew")
Call agent.run
End Sub

выдает следующую Ошибку
agent.jpg

сначало думал проблема в агенте
написал код на формуле
Код:
@Command([RunAgent];"AgentNew")
агент отработал спокойно

помогите разобраться в чем ошибка?
 
M

morpheus

Для: SkyDream
АF проббовали обработать результат выполенния агента?
Код:
If agent.Run = 0 Then
Messagebox "Agent ran",, "Success"
Else
Messagebox "Agent did not run",, "Failure"
End If
Код:
 
R

redbestcat

Ты используешь UI методы в агенте.

Если знаком с английским:

What does "Unsupported trigger and search in the background or embedded agent" mean?

This error is generated in a server-based agent (which can be a Web agent or any other agent invoked on the server) or embedded agent (an agent called by another agent) which references UI elements as trigger/search target settings in the agent builder. For example, suppose you create an agent that has action menu selection as a trigger and all selected documents as a search target. When you invoke the agent from the browser, you receive the unsupported trigger... error. The "all selected documents" concept is not understood within a Web agent; this setting is meaningful only in a Notes client. To fix the problem, change the target setting, for instance, to all documents or none. The following four options are not supported in this situation:

* All unread documents in view
* All documents in view
* All selected documents
* When documents are pasted documents
 
M

morpheus

Для: redbestcat
Кстати да, вполне может быть, в хєлпе по Run method написано
You cannot use the Notes UI classes in an agent called by this method. :huh:
 
R

redbestcat

Для: Morpheus
Да, а в агенте, который запускается формулой - можно. Именно так и есть в описании ошибки
 
S

Sandr

Посмотрите тригер агента, надо выставить ему none... Катати, а зачем вокспейс инициализировали? Смысл?
 
S

SkyDream

там сложный агент.... есть необходимость использовать UI

тогда как мне справиться с данной ситуацией, мне необходимо чтобы по нажитю кнопки отработал агент и после выполнения агента я мог прописать еще код?

запускать агент из LotusScropt используюя формулу? это возможно?
 
M

morpheus

Для: SkyDream
Канчено вазможно,
Код:
 Evaluate ( { @Command([RunAgent];"AgentNew") }, doc )

но помоему попахивает извратом
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Конечно изврат, @Command нельзя использовать в Evaluate
 
M

morpheus

Для: Medevic
НУ вот, приплыли тапочки к обрыву :)
 
R

redbestcat

оно врядли сработает, а если сработает то так же как и лотусскрипт.

что именно из UI ты используешь в агенте? Скорее всего неправильна логика. Если тебе нужны выбранные в представлении - используй метод "UnprocessedDocuments" и тип агент "All selected documents".

Если тебе нужен текущий документ - либо через NoteID либо метод "DocumentContext"
 
S

SkyDream

Агент экспортирует данные формы в Word
 
M

morpheus

Для: SkyDream
а почему не хотите зделать кнопку на @-Formula
 
R

redbestcat

Для: SkyDream

1. UI там не нужен ("DocumentContext" от сесси)
2. Лучше вынести данную функцию в библиотеку и вызывать ее оттуда (если надо в агенте). использовать для этого агент - не очень разумно. Лишнии операции. Кроме того, при выносе в библиотеку у тебя отпадет проблема UI
 
S

SkyDream

Для: SkyDream

1. UI там не нужен ("DocumentContext" от сесси)
2. Лучше вынести данную функцию в библиотеку и вызывать ее оттуда (если надо в агенте). использовать для этого агент - не очень разумно. Лишнии операции. Кроме того, при выносе в библиотеку у тебя отпадет проблема UI

Спасибо за советы. Вобщем я отказался от использования агента вынес все функции в библиотку
и прописал код в кнопку щас все работает как надо :)
 
Мы в соцсетях:

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