Запуск ui агента в другой базе. Какие есть варианты?

Gandliar

Lotus Team
16.02.2004
564
26
BIT
110
Здравствуйте!

Собственно по теме вопрос.

Для чего надо. Планируется сделать базу "Личный кабинет", в которой будут ссылки на типы документов, с которыми работает пользователь.
При нажатии на ссылку на документ надо запустить агент в другой базе, который создаст искомый новый документ.
Агент создания нового документа может быть сложный (заполняет огромное количество данных из настроек), иногда интерактивный, в разных базах - разные названия агентов.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
466
Здравствуйте!

Собственно по теме вопрос.

Для чего надо. Планируется сделать базу "Личный кабинет", в которой будут ссылки на типы документов, с которыми работает пользователь.
При нажатии на ссылку на документ надо запустить агент в другой базе, который создаст искомый новый документ.
Агент создания нового документа может быть сложный (заполняет огромное количество данных из настроек), иногда интерактивный, в разных базах - разные названия агентов.
перестать использовать нотусню там где это делается через кастыли ;)
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
524
Агент создания нового документа может быть сложный (заполняет огромное количество данных из настроек), иногда интерактивный, в разных базах - разные названия агентов.
Сделайте агент, который показывает диалог, типа мастер-диалог, как при установке ПО.
Все необходимое сразу можно будет выбрать, остальное высчитать.
 

Gandliar

Lotus Team
16.02.2004
564
26
BIT
110
Сделайте агент, который показывает диалог, типа мастер-диалог, как при установке ПО.
Все необходимое сразу можно будет выбрать, остальное высчитать.
Баз очень много, в каждой свой код. Дублировать его и сопровождать крайне не хочется.

Вот предварительно тестирую подход, когда в целевой база создается форма пустышка, в ней на queryopen запускается формулой агент, а на postopen форма закрывается. И из вызывающей базы открывается целевая база и открывается форма пустышка, запускающая агент.
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
43
Баз очень много, в каждой свой код. Дублировать его и сопровождать крайне не хочется.

Вот предварительно тестирую подход, когда в целевой база создается форма пустышка, в ней на queryopen запускается формулой агент, а на postopen форма закрывается. И из вызывающей базы открывается целевая база и открывается форма пустышка, запускающая агент.
Ты хочешь разные агенты для разных баз хранить в одном месте (базе агентов)?
Можешь же хранить в "базе агентов" просто текст агентов (если ЛС), а в нужном месте забирать текст оттуда и просто execute("script")
 

Gandliar

Lotus Team
16.02.2004
564
26
BIT
110
Есть огромное количество баз данных. В каждой базе большое количество разнообразных документов. Они создаются с помощью настроечных документов скриптом (иногда с ui интерфейсом).
В каждой базе свои скрипты создания новых документов, свои настроечные документы.

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

Проблема в том что стандартный агент.run() не поддерживает ui функции.
 

Murtas

Green Team
11.04.2006
137
1
BIT
5
Для баз с агентами надо подготавливать временные документы с набором параметров, которые нужны для работы конкретного агента. При вызове агента передавать NoteID этого документа и после обработки удалять. Агенты естественно запускаются на сервере и от уполномоченного лица.
 

Gandliar

Lotus Team
16.02.2004
564
26
BIT
110
Всё равно не врубился
а работать в базе-инициаторе, создавать док в ней и потом записать в целевую базу не катит?
Есть база с документооборотом. В ней есть 100 видов документов и 100 настроечных документов с настройками документооборота + для некоторых документов в процессе создания есть еще интерактив с пользователем. То есть пользователь заходит в базу, нажимает кнопку добавить - ему выпадает список что добавить, он выбирает и дальше еще могут быть диалогбоксы и в итоге ему открывается документ для работы, в котором уже заполнено 300 всяких полей.

Таких баз много, внутренний код не одинаков.

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

Пример. Сотруднику надо сделать заявку на канцтовары. Он не знает в какой базе эта заявка находится. Спросил у коллег - узнал, зашел, нажал кнопку, сразу создался некий путь документооборота и открылась карточка новой заявки.

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

rinsk

Lotus Team
12.11.2009
1 156
126
BIT
43
А чем не устраивает js на форме? можно нарисовать этот дашбоард в html, даже с картинками. JS обрабатывает клики и заполняет скрытые поля мета инфой. Потом запускается кнопка с агентом - он и разрулит - что где и как запустить...
Может меня склероз и подводит - но onClick должно в UI Notes работать...
 

Murtas

Green Team
11.04.2006
137
1
BIT
5
Пример работы по-новому: Зашел в базу личный кабинет. Нашел искомую заявку, кликнул создать. программа нашла сама в какой базе лежит, запустила агент в той базе создания документа и передала в агент (в той базе) какой документ надо создать.

планы наполеоновские ))

в той базе где личный документ скорее получится только документ ссылка на документ из другой базы либо для каждой базы показывать встроенные виды

документ ссылку надо еще поддерживать в актуальном состоянии вплоть до удаления
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
466
Идея собрать весь список документов в одной базе и по клику на нужном документе программно эмулировать что пользователь открыл нужную базу, кликнул на нужный тип документа, и документ в итоге открылся.
идея изначально утопическая, потому что
программно эмулировать что пользователь открыл нужную базу, кликнул на нужный тип документа, и документ в итоге открылся.
нужно подобие макросов, а БД, как я понимаю произвольные, и никто об этом не думал (создавая интерактив)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
466
но onClick должно в UI Notes работать...
работает, я так LS код в скрыты кнопках вызываю, но как я понял ТС - нужно воспроизвести всю механику заполнения специфичную для каждой БД и её доков, типа макрос
 

rinsk

Lotus Team
12.11.2009
1 156
126
BIT
43
работает, я так LS код в скрыты кнопках вызываю, но как я понял ТС - нужно воспроизвести всю механику заполнения специфичную для каждой БД и её доков, типа макрос
Ну дак пусть всю специфику кидает в скрытое поле и запускает агента. Конечно же - html генерится со всей этой спецификой :)
 

Gandliar

Lotus Team
16.02.2004
564
26
BIT
110
А чем не устраивает js на форме? можно нарисовать этот дашбоард в html, даже с картинками. JS обрабатывает клики и заполняет скрытые поля мета инфой. Потом запускается кнопка с агентом - он и разрулит - что где и как запустить...
Может меня склероз и подводит - но onClick должно в UI Notes работать...

А можно как то подробнее.

Как это поможет из базы А запустить интерактивный агент в базе Б ?

Пример в базе Б есть лотус-скриптовый агент "test" с 1 строчкой msgbox "Заработало!"

Как запустить его из базы А, при клике на документ, находящийся в базе А ?
 

rinsk

Lotus Team
12.11.2009
1 156
126
BIT
43
agent.run в конкретной БД. или ws.Create... или ws.OpenView и т.п.
Главное в этом одном прокси агенте правильно передать контекст в целевую систему. Например через профильный доки, notes.ini или иным способом.
 
  • Нравится
Реакции: VladSh
Мы в соцсетях:

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