Войти
 
 
   
 
  
Новости Notes.ру Библиотека Биржа труда Вопрос - ответ Форум Регистрация Поиск О проекте
Разделы
О Notes
Советы
Шаблоны и примеры
Литература
Презентации
 
Всё о задаче AdminP. Часть вторая   Во второй части мы завершаем рассмотрение AdminP. В ней рассмотрены запросы междоменного администрирования и способы управления функциями AdminP с помощью настроек документа сервера, команд консоли сервера, файла Notes.ini и интервалов очистки базы данных. В этой статье предполагается, что вы опытный администратор Domino и прочитали первую часть
О Notes Читать статью
 
Всё о задаче AdminP. Proxy-действия в R5 и Domino 6   Приложение к статье об административном процессе
О Notes Читать статью
 
Всё о задаче AdminP. Часть первая   Перевод классической статьи 2003-его года о задаче административного процесса (AdminP). Очень полезна для понимания работы механизма этой задачи. В первой части статьи описаны компоненты задачи AdminP, как они работают, и как их использование помогает сделать работу администратора Domino проще. Задача AdminP (сакращённо от Administration Process, Административный процесс) работает с базой административных запросов (Administration Requests, admin4.nsf)
О Notes Читать статью
 


Советы

Главная   Библиотека   Советы

Документы, создаваемые программно с использованием метода CopyToDatabase, не реплицируются

Документы Lotus Notes®, которые создаются с использованием метода CopyToDatabase класса NotesDocument, не реплицируются, как это ожидалось. Когда вы откроете окно свойств таких документов, можно увидеть, что атрибуты Created Date и Modified Date сохранили значения оригинальных документов, из которых они были скопированы.

Причина
Метод CopyToDatabase сохраняет большинство свойств оригинального документа, в том числе, значения свойств (айтемов) Created Date, Modified Date, Document Unique ID [UNID].
Значения атрибутов Added (In this file) и Modified (In this file) не копируются из оригинального документа, сохраняя время действительного создания нового документа. Поскольку дата изменения (Modified date) не пересматривается у созданного документа, документ не попадает в репликацию, если журнал репликаций содержит более свежую дату, или дата изменения ранее, чем установленная в Параметрах репликации (закладка Other) в настройке "This replica includes deletion stubs for all documents deleted since xxx", которая в более ранних релизах (до Notes 6.5.6 and 7.0.2) именовалась: "Only replicate incoming documents saved or modified after xxx"

Описанная проблема значится в Quality Engineering за номером SPR# JJUS6RDCYX. Не планируется добавлять дополнительную функциональность для её решения, но способы решения приведены ниже.

Для устранения этой проблемы в уже созданных документах
Документ следует пересохранить программно или вручную с тем, чтобы изменилась дата модификации. В качестве альтернативного метода, можно поменять дату отсечки (cutoff date) в параметрах репликации, но это может породить неблагоприятный эффект в отношении удалённых стабов. Также это может стать причиной, по которой в репликацию попадут старые документы.

Для того, чтобы не получить проблему в будущем

Как описано в
SPR# ASHW4X9P8R, для решения проблемы в Lotus Notes/Domino® 6.0.4, 6.5.2, 7.0 и более поздних версиях, возможна установка переменной среды в файле notes.ini. Параметр CopyToDatabase_New_UNID, установленный в 1, принуждает для вновь созданного (скопированного методом CopyToDatabase) документа использовать новый UNID, что приведёт к установке новых значений свойствам Created и Modified документа.

Параметр должен быть прописан в файле настроек клиента Notes или сервера Domino, на котором исполняется код LotusScript, содержащий обращение к методу
CopyToDatabase.

В качестве альтернативы для решения проблемы можно после создания документа-копии прописывать в него ничего не значащее поле и пересохранять документ.
Примечание: Поле должно быть добавлено для изменения свойства Modified.

Например, замените строку
call doc.CopyToDatabase(db) следующим кодом:
Set doc2=doc.CopyToDatabase(db)
doc2.dummy="1"
Call doc2.save(True, True)


Читайте на Notesnet.ru
Всё о репликации Lotus Notes/Domino >>>
Параметр Дата отсечки не работает при репликации в Notes/Domino 6.x or 7.x >>>
 
  Опубликовано — 07/22/2009 |    Источник: IBM Support

VladSh, 30.07.2009 13:39:13:
Кстати, dummy ведь нужен, когда Call doc2.save(False, False). При (True, True) док же по любому сохраняется?!

Для всех случаев, когда критично по конфликтам, я делал так:
Const IN_DUMMY = "dummy"
Set doc2 = doc.CopyToDatabase(db)
Call doc2.ReplaceItemValue(IN_DUMMY, "1")
IF doc2.Save(False, False) Then
Call doc2.RemoveItem(IN_DUMMY)
Call doc2.Save(False, False)
End IF
:-)

VladSh, 30.07.2009 11:46:23:
> хуже было бы, если бы взяли и исправили
Если в стиле исправлений от IBM, когда ещё что-то по ходу отваливается, то да :)))
Для архивации да, полезная штука. Можно было бы сделать по человечески - необязательный параметр, который за это отвечает, но, видно, не судьба...

Ник Норкин, 30.07.2009 09:50:33:
Влад, для данного случая, мне кажется, это несущественно - хуже было бы, если бы взяли и исправили. А так - вроде альтернативы решения предложены (хочешь играть по новым правилам - пиши переменную в notes.ini, хочешь остаться совсем свободным - дописывай dummy). Наверное, функцию разрабатывали для использования при архивировании, поэтому существенно сохранение оригинального времени, но не существенна репликация данных. Только забыли предупредить, для чего использовать эту функцию, и потом обнаружили, что когда она используется в других целях, то имеются побочные эффекты

VladSh, 29.07.2009 14:22:24:
"Не планируется добавлять дополнительную функциональность для её решения"
Похоже на Лотус подзабили, т.к. не то чтобы пожелания реализовывать... - на баги реальные ложат! Смотрю, Лотус сейчас развивается именно как почта (почте этот баг не особо и мешает), и что-то корректировать/исправлять - это создавать внутреннюю конкуренцию с FileNet.



Добавить комментарий
Имя * :
e-mail
Комментарий * :
Код подтверждения * :


Мероприятия
Пресс-релизы
Биржа труда
Последнее на форуме
 
А так же:
Как удалить профиль?
16.04.2016 00:08:51
Скопировать в буфер поле документа
24.05.2015 08:55:52
Импорт DXL-описания документов в Lotus Domino. Одноимённые поля
16.04.2015 16:49:58
 
© LOGOSPHERE.RU