Форум продуктов IBM Lotus
Продукты IBM Lotus => IBM Lotus Notes & Domino => Тема начата: Co6aKa от 14 Апрель 2010, 08:52:59
-
Добрый день, всезнающий all =)
Возникла у меня небольшая проблема, решить которую мой скудный мозг не в состоянии. Дело в том, что у пользователей одномоментно и беспричинно отвалились все локальные почтовые правила.
Если раньше все письма стабильно сортировались по папкам и не возникало проблем, то сейчас все письма валятся во "Входящие" и упорно не желают расходиться по папкам.
Пытался переставить сам notes, дать права локального администратора пользователю (полные права на директорию, где стоит клиент есть), пнуть как следует сервер - ничего не помогает.
Может подскажете в какую сторону копать? (
-
Правила работают на сервере. Если отвалились у ВСЕХ пользователей, то, думаю, рестарт сервера поможет.
Если у некоторых, то можно посмотреть в консоли сервера - он должен ругаться, что, типа, не могу загрузить правило №... в базе.
В этом случае можно попробовать отключить все правила скриптом
Sub Initialize
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim profile As NotesDocument
Dim doc As NotesDocument
Dim rules As NotesView
Dim item As NotesItem
Dim server As String
Dim DBPath As String
Dim count As Integer
count = 0
Print count , "№1 Обнулили счетчик"
server = ws.Prompt(PROMPT_OKCANCELEDIT, "Server", "Specify the name of the server that the DB with the bad rules is on.")
DBPath = ws.Prompt(PROMPT_OKCANCELEDIT, "DB Filepath", "Specify the filepath to the DB that needs to be fixed.")
Set db = New NotesDatabase(server, DBPath)
If Not db.IsOpen Then
Messagebox "The server or DBPath was entered incorrectly." & Chr(10) & "Server: " & server & Chr(10) & "DB Filepath: " & DBPath
Exit Sub
End If
Set profile = db.GetProfileDocument("CalendarProfile")
Set rules = db.GetView("Rules")
' Disable all of the rules that there are. Period!!!
Print count, "№2"
If Not profile Is Nothing Then
If rules.AllEntries.Count > 0 Then
Call profile.ReplaceItemValue("$FilterFormulaCount", Cstr(rules.AllEntries.Count))
Elseif profile.HasItem("$FilterFormulaCount") Then
Call profile.RemoveItem("$FilterFormulaCount")
End If
Forall items In profile.Items
If items.type = 1536 Then
If Lcase(Left(items.name,7)) = "$filter" Then
Call items.remove()
End If
End If
End Forall
Call profile.Save(True,True,True)
End If
' Mark the bit on every rules document still present in the rules folder for disabled and be sure that the ordernum starts at 0
Print count , "№3"
Set doc = rules.GetFirstDocument()
While Not doc Is Nothing
Call doc.ReplaceItemValue("Enable", "0")
Call doc.ReplaceItemValue("OrderNum",count)
count = count + 1
Print count , "№4 В цикле"
Call doc.Save(True,False,True)
Set doc = rules.GetNextDocument(doc)
Wend
Call rules.Refresh()
Print "Complete"
End Sub
после чего снова включить.
P.S. Вновь созданные правила также не работают?
-
В том-то и дело, что правила прикрученные к серверу (например размер письма не более 25 метров, не пускать в письме mp3 и иже сними) прекрасно работают. Не работают именно локальные правила, созданные пользователем в клиенте в почтовой базе при помощи "Сервис->Создать простое правило". Перегружал сервер, переставлял клиенты - ничего не помогает. В консоли ничего не пишет как не странно.
Попробовал сунуть ему скрипт - не помогло.
Вновь созданные правила так же не пашут =(
-
Правила, созданные пользователем локально, работают именно на сервере (в том числе при выключенном клиенте)
При работе скрипта в строке состояния появляются сведения. Что было у вас?
P.S. Не созданы ли правила в реплике на локальном компьютере и отключенной репликации :)?
P.P.S. Правило могут "глючить", но все правила у всех не работать НЕ МОГУТ