• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Не создается коллеция документов методом Search

  • Автор темы ozzyzello
  • Дата начала
O

ozzyzello

Добрый день.
Пытаюсь создать отчет по существующей базе - писал не я. Мне нужно собрать коллекцию документов по базе, использую метод Search. Нужные мне документы не попадают в выборку, пока их не пересохранить. После пересохранения коллекция создается прекрасно. Может кто-то подскажет в чем может быть дело?
 
A

amigolinx

У Search'a вторым параметром идет notesDateTime и про него хелп говорит "A cutoff date. The method searches only documents created or modified since the cutoff date. Specify Nothing to indicate no cutoff date." Возможно здесь собака порылась, ибо при пересохранении дата доков попадает в период "обрезки", а до этого они из него "выпадают".

А вообще для качественного ответа желательно видеть, каким образом используется у тебя этот метод в коде ;)
 
O

ozzyzello

Вторым параметром в Search пишу Nothing.
Все документы попадают в базу путем импорта из Excel, потом создается форма, заполняются нужные поля данными из Excel.
Решил проблему путем пересохранения документов, т.е:

dim w as new notesuiworkspace

set doc=new notesdocument(bd)
doc.form="test"
call doc.save(true,false)
set doc_cur=w.editdocument(true,doc)
call doc_cur.save
call doc_cur.close

Думаю, что все это увеличит обрабатку документов очень надолго, наверняка есть более простой и быстрый путь - вот только как? :)
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Значит, криво заполняются нужные поля. Перед сохранением происходит перерасчет полей, и всё работает.
Документы не подходят под условие. Смотри формулу отбора и типы полей.
 
A

abbatik

Судя по тому, что ты пересохраняешь UI документ, возможно какая-то обработка этих полей происходит в QuerySave, или PostSave.

А вообще, если хочешь сэкономить время, советую построить служебный вид, в котором собрать нужные критерии поиска и использовать GetAllDocumentsByKey для создания коллекции.
 
O

ozzyzello

Сложилось ощущение, что при импорте из Excel как бы правильно поля не заполнять, документ все равно требует обязательного пересохранения.
А то, что в документе присутствует заполнение некоторых полей при сохранении - так и есть. И достаточно много полей Computed.
Т.е. если я правильно понимаю, то пересохранение здесь оптимальный вариант.

Всем большое спасибо за подсказки и советы.
 
N

nvyush

Сложилось ощущение, что при импорте из Excel как бы правильно поля не заполнять, документ все равно требует обязательного пересохранения.
А то, что в документе присутствует заполнение некоторых полей при сохранении - так и есть. И достаточно много полей Computed.
Т.е. если я правильно понимаю, то пересохранение здесь оптимальный вариант.

Всем большое спасибо за подсказки и советы.

Чтобы по сто раз не пересохранять, можно попробовать при импорте выполнить
notesDocument.ComputeWithForm( doDataTypes, raiseError )
перед сохранением
 
O

ozzyzello

Значит, криво заполняются нужные поля. Перед сохранением происходит перерасчет полей, и всё работает.
Документы не подходят под условие. Смотри формулу отбора и типы полей.


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

Чтобы по сто раз не пересохранять, можно попробовать при импорте выполнить
notesDocument.ComputeWithForm( doDataTypes, raiseError )
перед сохранением

Воспользовался, спасибо
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!