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

Тема в разделе "Lotus - Программирование", создана пользователем Idea, 18 апр 2007.

  1. Idea

    Idea Гость

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

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

    Hedg Гость

    Поле какого типа???
     
  3. Idea

    Idea Гость

    текст, влючена опция множество значений, редактируемое
     
  4. Ogion7

    Ogion7 Гость

    агент запускаеш в броузере?
     
  5. Idea

    Idea Гость

    и в браузере, и в клиенте запускала - одинаково
     
  6. Hedg

    Hedg Гость

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

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

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

    Ogion7 Гость

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

    Idea Гость

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

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

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: 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.
     
  10. Idea

    Idea Гость

    @Command([ToolsRunMacro]; "ChooseTeam")

    Вообще вот вставляю строку Call doc.Save(True, True, True), закрываю, открываю, всё есть. Вывод - точно рефреша не хватает.
     
  11. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Откуда получаешь doc в агенте?
     
  12. Idea

    Idea Гость

    Код (Text):
     
    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
     
  13. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--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, то не нужно.
    Тогда непонятно чего не работает. Значение не пишется?
     
  14. Idea

    Idea Гость

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

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

    Idea Гость

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

    Idea Гость

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

    Спасибо всем откликнувшимся
     
Загрузка...

Поделиться этой страницей