Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/81: Рейтинг темы: голосов - 81, средняя оценка - 4.80
postord

Не Вызывается Агент

21.02.2012, 08:45. Показов 15194. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, я еще чайник, и может быть мой вопрос покажется тупым но мне необходима помощь, я пытаюсь запустить агента через LS по нажатию кнопки, агент написан на @формулах выглядит так:


Code
1
2
3
@Command([EditGotoField];"Body");
@Command([EditInsertFileAttachement];"C:/Temp/1.tif);
@all
Вызываю я его вот так:


LotusScript
1
2
3
4
 Dim s As New NotesSession
Dim agent As NotesAgent
Set agent = s.СurrentDatabase.GetAgent("Test1")
Call agent.Run
Но после нажатия кнопки агент не отрабатывает, в чем может быть проблема ? Пробывал таким методом запускать других агентов написаных на LS, они отлично работают, а этот нехочет
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.02.2012, 08:45
Ответы с готовыми решениями:

Трабла, агент неправильно изменяет другой агент
Ситуация: есть у меня мега агент, который занимается настройкой сервера, проверяет что в системе не так, мониторит базы, всё подправляет...

Java-агент Vs Ls-агент — кто быстрее?
Бэк-агента можно написать как на лс, так и на яве. Кто-нибудь обладает достоверной информацией, какой из них будет выполняться быстрее? Или...

Окно настройки принтера не вызывается через меню, но вызывается по кнопке
Доброго времени суток. Помогите разобраться. Подключаю к программе принтер, начал с вывода окна настроек принтера. Не могу понять, создал в...

14
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
21.02.2012, 10:33
paclord
1. Документ в режиме редактирования?
2. Можно не использовать скрипт, а вызвать агента через SimpleActions
3. Как настроен вызов и таргет агента? (см. свойства, 1я закладка)
0
omdyOrtov
21.02.2012, 16:51
Цитата Сообщение от paclord
Здравствуйте, я еще чайник, и может быть мой вопрос покажется тупым но мне необходима помощь, я пытаюсь запустить агента через LS по нажатию кнопки, агент написан на @формулах выглядит так:


Code
1
2
3
@Command([EditGotoField];"Body");
@Command([EditInsertFileAttachement];"C:/Temp/1.tif);
@all
Вызываю я его вот так:


LotusScript
1
2
3
4
 Dim s As New NotesSession
Dim agent As NotesAgent
Set agent = s.GurrentDatabase.GetAgent("Test1")
Call agent.Run
Но после нажатия кнопки агент не отрабатывает, в чем может быть проблема ? Пробывал таким методом запускать других агентов написаных на LS, они отлично работают, а этот нехочет
Если этот код скопирован из проги, то лично я вижу просто ошибку в классе NotesSession нет св-ва GurrentDatabase, а есть СurrentDatabase
Если это простая описка на форуме то согласен с Morpheus
postord
21.02.2012, 18:04
AndyOrlov
На форуме это опечатка уже исправил..

Morpheus
1. Да в режиме редактирования
2. Дело в том что на кнопке присутствует еще код на LS, возможно ли туда вставить SimpleActions ?
3. Вызов Agent list selection, таргет None
omdyOrtov
21.02.2012, 19:03
Цитата Сообщение от paclord
AndyOrlov
На форуме это опечатка уже исправил..

Morpheus
1. Да в режиме редактирования
2. Дело в том что на кнопке присутствует еще код на LS, возможно ли туда вставить SimpleActions ?
3. Вызов Agent list selection, таргет None
Значит и в @Command([EditInsertFileAttachement];"C:/Temp/1.tif); тоже опечатка @Command([EditInsertFileAttachment];"C:/Temp/1.tif);

Тут проблема не в агенте. Он точно запускается. Просто он работает в фоновом режиме (Back-End), а команды относятся к интерфейсу (UI). Агент просто не видит открытый документ. То что агент запускается должно быть видно в журнале агента. Попробуй его запустить из интерфейса и я думаю что файл вложится в поле.
Я думаю что так не получится вложить.
А весь код где агент запускается можно увидеть?
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 615
21.02.2012, 20:22
забить на агента и юзать древнюю технику нажатия кнопки жаваскриптом:
- перевесить аттач-собаку на (скрытую) кнопку на форме.
- на исходную кнопку повесить js: document.form[0].attachBtn.click()

Если в процессе требуется выполнить ls код - то его тоже вешаем на (другую) скрытую кнопку и жмем их последовательно:
document.form[0].lsCodeBtn.click()
document.form[0].attachBtn.click()
Т.о. можем комбинировать ls, собак и жаваскрипт в любой последовательности. Передавать значение из ls в js и обратно можно через поле документа. Работает уверенно, в т.ч. в диалоговых окнах...
0
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 118
02.07.2012, 16:15
Можно и я задам вопрос, у меня схожая проблема?
Имею 2 базы на разных серверах, назову их база А и база В. Мне надо выполнить код в базе А, но при этом воспользоваться библиотекой из базы В (библу перенести нельзя в силу некоторых причин). Я написал агент в базе В, который не надо выполнять на сервере. В базе А есть вьюха с кнопкой, при нажатии которой надо вызывать агент в базе В.

Кусочек кода в кнопке такой, код в базе А

Dim docThis As New NotesDocument (База А)

docThis.Save True, False

Dim ag As NotesAgent
Set ag = База В.GetAgent("CreateListOrder")
If ag Is Nothyng Then Exit Sub
If ag.Run(docThis.NoteID) = 0 Then
Messagebox "Agent ran",, "Success"
Else
Messagebox "Agent did not run",, "Failure"
End If

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

Кусочек агента docThis

Print "Start running"
MsgBox "Уже работаю"
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument

Set docThis = База А.GetDocumentByID( session.CurrentAgent.ParameterDocID ) // т.е. агент лезет в базу, из к-рой его вызвали, берет только что созданный docThis, добавляет ему поля и сохраняет

docThis.ReplaceItemValue "Поле1", "Значение1"

docThis.ReplaceItemValue "Поле2", "Значение2"
...
docThis.Save True,True
Print "End running"
End Sub

При нажатии кнопки появляется сообщение "Agent ran", будто все в порядке, но результата выполнения агента нет, документ полями не обзаводится, сигналы
Print "Start running"
MsgBox "Уже работаю"

не подаются.

В св-х агента указано

Trigger: On event
Action menu selection

Target: None

Я ничего не забыл, подскажите, плиз.
Заранее спасибо
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
02.07.2012, 16:25
Скорее всего Trigger: On Schedule поможет
0
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 118
02.07.2012, 16:29
Не-а.
Trigger: On Schedule

Never

Target: None

То же самое
0
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 127
02.07.2012, 17:32
Anonimous
у тебя есть строчка в агенте >Dim ws As New NotesUIWorkspace
ты через ws что-то потом получаешь или просто забыл убрать?
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
02.07.2012, 17:37
Цитата Сообщение от doka
Anonimous
у тебя есть строчка в агенте >Dim ws As New NotesUIWorkspace
ты через ws что-то потом получаешь или просто забыл убрать?
Если я ничего не путаю - ничего страшного если агент не запускается на сервере

Добавлено: как вариан - наверное правильнее сделать агент серверным
Ну и тогда убрать все UI-классы и методы
Ну и переделать вызов ag.RunOnServer
И разберись с параметром агента... я писал про это выше
0
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 127
02.07.2012, 17:47
Как вариант можно создать поле-флаг и по нему сформировать вьюху.
В базе А записывать это поле, потом в агенте базы В получать через вью этот документ, записывать нужные поя, а поле-флаг затирать
0
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
02.07.2012, 19:12
если агент запускается так, как указали выше, то сообщений на уи не будет.
Кстати, насчет прав и доступа сервера к базам все проверено? (установлен требуемый уровень безопасности агента в зависимости от его кода, правильно установлен ACL и серверные настройки для запуска агентов, возможно, еще нужна настройка trusted servers)
Попробуйте посмотреть лог агента, добавить обработчик ошибок и использовать запись в лог агента для отладки или в агенте создать временный документ и логировать туда все действия.
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
03.07.2012, 10:32
Ну так таки да! Все работает! Если в рамках сервера - то вообще без проблем.
Вчера лень было проверять. Сегодня на скорую руку...
Кнопка в виде

LotusScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Click(Source As Button)
 
Dim session As New NotesSession
Dim db As NotesDatabase
Dim agent As NotesAgent
Dim doc As NotesDocument
 
Set db = session.CurrentDatabase
Set doc = db.CreateDocument
doc.form = "Main"
Call doc.Save(True, False, True)
 
Set db = session.GetDatabase( "data1", "templates\\testdb.nsf" )
Set agent = db.GetAgent("agent")
Call agent.Run(doc.NoteID)
 
End Sub
код агента:

LotusScript
1
2
3
4
5
6
7
8
9
10
11
Sub Initialize
 
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
 
Set db = session.Getdatabase("data1", "templates\\test.ntf")
Set doc = db.Getdocumentbyid(session.CurrentAgent.ParameterDocID)
doc.body = "заработало"
Call doc.Save(True, False, True)
End Sub
Runtime агента наверное все таки не влияет. Проверял и на шедульном и по событию Menu selection/
Security агента - 1

Добавлено:


Цитата Сообщение от OKEN
...Кстати, насчет прав и доступа сервера к базам все проверено? (установлен требуемый уровень безопасности агента в зависимости от его кода, правильно установлен ACL и серверные настройки для запуска агентов, возможно, еще нужна настройка trusted servers)...
Может путаю... но если агент запускается на клиенте - разве важны серверные настройки?
0
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 118
04.07.2012, 13:15
Спасибо, в log.nsf отследил :blink:
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.07.2012, 13:15
Помогаю со студенческими работами здесь

При создании класса конструктор вызывается 2 раза, затем вызывается деструктор о_О
Вот такой кодclass A { public: A(){} virtual ~A(){} }; class C { public:

Агент по расписанию..
Всем здравствуйте! Столкнулся вот с такой штукой! У меня есть агент вот его код: Option Public Use "LibID" Sub...

Агент по расписанию
Доброго времени!! Сталкнулся с такой проблемкой.Возникла необходимость запускать агента по расписанию. Все сделал,по идее должен...

Самоудаляющийся агент
Добрый день(вечер). Может ли агент по завершении своей работы удалить сам себя из базы? :D

Не выполняется агент
Создал агента, Shared, Trigger - On Sheldue, Run on behalf of - указал себя, Runtime security - 3, Default Access - All Readers and Above,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru