Форум продуктов IBM Lotus

Общие вопросы => Разработка приложений => Тема начата: nadya от 24 Август 2009, 08:26:10

Название: @MailFilterStopProcessing
Отправлено: nadya от 24 Август 2009, 08:26:10
Добрый день всем!!)
кто знает, какая команда аналогична @MailFilterStopProcessing на лотус скрипте??  :)
Название: Re: @MailFilterStopProcessing
Отправлено: ViV от 24 Август 2009, 09:04:51
Здравствуйте,
боюсь проблематично будет найти такую же недокументированную функцию в LS.

А как вы пытаетесь обработать правила? делаете парсинг формульного выражения и обрабатываете документы лотусскриптом?
Название: Re: @MailFilterStopProcessing
Отправлено: nadya от 24 Август 2009, 10:42:07
да, именно так, и условия, и действия, и потом это правило применяю ко всем старым письмам.
есть там такое действие, очень интересно как бы его реализовать на лотус скрипте  :)
Название: Re: @MailFilterStopProcessing
Отправлено: ViV от 24 Август 2009, 10:48:58
Если у вас для каждого письма идет прогонка всех правил, то по MailFilterStopProcessing, я так понимаю, нужно просто выйти из цикла по правилам, т.е. применится правило перед MailFilterStopProcessing.
Название: Re: @MailFilterStopProcessing
Отправлено: nadya от 24 Август 2009, 11:50:01
наоборот, у меня должна быть прогонка одного правила, выбранного пользователем, по всем письмам.
но тут я застряла, как определить, что пользователь выбрал именно это правило?

если заставить его выделить правило (правила), а потом по выделенным правилам выполнить агента, который применит его к старой почте?
вообще делаю кнопку в папке правила - применить к старой почте.
как определить какие правила выделены пользователем на лотус скрипте, чтобы потом по ним выполнить агента??
Название: Re: @MailFilterStopProcessing
Отправлено: ViV от 24 Август 2009, 12:07:09
Может проще наоборот сделать:
добавить в папки и представления action, который работает на выделенных документах или на всех. В этом агенте проходить по письмам и применять в цикле все правила.
Перед нажатием на эту кнопку пользователь должен включить/выключить правила, которые он хочет использовать для старых документов.
Название: Re: @MailFilterStopProcessing
Отправлено: nadya от 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 установлен и только тогда запустить агента! как это сделать? помогите пожалуйста :-\
Название: Re: @MailFilterStopProcessing
Отправлено: ViV от 24 Август 2009, 13:13:34
Попробуйте переместить ваш скрипт в процедуру ButtonOKClient(), которая находится в библиотеке скриптов Rules.