Monitor Error in Database xxx.nsf: Entry not found in index

Автор Тема: Monitor Error in Database xxx.nsf: Entry not found in index  (Прочитано 10283 раз)

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Monitor Error in Database xxx.nsf: Entry not found in index
« : 11 Сентябрь 2008, 20:52:02 »
11/09/2008 | Сергей

Выдаются ошибки:
1. Monitor Error in Database xxx.nsf: Entry not found in index;
2. Error registering mail rule 10 for database yyy.nsf: Monitor has already been registered, no action taken.
Подскажите пожалуста как их решить.

Ответ :

Сергей, добрый день!

1. Подобная ошибка может возникать если в базе есть почтовые правила с некорректным условием. Например, задано, что письма должны перемещаться в папку, которой не существует.

Если все правила корректны, то скорее всего появилось "правило-призрак". Оно могло возникнуть если правило было удалено и перед удалением не было выключено. Правило осталось записанным в профайле и продолжает функционировать.
Чтобы удалить таких "призраков", нужно почистить записи о правилах в профайле. Для этого в базе данных нужно создать и запустить агента со следующим кодом:
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.currentdatabase
Dim workspace As New NotesUIWorkspace

'This folder contains all the Mail Rules.
Dim folder As NotesView
Set folder = db.GetView("(Rules)")

'Find the calendar profile document in the current database. (GetProfileDocument will create the named profile document if it does not already exist.)
Dim calendarProfile As NotesDocument
Set calendarProfile = db.GetProfileDocument( "CalendarProfile" )

'Mail Rules are compiled and saved in special fields named $FilterFormula_xx
'Remove all of these fields from the calendar profile.
Forall item In calendarProfile.Items
If( Lcase$(Left$(item.Name,15)) = "$filterformula_" ) Then
Print "Cleanup " & item.Name
Call item.Remove
End If
End Forall

'Save changes to the calendar profile.
Call calendarProfile.Save( False, False )

'Disable all Rules.
Dim mailrule As NotesDocument
Set mailrule = folder.GetFirstDocument
While Not( mailrule Is Nothing )
Call mailrule.ReplaceItemValue( "Enable","0" )
Call mailrule.Save( True,False,True )

Set mailrule = folder.GetNextDocument( mailrule )
Wend

'Open the Rules folder
Call workspace.OpenDatabase( db.Server, db.FilePath, "Rules" )

'Message to the user.
Messagebox "Cleanup complete."

После этого нужно включить все правила.

2. Такая ошибка возникает если у нескольких правил один и тот же порядковый номер (поле OrderNum). Попробуйте поперемещать правила вверх/вниз, это должно скорректировать их порядковые номера.
 
-- Взято из раздела Вопросы и ответы --

U1946KU

  • Почетный специалист
  • Старший специалист
  • ******
  • Сообщений: 107
    • Просмотр профиля
    • E-mail
Re: Monitor Error in Database xxx.nsf: Entry not found in index
« Ответ #1 : 12 Сентябрь 2008, 12:32:47 »
Небольшое дополнение.
Правила могут работать некорректно, если у пользователя не настроено одно из представлений Календаря.

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Monitor Error in Database xxx.nsf: Entry not found in index
« Ответ #2 : 12 Сентябрь 2008, 12:40:35 »
Небольшое дополнение.
Правила могут работать некорректно, если у пользователя не настроено одно из представлений Календаря.

Можно подробнее, какое представление нужно настраивать?

U1946KU

  • Почетный специалист
  • Старший специалист
  • ******
  • Сообщений: 107
    • Просмотр профиля
    • E-mail
Re: Monitor Error in Database xxx.nsf: Entry not found in index
« Ответ #3 : 30 Сентябрь 2008, 13:05:14 »
Новые извещения/Задачи. Если это представление не настроено, будет отображаться кнопка "Настроить".