поле Log

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

oxystile

Гость
#1
кто как работает с полем лог-протокол, куда заносятся все изменения с документом,все пользовательские действия?
В частности интересует обработка, ведь если поле Log-текстовое, то его вместимость ограничена.
Если кто использует в качестве Log-ричтекст, то на каком этапе заносятся туда записи?
 
O

oxystile

Гость
#3
во всех документах, с которыми усиленно работают пользователи у меня заведено поле Log,
куда при сохранении записывается кто и какие изменения сделал с документом
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#4
Тебе его во view показывать не надо, ведь верно?
Оставляй его текстовым и ставь проперти IsSummary в False.
После этого ограничение чудесным образом должно исчезнуть <_<
 
S

Sandr

Гость
#5
Тебе его во view показывать не надо, ведь верно?
Оставляй его текстовым и ставь проперти IsSummary в False.
После этого ограничение чудесным образом должно исчезнуть <_<
Тока фигня одна есть... после ReplaceItemvalue или AppendItemValue оно опять будет тру... :(
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#6
Для: Sandr
Это да, но ведь это контролируемо :)
Хотя мне самому этот способ не очень нравиться.
 
O

oxystile

Гость
#7
IsSummary = False задала в Postopen, заполняю поле до предела, последние пару строк в поле не влезли, переоткрываю док, вижу сообщение типа Field is too much&32k , после этого данные в поле просто исчезают.

тут пробовала еще вариант, на querysave делаю проверку
size_=Lenb(doc.Log(0))
size_> 30000 Then
то добавляю содержимое поля Log в поле Log_Big(рич текст)
кажись, нормально работает


п.с. содержимое поля во вьюхе не отображаю
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#8
Для: oxystile
Скорее ставь на QuerySave, а не на PostOpen.

Или вообще для аудита документов создать отдельный документик/базу.
Зачем засирать полезные документы полем, которое может превысить 32k.
 
O

oxystile

Гость
#9
поставила IsSummary = False на QuerySave, уже на размер поля не ругается, но видимо у поля все же есть предел, т.к. я добила до того момента, когда оно просто не дополняется.
добавить поле лог в отдельный документик/базу нельзя в связи со спецификой работы.
Если и будет переполнение log за 32К, то будет это случаться не часто(по крайней мере в этой базе),поэтому хочу предусмотреть этот случай на будущее. Вариант с IsSummary в принципе устраивает, но не везде.
Есть одна БД, в кот. необходимо строго вести протокол, и полностью, и часто величина 32 к там будет превышена, так если я добавлю в такие документы поле rich text для протокола, то это сильно загрузит базу??
 
S

Sandr

Гость
#10
А что мешает каждую запись протокола делать отдельным документом? так ведь даже удобней потом читать.. Или сделать так как в стандартной log.nsf... Так записываеться определенное количество записей в один документ, потом создается другой... и так дальше.. ИМХО удобней...
 
O

oxystile

Гость
#11
кстати да, попробовала логи хранить в отдельных документах, но только и в отдельной БД.
т.о. когда документы придется переносить из БД в архив, то с логами не придется ничего делать.

протестила и как итог:
-если БД незначительная и поле Log выйдет за пределы 32К только в исключительных случаях, то достаточно поставить на QuerySave IsSummary = False для Log.
-если БД значимая и Log будет переполняться довольно часто, то для документов такой БД рационально протокол вести как отдельный документ в отдельной БД, где поле Log будет уже Rich Text