Агенты и обновление полей

  • Автор темы Idea
  • Дата начала
I

Idea

Есть серверный агент на Лотус скрипт. Пишется для работе в вебе.
Суть - после неких операций нужно в зависимости от условия - или вывести что-то типа messagebox-а с фразой - "извини, не выйдет" или запихать некое значение в некое поле текущего дока.
Проверяю под клиентом. Все проходит без ошибок, в переменной типа variant (mem) есть всё, что надо, но
Код:
 ...
doc.Members= mem
Exit Sub
и собственно ничего в этом самом поле мемберс не видать. Я так подразумеваю, что не хватает ему рефреша. А как его сделать, учитывая, что это все должно корректно в вебе отработать в итоге?
На сколько я понимаю, рефреш под вебом - это фактически сохранение дока. Однако строка
Call doc.Save(True, True, True) ровным счетом ничего не меняет. Как все-таки переписать это самое значение?

з.ы. заодно подскажите плиз аналог MessageBox для веба, если можно как-нибудь без джава скриптов. Скрещивание джава скрипт с лотус скрипт - это задача мне ещё на пару месяцев.
 
H

Hedg

Не делал в Лоту се ничё под веб, но поробую посоветовать

В свойстве поля OnChange втулить что-то типа этого

Код:
window.location.reload()
window.location.href=window.location.href
 
O

Ogion7

В хелпе на "web agent" выдает ответ, в котором есть такое
Activating a Web agent
.......
Two form events work for Web processing:

-WebQueryOpen occurs before Lotus Domino converts the document being opened to HTML and sends it to the browser. You can change initial field values and do other pre-processing.

-WebQuerySave occurs before a Web document is saved. You can change final field values and do other post-processing.
 
I

Idea

В свойстве поля OnChange втулить что-то типа этого

Код:
window.location.reload()
window.location.href=window.location.href

Браузер - невозможно отобразить страницу
В клиенте ничего не изменилось

В хелпе на "web agent" выдает ответ, в котором есть такое

то есть типа по кнопочке агент не сработает, надо только в эти события их писать? Что-то не верится мне в это.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Для: Idea
Как ты агента вызываешь?

<!--QuoteBegin-Idea+18:04:2007, 16:28 -->
<span class="vbquote">(Idea @ 18:04:2007, 16:28 )</span><!--QuoteEBegin-->з.ы. заодно подскажите плиз аналог MessageBox для веба, если можно как-нибудь без джава скриптов.
[snapback]62748" rel="nofollow" target="_blank[/snapback]​
[/quote]
Жаваскрипт - Alert.
 
I

Idea

Откуда получаешь doc в агенте?
Код:
Dim session As NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim nav As NotesViewNavigator
Dim entry As NotesViewEntry

Dim doc As NotesDocument
Dim cldoc As NotesDocument
Dim prid As Variant
Dim mem As Variant

Set session= New NotesSession
Set doc=session.documentcontext
prid= doc.GetItemValue( "Team" )

Set db = session.CurrentDatabase
Set view = db.GetView("PeopleByTeam")
Set nav = view.CreateViewNavFromCategory(prid (0))
Set entry = nav.GetFirstDocument

If Not(entry Is Nothing) Then	
Set cldoc = entry.Document
mem = cldoc.Members
doc.Members= mem
'Call doc.Save(True, True, True)
Else
Print("No Team with such Leader")
End If 	
Exit Sub
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
<!--QuoteBegin-Idea+19:04:2007, 13:56 -->
<span class="vbquote">(Idea @ 19:04:2007, 13:56 )</span><!--QuoteEBegin-->'Call doc.Save(True, True, True)
[snapback]62837" rel="nofollow" target="_blank[/snapback]​
[/quote]
Всё таки нужно сохранять.
Если агента вызываешь в WebQuerySave, то не нужно.
Тогда непонятно чего не работает. Значение не пишется?
 
I

Idea

Всё таки нужно сохранять.
Если агента вызываешь в WebQuerySave, то не нужно.
Тогда непонятно чего не работает. Значение не пишется?

да, хотелось бы, чтоб когда тыкаешь кнопку, было все-таки видно, что в поле что-то изменилось.

и сразу про Alert:
что нужно, чтобы вот это
Код:
 Print "<script LANGUAGE=JavaScript>"
Print "alert(""No Team with such Leader"")"
Print "</SCRIPT>"
заработало?
в том же самом агенте. пока ничего не всплывает:)
 
I

Idea

и ещё, в клиенте-то ещё хоть как-то пашет. а в браузере пишет внутреннюю ошибку сервера.
 
I

Idea

Для тех, у кого возникнут аналогичные проблемы (моя счастливо разрешилась):
1) юзайте где можно @DBLookup
2) проверяйте триггеры агентов (что б их... )
3) вешайте на WebQuerySave код
Код:
	Set session= New NotesSession
Call session.documentcontext.compwithform()
Call session.documentcontext.save(True,False)
для пересчета лукапов и прочих формул.

Спасибо всем откликнувшимся
 
Мы в соцсетях:

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