• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Помогите, пожалуйста решить проблему с почтовым файлом

Gandliar

Lotus Team
16.02.2004
560
26
BIT
85
Здравствуйте!

История такая

Была сделана реплика почтового файла пользователя на сервер без русского языкового пакета, с сервера, на котором такой пакет имелся.
По всей видимости после обновления дизайна с шаблона (в шаблоне 2 языка русский и английский) база стала глючить
На сервер поставили русский языковой пакет, но глюки остались, и непонятно как их победить.

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

1. Если база содержит 2 языка (мультилингвал) выбран язык русский в настройках базы, то в базу письма приходят в английский инбокс и не видны пользователю в русском инбоксе (отображается русский инбокс)
2. Если базу сконвертировать в английский, затем в русский - оставить один язык - то письма отображаются в русском инбоксе корректно, после конвертации папок и они перестают глючить, но у некоторых пользователей все равно проблема остается.
3. удаление календарного профильного документа не помогает.

при заходе в базу в строке состояния промелькивает сообщение note item not found

По итогу складывается впечатление, что в базе данных где то сидит отметка что база английская и неясно как ее выковырять и заменить на русскую.

Может кто сталкивался с таким и как полечить?

Заранее благодарю.
 

savl

Lotus Team
28.10.2011
2 612
313
BIT
356
попробуйте сделать replace design на одной базе, чтобы проверить, можно сразу с целевого шаблона.
Суть в том, что если в базе остались наследуемые элементы, то convert не изменит их, поэтому могут быть ошибки.
и судя по командам, накат идет с обычного шаблона, просто какой-то флаг в свойствах выставляете?
 
  • Нравится
Реакции: Мыш

Wanderstep

Lotus Team
23.03.2006
493
65
BIT
22
Я бы отошел от мультиязычного шаблона и использовал чисто русский и чисто английский шаблоны.
Если сконвертируете в чисто русский шаблон (conver с ключом -u), то может быть ошибки уйдут само собой.

Что касается диагностики проблемы, то у вас там наверняка остались элементы от прошлого дизайна.
Надо дизайнером открыть проблемную базу и по всем сущностям пройтись - вы увидите их.
По опыту, обратите в дизайне еще и на раздел Code\Shared Actions - там, например, в одном из моих кейсов просто хранилась пустая секция\категория от неактуального языка, в которой не было элементов. Надо было просто удалить секцию, и проблем не стало.
 
  • Нравится
Реакции: Gandliar и Мыш

Gandliar

Lotus Team
16.02.2004
560
26
BIT
85
Оказалась виновата лишняя заглюченная секция!!!!!!!!!

Огромное спасибо!

Осталось придумать скрипт как у сотен пользователей проверить и при нахождении ее грохнуть скриптом.
Если есть мысли, подскажите плиз.
 

Wanderstep

Lotus Team
23.03.2006
493
65
BIT
22
Оказалась виновата лишняя заглюченная секция!!!!!!!!!

Огромное спасибо!

Осталось придумать скрипт как у сотен пользователей проверить и при нахождении ее грохнуть скриптом.
Если есть мысли, подскажите плиз.
Счас уже не вспомню, но пошаманьте с шаблоном. Я скриптом никого не правил - мне проще было доработать шаблон и накатить его на всех - и проблема с секцией ушла.
 
  • Нравится
Реакции: Gandliar и Мыш

Gandliar

Lotus Team
16.02.2004
560
26
BIT
85
Точно!
В шаблоне тоже оказалась такая хрень - удалил, запустил обнову и сработало.
Большое спасибо!
 

Мыш

Lotus Team
12.02.2008
1 222
29
BIT
86
Не ручаюсь за корректность кода, но примерно вот так. В нашем случае Src - это шаблон, Dst - база пользователя, *DesignName - "$ACTIONS" (все shared actions).

