Войти
 
 
   
 
  
Новости Notes.ру Библиотека Биржа труда Вопрос - ответ Форум Регистрация Поиск О проекте
Разделы
Вся лента вопрос-ответ
Рубрики
   Разработка notes-приложений
   Разработка web-приложений
   Администрирование Notes&Domino
   Почта Lotus Domino
   Общие вопросы
 
Всё о задаче 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 Читать статью
 


Вопрос-ответ

RSS
Главная   Вопрос-ответ   Как отследить удаление документа

Как отследить удаление документа

Вопрос:

Здравствуйте, notesnet.
Я разработчик на JAVA, правда еще не опытный
У меня стоит задача синхронизировать базу Lotus Notes, даже не базу, а только некоторые документы из базы, с центром синхронизации.
Т.е. я должен отслеживать изменения в документах базы Notes и отправлять их в центр синхронизации. Сейчас это делаю с помощью Java-agent'а который запускается при создании новых и редактировании старых документов. Но проблема в том, что я не могу отследить удаление документов - агент на них не реагирует...
Посоветуйте что-нибудь. Заранее спасибо.

Ответ:


Советую...
1. Самое честное решение задачи - писать серверную задачу (hook) на C с использованием функций Lotus C API, отслеживающую все действия над документами, производимые на сервере
Или воспользоваться уже готовым решением - например, из проекта Trigger Happy Дамьена Катца >>>

2. Еще одно решение - менее глобальное, но более остроумное и в достаточной мере справляющееся с поставленной задачей
Анализ stubs удаленных документов
Про stubs: >>>
Поскольку стабы живут долго, их можно анализировать, допустим, серверным агентом по расписанию

Про технику их получения на LotusScript используя вызовы функций Lotus C API: >>>

Там же Глеб Ноздрачев уверял в возможности организации специального представления содержащего stubs: >>>
Плохо то, что "волшебного" значения поля $FormulaClass я не знаю. А то бы решение подходило бы лучше, чем использование обращений к апишным функциям

В версии R6 появился класс NotesNoteCollection, но облегчает ли он работу с удаленными документами - я не пробовал. С первого взгляда не нашел подходящих свойств и методов

3. Дальнейшие идеи решений имеют ограничения на условия применения
3.1. Включить свойство базы Soft deletion и анализировать представления с "мягко-удаленными" документами (они более доступны, чем стабы, хоть и живут меньше)
Ограничения:
- использование в коде приложения hard deletion
- наличие проблем с репликациями баз при включенном свойстве Soft deletion в ранних версиях пятерки
- не стоит забывать обработать событие восстановления документа из мягко-удаленных (раз появится такая возможность)

3.2. Запретить пользователям удалять документы. Разрешить удалять документы только через RunOnServer-агент с соответствующими правами (который и будет "логировать" удаление)
Ограничения:
- наличие кода приложения, который уже использует удаление напрямую

3.3. Запретить пользователям удалять документы. Вместо удаления в коде ставить признак того, что документ "удален" (используя обработчик события QueryDocumentDelete базы данных). Перепроектировать приложение, чтоб оно воспринимало документы с этим признаком как удаленные

3.4. Использование обработчика события QueryDocumentDelete базы данных
Можно использовать только для протоколирования удаления документа в интерфейсе (пользователь удаляет документ, используя клавишу Delete). Наличие кода с бэк-ендным удалением документов (document.remove()) обходит этот обработчик

Успехов!
Николай Норкин

Читайте на Notesnet.ru
Классы для работы со стабами удалённых документов >>>
 
  Опубликовано — 04/23/2005 |    

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