Background

Тема в разделе "Lotus - Программирование", создана пользователем -, 9 окт 2008.

  1. Гость

    Привет!!!

    Кто знает как можно запустить агент в background режме?
     
  2. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Привет!!! :)
    Поставить галку в пропертях агента "Run in background client thread" (на первой закладке)
    И шмальнуть на собаках или из меню "Actions"
    Всё это начиная с 6-ки.
     
  3. Гость

    Что то сразу не заметил это свойство :)

    Спсасибо огромное!!!
     
  4. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    А если на собаках не подходит? Если надо только по NotesAgent.Run(agentName$)?

    Ну или...
    Можно ли сделать кнопку, на ней посадить собачный вызов агента, а потом программно из LS инициировать нажание кнопки?
     
  5. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Из LS:
    1. создаёте форму, у которой в PO Call source.Close, а на QC @Command([ToolsRunMacro];<поле с именем агента>)
    2. если не надо чтоб агент отображался в меню, программно заключите имя агента в скобки (поле $Title)
    3. для запуска агента создайте вспомогательный документ, поместите в него имя агента и имя формы из п.1
    4. ws.EditDocument этому документу

    Вспомогательная форма откроется и закроется, а агент продолжит работу.

    Развитие идеи: Иметь одного агента запускающего любой код в фоне.
    Для чего передать агенту имя библиотеки, класса и метода для запуска.
    Агентом Execute нужной библиотеки и метода.
     
  6. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    TIA
    Спасибо за идеи; здорово! :)
     
  7. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Вообще, бекграуд агенты классная штука.
    Меня очень радуют.

    Можно сделать жалкое(?) подобие AJAX - подгружать данные на лету...
     
  8. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    TIA
    Всё работает! Спасибо ещё раз :)

    Какие образом?
     
  9. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ну например в форме на PO шмаляем бекграунд агента на собаках.
    В самом начале агента ловим текущий док:
    Код (LotusScript):
    Dim ws As New NotesUIWorkspace
    Dim uiDoc As NotesUiDocument
    Dim Doc As NotesDocument
    Set uiDoc = ws.CurrentDocument
    Set Doc = uiDoc.Document
    Дальше агент собирает тяжёлую информацию, допустим по базам ближлежащим и постепенно постит её в документа.
    Получается кагбэ асинхронная подгрузка информации :)
     
  10. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Это уже есть и работает или идея?

    Разве в бэкграунде будут работать UI-методы?
    Каким образом будет производиться обновление текущего дока "по мере поступления информации"?
     
  11. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    В хелпе написано, шо не должно.
    Че-то мне кажется, что нас пытаются обмануть... О-оо-мх, а ну выхади :)
     
  12. duchan

    duchan Well-Known Member

    Регистрация:
    20 сен 2006
    Сообщения:
    105
    Симпатии:
    2
    ну, вообще-то можно если осторожно...
    Потрясая основы (только для Win).

    НО! если из backend'а лезть в UI, то можно легко уронить клиент, например когда пользователь откроет какой-либо диалог...
    {теоризируя :) } лучше что бы UI сам брал информацию, возможно по мере сбора инфы backend агентом, котротый ее куда сохраняет. например можно использовать очереди...
     
  13. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ща, чуть подразгребу работу и в течении часа выложу прототипчик базы, где это работает.
     
  14. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Посмотреть вложение 3242
    Вот прототипчик.
    Что делает: на открытие документа запускается агент, который заполняет этот самый документ.
    Можно открыть сразу несколько доков, будут заполнятся несколько параллельно.

    ПсевдоАджакс в массы :newconfus:

    Жду отзывов!!!

    Там без всяких мега проверок, просто концепт.
     
  15. divankin

    divankin Senjor developer

    Регистрация:
    13 авг 2009
    Сообщения:
    182
    Симпатии:
    0
    То есть промышленно вы этот метод еще не применяете? Мне лично боязно так вольно обращаться с UI объектами в силу их некоторой неустойчивости.
     
  16. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    У меня в некоторых базах применяется.
     
  17. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Omh
    Толково! Теперь только придумать, где это можно использовать...)
     
  18. Darker

    Darker Гость

    Мы применяем фоновые агенты при сохранении документа, так как в QC многое что происходит, а юзер жалуется, что долго сохраняется
     
  19. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    И ещё, там UI объекты не задействованы:
    В самом начала агента ловится NotesDocument от ws.CurrentDocument и вся инфа постится в него.
    Т.е. никаких UiDoc.SetЧто-тоТам, всё через бекграунд объекты, поэтому можно лазить по другим документам/базам, а наш инициированый документ будет заполнятся сам по себе :newconfus:
     
  20. duchan

    duchan Well-Known Member

    Регистрация:
    20 сен 2006
    Сообщения:
    105
    Симпатии:
    2
    А в чём прикол скрытого дизайна базы? :angry2:
     
Загрузка...
Похожие Темы - Background
  1. Dragon108
    Ответов:
    31
    Просмотров:
    5.755
  2. fedotxxl
    Ответов:
    20
    Просмотров:
    6.349
  3. Omh
    Ответов:
    19
    Просмотров:
    6.757
  4. alik86
    Ответов:
    22
    Просмотров:
    6.829
  5. ioni
    Ответов:
    3
    Просмотров:
    2.588

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