Проблема с запуском агента на Lotusscript

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

  1. SkyDream

    SkyDream Гость

    Доброе время суток!

    Столкнулся с такой проблемой..
    создал на форме кнопку и прописал код запуска агента

    Код (Text):
    Sub Click(Source As Button)
    Dim w As New NotesUIWorkspace
    Dim s As New NotesSession
    Dim agent As NotesAgent

    Set agent=s.CurrentDatabase.GetAgent("AgentNew")
    Call agent.run
    End Sub
    выдает следующую Ошибку
    agent.jpg

    сначало думал проблема в агенте
    написал код на формуле
    Код (Text):
    @Command([RunAgent];"AgentNew")
    агент отработал спокойно

    помогите разобраться в чем ошибка?
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: SkyDream
    АF проббовали обработать результат выполенния агента?
    Код (Text):
    If agent.Run = 0 Then
    Messagebox "Agent ran",, "Success"
    Else
    Messagebox "Agent did not run",, "Failure"
    End If
    Код (Text):
     
     
  3. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    А галка "Run in background client thread" стоит?
     
  4. redbestcat

    redbestcat Гость

    Ты используешь UI методы в агенте.

    Если знаком с английским:

    What does "Unsupported trigger and search in the background or embedded agent" mean?

    This error is generated in a server-based agent (which can be a Web agent or any other agent invoked on the server) or embedded agent (an agent called by another agent) which references UI elements as trigger/search target settings in the agent builder. For example, suppose you create an agent that has action menu selection as a trigger and all selected documents as a search target. When you invoke the agent from the browser, you receive the unsupported trigger... error. The "all selected documents" concept is not understood within a Web agent; this setting is meaningful only in a Notes client. To fix the problem, change the target setting, for instance, to all documents or none. The following four options are not supported in this situation:

    * All unread documents in view
    * All documents in view
    * All selected documents
    * When documents are pasted documents
     
  5. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: redbestcat
    Кстати да, вполне может быть, в хєлпе по Run method написано
    You cannot use the Notes UI classes in an agent called by this method. :huh:
     
  6. redbestcat

    redbestcat Гость

    Для: Morpheus
    Да, а в агенте, который запускается формулой - можно. Именно так и есть в описании ошибки
     
  7. Sandr

    Sandr Гость

    Посмотрите тригер агента, надо выставить ему none... Катати, а зачем вокспейс инициализировали? Смысл?
     
  8. SkyDream

    SkyDream Гость

    там сложный агент.... есть необходимость использовать UI

    тогда как мне справиться с данной ситуацией, мне необходимо чтобы по нажитю кнопки отработал агент и после выполнения агента я мог прописать еще код?

    запускать агент из LotusScropt используюя формулу? это возможно?
     
  9. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: SkyDream
    Канчено вазможно,
    Код (Text):
     Evaluate ( { @Command([RunAgent];"AgentNew") }, doc )
    но помоему попахивает извратом
     
  10. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Конечно изврат, @Command нельзя использовать в Evaluate
     
  11. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Medevic
    НУ вот, приплыли тапочки к обрыву :)
     
  12. redbestcat

    redbestcat Гость

    оно врядли сработает, а если сработает то так же как и лотусскрипт.

    что именно из UI ты используешь в агенте? Скорее всего неправильна логика. Если тебе нужны выбранные в представлении - используй метод "UnprocessedDocuments" и тип агент "All selected documents".

    Если тебе нужен текущий документ - либо через NoteID либо метод "DocumentContext"
     
  13. SkyDream

    SkyDream Гость

    Агент экспортирует данные формы в Word
     
  14. Sandr

    Sandr Гость

    А зачем тогда агент? Что стоит поместить код на эту же кнопку?
     
  15. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: SkyDream
    а почему не хотите зделать кнопку на @-Formula
     
  16. redbestcat

    redbestcat Гость

    Для: SkyDream

    1. UI там не нужен ("DocumentContext" от сесси)
    2. Лучше вынести данную функцию в библиотеку и вызывать ее оттуда (если надо в агенте). использовать для этого агент - не очень разумно. Лишнии операции. Кроме того, при выносе в библиотеку у тебя отпадет проблема UI
     
  17. SkyDream

    SkyDream Гость

    Спасибо за советы. Вобщем я отказался от использования агента вынес все функции в библиотку
    и прописал код в кнопку щас все работает как надо :)
     
Загрузка...
Похожие Темы - Проблема запуском агента
  1. starasta
    Ответов:
    14
    Просмотров:
    4.832
  2. c0de3r
    Ответов:
    5
    Просмотров:
    119
  3. DobermannTT
    Ответов:
    10
    Просмотров:
    134
  4. SoulPaladin
    Ответов:
    4
    Просмотров:
    128
  5. Artael
    Ответов:
    1
    Просмотров:
    109

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