Visual Basic:
Sub ReplaceDesign(SrcServerName As String, SrcDbName As String, SrcDesignName As String, DstServerName As String, DstDbName As Variant, DstDesignName As String)
    Dim SrcDb As NotesDatabase
    Dim DstDb As NotesDatabase
    Dim SrcNoteColl As NotesNoteCollection
    Dim DstNoteColl As NotesNoteCollection
    Dim i As Integer
    Dim DesignDoc As NotesDocument     
    Dim NewDesignDoc As NotesDocument     
    Dim id As String
    Dim next_id As String
    
    Set SrcDb = ss.GetDatabase(SrcServerName, SrcDbName)
    If Not SrcDb.IsOpen Then Call SrcDb.Open("","")
    Set DstDb = ss.GetDatabase(DstServerName, DstDbName)
    If Not DstDb.IsOpen Then Call DstDb.Open("","")
    
    Set DstNoteColl = Dstdb.CreateNoteCollection(False)
    DstNoteColl.SelectActions = True
    Call DstNoteColl.BuildCollection
    id = DstNoteColl.GetFirstNoteId
    For i = 1 To DstNoteColl.Count
        next_id = DstNoteColl.GetNextNoteId(id)
        Set DesignDoc = DstDb.GetDocumentByID(id)
        If DesignDoc.HasItem("$TITLE") And InStr(1, DesignDoc.GetItemValue("$TITLE")(0), DstDesignName, 5) Then
            Call DesignDoc.Remove(True)
        End If
    Next
    Set SrcNoteColl = SrcDb.CreateNoteCollection(False)
    SrcNoteColl.SelectActions = True
    Call SrcNoteColl.BuildCollection
    id = SrcNoteColl.GetFirstNoteId
    For i = 1 To SrcNoteColl.Count
        next_id = SrcNoteColl.GetNextNoteId(id)
        Set DesignDoc = SrcDb.GetDocumentByID(id)
        If DesignDoc.HasItem("$TITLE") And InStr(1, DesignDoc.GetItemValue("$TITLE")(0), SrcDesignName, 5) Then
            Set NewDesignDoc = DesignDoc.CopyToDatabase(DstDb)
        End If
    Next
End Sub
 
  • Нравится
Реакции: Gandliar

Gandliar

Lotus Team
16.02.2004
560
26
BIT
85
Спасибо большое и за пример кода!

Мне осталось решить скрытую проблему, может у кого то есть мыли по поводу этой проблемы.

Если база мультиязычная, и в базе присутствуют 2 языка внутри, причем по умолчанию стоит русский, то письма все равно приходят в английский инбокс, а в русском инбоксе не отображаются.
Как такое победить? Чтобы приходило и в тот и в тот? От чего это зависит? Прошу помощи.

Ведь если 2 языка в почтовой базе и в региональных настройках можно переключить язык интерфейса
соответственно пользователь будет видеть предпочитаемый язык интерфейса, а письма упорно приходят только в английский инбокс.
Сейчас такая проблема решена оставлением единственного языка в базе данных и одного инбокса
но есть ряд пользователей, которых хотят переключаться...

Как сервер понимает в какой инбокс ложить, или что то не отрабатывает в самой базе данных
 

Мыш

Lotus Team
12.02.2008
1 222
29
BIT
86
Не уверен, но, по-моему, 2 инбокса - это неправильно. Должен остаться только один (с) :)
По логике, *название* инбокса должно для разных языков по-разному отображаться....
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 965
611
BIT
318
Не уверен, но, по-моему, 2 инбокса - это неправильно. Должен остаться только один (с) :)
По логике, *название* инбокса должно для разных языков по-разному отображаться....
папки точно две, и соответ. линк в доке будет для установленного языка
 
  • Нравится
Реакции: Мыш

Gandliar

Lotus Team
16.02.2004
560
26
BIT
85
1646805772314.png

В базе стоит русский язык в настройках, а письма падают в английский инбокс, в русский не попадают.
Инбокс отображается в зависимости от настроек языковых настроек клиента
В английском письма видны, в русском нет.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!