'note Item Not Found'

Тема в разделе "Lotus - Программирование", создана пользователем yerke, 18 ноя 2009.

  1. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    собственно сабж

    смотрел http://www-01.ibm.com/support/docview.wss?uid=swg21197459
    здесь

    но конкретного ответа там не нашел
    советуют делат апгрейт клиента // такого возможности нет пока
    клиент 6,5,4
     
  2. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    А я нашел..
     
  3. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    у меня здесь не идет речь об аттачах

    есть NotesDocumentCollection с рт_полями (а там текст, инлайн картинки, формула)

    создаю новый NotesDocument, где расположен рт_поля, куда копирую значения рт_полей с NotesDocumentCollection
    с помощью CopyItemToDocument

    потом при открытии
    NotesDocument иногда вылетает ошибка
     
  4. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Был такой косяк. Копирование РТ-поля происходит приблизительно так. В целевой документ изначально копируется содержимое исходного РТ-поля и соответствующие $File, но $File указывает не на целевую БД, а на БД-источник. Только при сохранении целевого документа происходит физический перенос вложения и только после этого $File начинает указывать на целевую БД. Так вот, если в на момент сохранения целевой БД. БД-источник будет закрыта (не будет открытых хэндлов), то копирования вложения не происходит. При этом РТ-поле продолжает указывать на $File. Ещё, если попытаться отобразить св-ва вложения в целевом документе, то показывается ругательный месадж не помню какого содержания. Т.е. вложение получается "битым".

    Вобщем, если копирование РТ-полей происходит из документов одной БД в документы другой, тогда проверьте, есть ли хоть одна переменная, указывающая на БД-источник (из которой получен NotesDocumentCollection) на момент сохранения целевого документа (NotesDocument)
     
  5. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    Как вариант перевесить копирование на серверного агента, а сервер можно хоть самый последний вжарить и проблемы больше не будет
     
  6. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    то есть надо аннулировать хендлы на рт поля
    после копирования
    а как?
    так Set rtitem = Nothing?


    рисунок 1
    схема копирования
     

    Вложения:

    • Untitled_1.jpg
      Untitled_1.jpg
      Размер файла:
      72,2 КБ
      Просмотров:
      165
  7. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Нет. Надо чтобы была переменная содержащая БД-источник. Т.е. не надо ничего аннулировать.
    Вот, например, в следующем примере на момент tDoc.Save (целевого документа), нет ссылки на БД-источник. Потому что БД получена в foo2,а при выходе из foo2 обнуляется и переменная sdb, содержащая ссылку на БД-источник.

    Sub foo1()
    ...
    Set tDoc = ...
    call foo2( tDoc )
    call tDoc.Save(...)
    End sub


    Sub foo2(tDoc as NotesDocument)
    Dim sdb as NotesDatabase
    Dim nc as NotesDocumentCollection
    Set sdb = ...
    Set nc = sdb. ...
    Set doc = nc.GetFirstDocument
    While not doc is nothing
    ...
    doc. CopyItemToDocument( tDoc, ... )
    ...
    Wend
    End Sub
     
  8. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    нет не помогает

    даже если переменная базы источника и
    переменная целевого документа содержатся в одном контексте (внутри одной функции или sub'а)
     
  9. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Значит не угадал. Ещё вспоминается случай, когда отсутствует поле $Links то ли в исходном, толи в целевом документе, при наличии линков в РТ-поле.
     
  10. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    чем не подходит копирование дока целиком, удаление "ненужного", добавление "нужного" ?
     
  11. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    смотри рисунок
     
  12. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    yerke
    Конечно криво, но что если попробовать сперва копирнуть нужные доки в целевую базу, а затем уже из копий тянуть РТ поля? Темповые доки потом грохнуть.
     
  13. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Так что на счёт $Links? Есть или нет?
     
  14. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    и зачем "это"? Не понимаю глубины архитектурного экзерциза
    а что бум делатьс файлом, у кот название совпадёт, а ежели текст дублируется - и это тока первые грабли

    не разу не пробовал с пом ДХЛ так извращаться, но в первом приближении - копируем все РТ и подчиненные ноды, затем файлноды...
     
  15. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    ладно
    если не возможно избавиться от "note Item Not Found"

    но есть другой вопрос
    как ее обработать как ран тайм еррор
    кажется нельзя?

    ибо я не смог ее поймать с конструциией On Error
    ни в PostOpen, ни в QueryOpen, ни в Initialize формы
     
  16. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    факт. не ловится эта дрянь. индусам - низачот.

    а вообще - рано сдались, как мне кажется.
    попробуйте добиться устойчивого появления ошибки. выложите код, железно приводящий к такому рез-ту.
    ну не может такого быть, чтобы не было вокэраунда...
     
Загрузка...

Поделиться этой страницей