2014-02-14 1 views
2

То, что я пытаюсь сделать, это прочитать через примечания 5 лотоса и экспортировать весь документ там, чтобы локальный репозиторий modeshape, но как только я закончу читать все миллионы записей/документов, процесс начинается с 1-й записи в примечаниях лотоса, но я этого не хочу. Мне нужно прочитать только недавно измененные документы в примечаниях лотоса.Как найти недавно измененный документ в примечаниях к лотосу 5

моя функция выглядит примерно так:

public void run() { 
    logger.log(Level.INFO, "entering run"); 
    try { 
     String pathToFolder = ""; 
     s = NotesFactory.createSession(host, "username", "password"); 
     Database db = s.getDatabase("", nsffilename); 
     if (!db.isOpen()) { 
      db.open(); 
     } 
     DocumentCollection docCol = db.getAllDocuments(); 
     Document doc = docCol.getFirstDocument(); 
     while (doc != null) { 
      doc = docCol.getNextDocument(); 
     } 
    } 
} 

Я нашел код отключения Интернета, который размещен здесь: http://www-12.lotus.com/ldd/doc/domino_notes/7.0/help7_designer.nsf/f4b82fbb75e942a6852566ac0037f284/c698b5888603d5cd8525704a00417105?OpenDocument

, но это работает только для Lotus Notes 8 и выше. , но я застрял с примечаниями к лотосу 5. Пожалуйста, дайте мне знать, если есть способ, которым я могу получить недавно измененные документы в примечаниях к лотосу. 5.

+0

Похоже, что кто-то не обновлялся с тех пор [1999] (http://www.ibm.com/developerworks/lotus/library/ls-NDHistory/), почему они так долго ждали? –

+0

Не знаю сэра, но это просто расстраивает работу над этой старой системой – TusharPanda

ответ

5

Создайте представление с первым столбцом @Modified в порядке убывания сортировки и используйте Просмотреть класс для чтения всех документов - с последними изменениями.

... 
    View view = db.getView("YourViewSortedByLastModified"); 
    view.setAutoUpdate(false); 
    Document tmpdoc; 
    Document doc = view.getFirstDocument(); 
    while (doc != null) { 
    // do with your doc what you want 
    tmpdoc = view.getNextDocument(doc); 
    doc.recycle(); 
    doc = tmpdoc; 
    } 

Вы можете сломать цикл, когда вы достигли документа из последнего прогона.

Не используйте в вашей формуле выбора вида любую функцию, которая передает текущее время или дату, например, @Now или @Today по соображениям производительности. Лучше всего перечислить все документы и остановить цикл при достижении документа из последнего прогона.

Непознан порядок документов в DocumentCollection. Обычно самые старые документы являются первыми, но вы не можете полагаться на это. Если вы пройдете через View порядок документа в поле зрения остается.

+0

спасибо за ваш ответ Кнут, я получу команду нот лотоса, реализующую это представление, и отметит этот ответ как правильный ответ, если думает начать работать как ожидалось. Большое спасибо за ответ, хотя. вы только что сэкономили мне миллион итераций записей :) – TusharPanda

+0

Привет, Кнут, не могли бы вы рассказать мне, какой должен быть запрос для создания представления в примечаниях лотоса для получения измененных записей. Извините, я не являюсь ресурсом нот лотоса, и человек, который может это сделать, - это не то место, где я работаю. Я был бы очень признателен за вашу помощь в этом отношении. – TusharPanda

+0

Сообщите персоналу Notes, что вам нужно представление с 'SELECT @ All' (для всех документов в базе данных) и один сортирующий столбец с формулой' @ Modified'. –

0

Вместо того, чтобы собирать документы из всех документов в базе данных, вместо этого вы можете создать представление, которое отображает только недавно измененные документы и циклически просматривает это представление.

+0

Привет, Кен, Я собираюсь реализовать это в соответствии с рекомендациями Кнута и вашей рекомендации. Надейтесь, что все работает так, как ожидалось. спасибо за ответ, хотя – TusharPanda

Смежные вопросы