@MailFilterStopProcessing

Автор Тема: @MailFilterStopProcessing  (Прочитано 10204 раз)

nadya

  • Специалист
  • ***
  • Сообщений: 51
    • Просмотр профиля
@MailFilterStopProcessing
« : 24 Август 2009, 08:26:10 »
Добрый день всем!!)
кто знает, какая команда аналогична @MailFilterStopProcessing на лотус скрипте??  :)

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: @MailFilterStopProcessing
« Ответ #1 : 24 Август 2009, 09:04:51 »
Здравствуйте,
боюсь проблематично будет найти такую же недокументированную функцию в LS.

А как вы пытаетесь обработать правила? делаете парсинг формульного выражения и обрабатываете документы лотусскриптом?

nadya

  • Специалист
  • ***
  • Сообщений: 51
    • Просмотр профиля
Re: @MailFilterStopProcessing
« Ответ #2 : 24 Август 2009, 10:42:07 »
да, именно так, и условия, и действия, и потом это правило применяю ко всем старым письмам.
есть там такое действие, очень интересно как бы его реализовать на лотус скрипте  :)

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: @MailFilterStopProcessing
« Ответ #3 : 24 Август 2009, 10:48:58 »
Если у вас для каждого письма идет прогонка всех правил, то по MailFilterStopProcessing, я так понимаю, нужно просто выйти из цикла по правилам, т.е. применится правило перед MailFilterStopProcessing.

nadya

  • Специалист
  • ***
  • Сообщений: 51
    • Просмотр профиля
Re: @MailFilterStopProcessing
« Ответ #4 : 24 Август 2009, 11:50:01 »
наоборот, у меня должна быть прогонка одного правила, выбранного пользователем, по всем письмам.
но тут я застряла, как определить, что пользователь выбрал именно это правило?

если заставить его выделить правило (правила), а потом по выделенным правилам выполнить агента, который применит его к старой почте?
вообще делаю кнопку в папке правила - применить к старой почте.
как определить какие правила выделены пользователем на лотус скрипте, чтобы потом по ним выполнить агента??

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: @MailFilterStopProcessing
« Ответ #5 : 24 Август 2009, 12:07:09 »
Может проще наоборот сделать:
добавить в папки и представления action, который работает на выделенных документах или на всех. В этом агенте проходить по письмам и применять в цикле все правила.
Перед нажатием на эту кнопку пользователь должен включить/выключить правила, которые он хочет использовать для старых документов.

nadya

  • Специалист
  • ***
  • Сообщений: 51
    • Просмотр профиля
Re: @MailFilterStopProcessing
« Ответ #6 : 24 Август 2009, 12:58:33 »
да, только пользователям так лень будет делать )))
у меня вопрос - сделала по другому - добавила на форму (RulesDlg) элемент checkbox - применить правило к старым письмам,
если пользователь установил галочку, то выполняем агента.
На форму вешаю следующий обработчик

Sub Queryclose(Source As Notesuidocument, Continue As Variant)
   
   Msgbox "in!"
   Msgbox source.FieldGetText("ApplyRuleToAll")
   If (source.FieldGetText("ApplyRuleToAll") <> "") Then
      Dim session As New NotesSession
      Dim db As NotesDatabase
      Dim agent As NotesAgent
      
      Set db = session.CurrentDatabase
      Set agent = db.GetAgent("SortAllMailRules")
      Call agent.Run()
   End If   
   
End Sub

вылетает с ошибкой, что notesuidocument is no longer valid

без проверки, что checkbox установлен, агент запускает и отрабатывает нормально, но
нужно именно проверить что checkbox установлен и только тогда запустить агента! как это сделать? помогите пожалуйста :-\

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: @MailFilterStopProcessing
« Ответ #7 : 24 Август 2009, 13:13:34 »
Попробуйте переместить ваш скрипт в процедуру ButtonOKClient(), которая находится в библиотеке скриптов Rules.