Как найти документы с переполнением (32k)

Ruslan280

Well-Known Member
18.04.2013
50
0
#1
Как найти документы с переполнением (32k) ? знаю что можно scanez, но там не знаю как правильно задать интервал noteid для поиска - по дефолту хочет перебрать 4 миллиарда вариантов
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 223
24
#2
самому написать скрипт, суть в том, чтобы обьём всех суммари полей был меньше 32К
 

Ruslan280

Well-Known Member
18.04.2013
50
0
#3
самому написать скрипт, суть в том, чтобы обьём всех суммари полей был меньше 32К
по-моему такие документы не попадают в db.alldocuments (, тк я пытался сделать скрипт, но документы эти не нашел
а в консоли при обновлении вьюх ошибки таки есть
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 223
24
#4
по-моему такие документы не попадают в db.alldocuments (, тк я пытался сделать скрипт, но документы эти не нашел
а в консоли при обновлении вьюх ошибки таки есть
брехня, туда попадают даже удаленные ;)
 

anna

Well-Known Member
Lotus team
03.06.2014
400
11
#5
я пыталась это определять, проверяя, что возвращает Save, но так и не уверена, всегда ли срабатывает.
 

Shandrik

Well-Known Member
Lotus team
30.12.2010
268
26
#7
А в какой момент-то 32к беспокоит?
Если в момент doc.Save или uidoc.save, то не факт, что они во вьюшках уже с переполнением.
 

Ruslan280

Well-Known Member
18.04.2013
50
0
#8
А в какой момент-то 32к беспокоит?
Если в момент doc.Save или uidoc.save, то не факт, что они во вьюшках уже с переполнением.
перестроил вьюху - доки с переполнением пропали в ней ( руками подправляю - появляются .Но я смог найти только пару штук тк знал униды, остальные как найти?)
 

Shandrik

Well-Known Member
Lotus team
30.12.2010
268
26
#9
Ещё раз - в какой момент 32к беспокоит? При открытии, при сохранении, при попытке выбрать в пиклисте? Что делается с проблемным документом?
 

Shandrik

Well-Known Member
Lotus team
30.12.2010
268
26
#10
Прогоните db.AllDocuments по функции:

Код:
Function Check32or64k$(nd As NotesDocument)
Const Lim32k=32000
Const Lim64k=64000
Dim SumSize%
Forall it In nd.Items
If it.IsSummary Then
If it.ValueLength>Lim32k Then Check32or64k=Check32or64k & Chr(10) & it.name
SumSize%=SumSize% +it.ValueLength
End If
End Forall
If SumSize%>Lim64k Then Check32or64k$=Check32or64k$ & Chr(10) & "64k"
End Function
По каждому документу должна вернуть имена переполненных саммари-полей и/или "64к", если переполнена их сумма.