Войти
 
 
   
 
  
Новости Notes.ру Библиотека Биржа труда Вопрос - ответ Форум Регистрация Поиск О проекте
Разделы
О Notes
Советы
Шаблоны и примеры
Литература
Презентации
 
Дополнительные инструменты в панели инструментов   
Шаблоны и примеры Читать статью
 
Классы для работы со стабами удалённых документов для Windows64   
Шаблоны и примеры Читать статью
 
Базовые компоненты XPages Extension Library: Widget Container   Серия статьей дающая представление о базовых компонентах Extension Library, их основных свойствах и мест применения
О 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
Комментарий * :
Код подтверждения * :


Мероприятия
18.12.2012   Опыт реализованных проектов на базе технологий IBM
24.10.2012   Решения IBM для построения надежной ИТ-инфраструктуры и сервисов
09.10.2012   Форум «Ударим СЭДом по бездорожью, разгильдяйству и непрозрачным бизнес-процессам! Система электронного документооборота CompanyMedia 4.0: вперед в будущее!»
Пресс-релизы
02.06.2011   ООО "АДБ.РУ" выпустило очередную версию системы управления контентом для Lotus Domino - Logosphere 2.7.
21.01.2010   Компания «Поликом Про» выполнила для компании «Синергия» пилотный проект по внедрению системы защиты электронной почты IBM Lotus Protector for Mail Security
22.12.2009   Новые технологии разработки приложений на базе Lotus Domino
Биржа труда
18.04.2012 - разработчик Lotus Notes (ОАО "УРАЛСИБ")
26.07.2011 - Программист Lotus (удаленная работа) ()
06.06.2011 - Эксперт (Lotus Notes/Domino) (Крупный банк (ТОП-5))
Последнее на форуме
 
А так же:
Скопировать в буфер поле документа
24.05.2015 08:55:52
Импорт DXL-описания документов в Lotus Domino. Одноимённые поля
16.04.2015 16:49:58
Использование WebDAV в приложениях Domino
18.03.2015 13:11:26
 
© LOGOSPHERE.RU