Поле слишком велико 32 кбайт ошибка notes

0 / 0 / 0

Регистрация: 20.10.2008

Сообщений: 271

1

Как выловить предупреждение?

05.04.2009, 15:36. Показов 34991. Ответов 25


Студворк — интернет-сервис помощи студентам

Добрый день, коллеги.

Сразу оговорюсь, что код не мой, так что хаять, что так не делают не надо, ибо сам это знаю :(

Есть форма документа, в которой содержится около 20 подформ, куча различных вычисляемых полей с 20-40 строчными собаками… В двух словах ужас полный ;)
Проблема такова, что у удаленных пользователей возникает предупреждение «Поле слишком велико (32 КБайт) или слишком велики формулы для значений в столбцах и отбора». Причем, когда я открываю этот документ от себя, такой ошибки не получаю, из чего сделал вывод, что проблема либо при обращении к справочнику, либо где-то имя какое-то некорректное у них… Ошибка очевидно вылетает либо при сохранении документа, либо на uidoc.RefreshHideFormulas. Ограничений на UpdateBy и Revisions стоят.

Но вопрос в другом. Как можно выловить при вычислении какого поля выскакивает ошибка?



0



0 / 0 / 0

Регистрация: 04.10.2007

Сообщений: 2,977

05.04.2009, 15:40

2

Цитата
Сообщение от abbatik

Сразу оговорюсь, что код не мой

та ладно, не отмазывайся ;)

Цитата
Сообщение от abbatik

Как можно выловить при вычислении какого поля выскакивает ошибка?

а в самом сообщении нету имени поля?.. тогда только методом вырезания/возвращения полей…

если ошибка вылетает у кого-то, а у тебя — нет, на том же документе, то ищи те поля, значения которых на имени пользователя завязаны…

Цитата
Сообщение от abbatik

Ошибка очевидно вылетает либо при сохранении документа, либо на uidoc.RefreshHideFormulas

что тут очевидно-то, если есть варианты? ;) ты сядь там с юзером и пусть он тебе наклацает ошибку…

зы: а что за продукт? массовый или самопал? интересно :(



0



1 / 1 / 0

Регистрация: 04.08.2006

Сообщений: 2,950

05.04.2009, 15:48

3

abbatik
What is the maximum size of text fields? 32KB (storage); 32KB displayed in a views column

и ненужным полям руками проставлять IsSummary = false



0



0 / 0 / 0

Регистрация: 20.10.2008

Сообщений: 271

05.04.2009, 15:57

4

Цитата
Сообщение от Akupaka

а в самом сообщении нету имени поля?.. тогда только методом вырезания/возвращения полей…

Нет, предупреждение лотусовое родное.

Цитата
Сообщение от Akupaka

если ошибка вылетает у кого-то, а у тебя — нет, на том же документе, то ищи те поля, значения которых на имени пользователя завязаны…

Да там сцепка большого кол-ва баз, поэтому не факт что даже с пользователями связано, возможно в содержании справочников, например..

Цитата
Сообщение от Akupaka

что тут очевидно-то, если есть варианты? ;) ты сядь там с юзером и пусть он тебе наклацает ошибку…

Ну если учесть, что юзер у заказчика и очень далеко, то это не вариант.

Цитата
Сообщение от Akupaka

зы: а что за продукт? массовый или самопал? интересно :(

Лет 10 назад это был БОСС-Референт ;) Сейчас это мутант-гибрид ;)

Цитата
Сообщение от Morpheus

abbatik
What is the maximum size of text fields? 32KB (storage); 32KB displayed in a views column

и ненужным полям руками проставлять IsSummary = false

Спасибо за совет, но проблема в том, что желательно точно знать какое поле/я выдают это предупреждение.



0



0 / 0 / 0

Регистрация: 04.10.2007

Сообщений: 2,977

05.04.2009, 16:34

5

Цитата
Сообщение от abbatik

Ну если учесть, что юзер у заказчика и очень далеко, то это не вариант

ну, если заказчик уведомляет об ошибке, значит он подписал договор на поддержку, если есть договор на поддержку, значит ошибка должна быть описана заказчиком вплоть до действий, которые он выполняет…
что делает заказчик? на какой базе ошибка? какое (предполагаемое) действие предшествует ошибке?

Цитата
Сообщение от abbatik

желательно точно знать какое поле/я выдают это предупреждение

Морфеюс, ты просто обязан сказать человеку в каких полях эта ошибка! :(



0



0 / 0 / 0

Регистрация: 20.10.2008

Сообщений: 271

05.04.2009, 16:43

6

Цитата
Сообщение от Akupaka

ну, если заказчик уведомляет об ошибке, значит он подписал договор на поддержку, если есть договор на поддержку, значит ошибка должна быть описана заказчиком вплоть до действий, которые он выполняет…
что делает заказчик? на какой базе ошибка? какое (предполагаемое) действие предшествует ошибке?

Ошибка возникает при сохранении документа, либо после нажатия кнопки, в которой присутствует функция Call uidoc.RefreshHideFormulas

Цитата
Сообщение от Akupaka

Морфеюс, ты просто обязан сказать человеку в каких полях эта ошибка! ;)

Я понимаю, что у вас хорошее настроение, но если сказать по существу нечего, то прошу не флудить, ибо это мешает отслеживанию ответов :(
Спасибо.



0



0 / 0 / 0

Регистрация: 04.10.2007

Сообщений: 2,977

05.04.2009, 16:57

7

Цитата
Сообщение от abbatik

Ошибка возникает при сохранении документа, либо после нажатия кнопки, в которой присутствует функция Call uidoc.RefreshHideFormulas

ты не обижайся, но это не описание того, что делает пользователь и так тебе не поможет никто!
в Боссе ну просто дофига действий, которые сохраняют документ, остальные его рефрешат :(
если ты хочешь помощи, а не флуда, то потрудись выяснить что предшествует ошибке! я попросил хотя бы название базы, что юзер тыкает, а ты даже этого не хочешь сказать! ну как тут не пофлудить ;)

вот тебе навскидку, в Боссе много проблем связанных с действиеми работающими с ознакомлением с документом. там заполняется туча полей именами и унидами.



0



0 / 0 / 1

Регистрация: 30.06.2007

Сообщений: 2,153

05.04.2009, 17:01

8

Ну а если экспортнуть документ, видно, какое поле потенциально может переполниться (т.е. содержит много данных)?



0



0 / 0 / 0

Регистрация: 04.10.2007

Сообщений: 2,977

05.04.2009, 17:10

9

Цитата
Сообщение от Omh

Ну а если экспортнуть документ, видно, какое поле потенциально может переполниться (т.е. содержит много данных)?

я могу погадать по этой гуще, но ничего не обещаю ))
хотя не факт, поля могут заполняться уже после открытия, а сохранить с переполнением не даст…



0



0 / 0 / 0

Регистрация: 20.10.2008

Сообщений: 271

05.04.2009, 17:16

10

Цитата
Сообщение от Akupaka

ты не обижайся, но это не описание того, что делает пользователь и так тебе не поможет никто!
в Боссе ну просто дофига действий, которые сохраняют документ, остальные его рефрешат ;)
если ты хочешь помощи, а не флуда, то потрудись выяснить что предшествует ошибке! я попросил хотя бы название базы, что юзер тыкает, а ты даже этого не хочешь сказать! ну как тут не пофлудить ;)

вот тебе навскидку, в Боссе много проблем связанных с действиеми работающими с ознакомлением с документом. там заполняется туча полей именами и унидами.

Да я не обижаюсь Я вообще не обидчевый
А по поводу действий, я же не спрашивал где искать, а спросил возможно ли вычислить поле, из-за которого эта ошибка возникает. Ошибка Лотусовая и я думаю всем более-менее понимащим разработчикам понятно, почему она возникает
Проблема явно в формуле либо вычисляемого поля, либо диалог бокса..

Цитата
Сообщение от Omh

Ну а если экспортнуть документ, видно, какое поле потенциально может переполниться (т.е. содержит много данных)?

Нет, не видно… Если было бы все так просто…

Цитата
Сообщение от Akupaka

я могу погадать по этой гуще, но ничего не обещаю ))
хотя не факт, поля могут заполняться уже после открытия, а сохранить с переполнением не даст…

Сохранять в какой-то момент дает…

Кстати лотусня по идеи должна резать поле (думал так и вычислить где данные явно прерванные), но тут как-то все очень странно…
Люди до меня тут работающие, вообще рассказывают страшные истории про то, что документ даже с переполненным полем сохранялся и потом его невозможно было открыть, но я это не видел…



0



0 / 0 / 0

Регистрация: 04.10.2007

Сообщений: 2,977

05.04.2009, 17:24

11

Цитата
Сообщение от abbatik

возможно ли вычислить поле, из-за которого эта ошибка возникает

возможно, если:
— выяснить у заказчика, что он сделал, как добился ошибки
— самому протестировать весь функционал

если прорабатывать второй вариант, то тебе нужно около 6-7 тестеров на полторы-две недели, и это будет только поверхностно, и врядли получите ошибку переполенения, т.к. нужно забить кучу данных в систему, чтобы съимитировать переполнение…

если первый, то обойдется где-то одним открытием того же документа тем же сотрудником

зы: я уже говорил, обрати внимание на поля, что сожержат инфу о пользователях, особенно связанные с ознакомлением!
зы2: я не понял, вам хоть какую-то инфу от заказчика дали?!
зы3: в какой компании ты работаешь?

Цитата
Сообщение от abbatik

Ошибка Лотусовая и я думаю всем более-менее понимащим разработчикам понятно, почему она возникает smile.gif
Проблема явно в формуле либо вычисляемого поля, либо диалог бокса..

думаю, что заказчика такой ответ не удовлетворит

Цитата
Сообщение от abbatik

Люди до меня тут работающие, вообще рассказывают страшные истории про то, что документ даже с переполненным полем сохранялся и потом его невозможно было открыть, но я это не видел…

бредово звучит, при мне разработчик получал ошибку при вызове nd.Save(), при переполнении…



0



0 / 0 / 0

Регистрация: 01.04.2007

Сообщений: 304

05.04.2009, 17:35

12

если нужно найти поле на которое ругается что оно слишком большое то почемубы не зделать агента который переберает все поля и смотрит их размер notesItem.ValueLength и если он больше 32кв то выводит меседжбокс или ещё чтото.
на худой конец можно в форму вмаунтить шоб док из UI выдернуть без напрягав.



0



0 / 0 / 0

Регистрация: 04.08.2008

Сообщений: 408

05.04.2009, 17:45

13

Вопрос из книжки со сказками… На удаленном рабочем месте в непонятной базе что-то не работает…

Если у тебя база таже а домина другая, то может все легко работать. Скажем у клиента стоит 5ка, а ты тестишь на семерке… Конкретнее надо.

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



0



Krjymytyk

05.04.2009, 17:52

14

Эта ошибка обычно возникает при попытке сохранения текстового мультивалуе поля. По дизайну отлавливаем такие поля, там может быть что-нить похожее на слив из DBColumn.
Как вариант проверки, ихо, на боевой базе построить вид с такими найденными полями с выводом их размера. Если статистика большая то можно вычислить потенциальное опасное поле.
ЗЫ: Тут другое эта беда довольно хреново лечится.

0 / 0 / 0

Регистрация: 04.10.2007

Сообщений: 2,977

05.04.2009, 18:15

15

Цитата
Сообщение от xalet

Вопрос из книжки со сказками…

собсно, совет тоже ))

Цитата
Сообщение от xalet

Самый простой способ это чтобы клиент показал, что и где и как у него ломается…

«мы поедем, мы помчимся, на оленях…»

Цитата
Сообщение от xalet

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

мечтатель… в лучшем случае пользователь может сказать, что он нажал!

Цитата
Сообщение от Krjemilek

Эта ошибка обычно возникает при попытке сохранения текстового мультивалуе поля

случаи при которых возникает ошибка были описаны самим автором, одно из простых и логичных решений подсказал Морфеюс.
вопрос не «почему ошибка?», а «какое поле переполнилось?»… но, спасибо за участие

Цитата
Сообщение от Krjemilek

Как вариант проверки, ихо, на боевой базе построить вид

нет доступа к боевой базе…

abbatik, смари какую я тебе отмазку нашел
http://www.kadastr.ru/sed/foru… al/363608/

есть новости по ошибке?



0



0 / 0 / 0

Регистрация: 20.10.2008

Сообщений: 271

05.04.2009, 18:57

16

Угу.. ссылку на кадастр видел, поржал

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

Проблема осложняется, что у заказчика огромная распределенная сеть, причем не только в России и ошибка возникает только в одном из регионов, доступа к которому у меня соответсвенно нет.



0



Krjymytyk

06.04.2009, 10:48

17

Как вариант сделать в полях проверку размера полученных списков и если более 32 то слать письмо разработчику письмо типа «Беда в поле XXX». Это если дадут боевой шаблон на время подправить.

0 / 0 / 0

Регистрация: 04.10.2007

Сообщений: 2,977

06.04.2009, 11:03

18

я вам еще одну умную вещь скажу…
abbatik, тебе это пригодится в контексте текущей ошибки, когда будете исправлять, то задумайтесь над этим тоже…
так вот… объем информации в summary-полях всего документа не может превышать 64КБ (в реале может колебаться в районе 58-62, т.е. часть тратится на служебные данные), соотв. сохранить документ в котором есть поля с большим кол-вом инфы, не превышающем 32КБ в каждом, но в сумме превышающим 64КБ, тоже НЕ получится

Цитата
Сообщение от Krjemilek

слать письмо разработчику

как дети малые а смс не надо слать, что было отправлено письмо? ;)
что за фантазии? а потом получить иск потому что продукт занимается почтовой рассылкой ;)

если подобное делать, то уже не так, а цивильно, как остальные делают — сбор данных, в княпкой, которая формирует отчет в службу поддержки…



0



Krjymytyk

06.04.2009, 12:52

19

Цитата
Сообщение от Akupaka

как дети малые а смс не надо слать, что было отправлено письмо? ;)
что за фантазии? а потом получить иск потому что продукт занимается почтовой рассылкой ;)

Я имел ввиду экстренное нахождение ошибки из серии «бухгалтерия стоит, начальник IT-отдела мылит веревку» — тут не до реверансов. Еще более действенно сделать звонок клиенту пусть под Вашим чутким руководством при возникновении ошибки посмотрит размеры проблемных айтемов в свойствах документа (до сохранения разумеется ну и если не документ нью), накрайняк нарисовать пошаговый гомикс «Ваши действия при возниконовении ошибки >32».

To Akupaka: Спасибо за ликбез про 64К. Проверил. Really.

0 / 0 / 0

Регистрация: 20.10.2008

Сообщений: 271

06.04.2009, 13:07

20

Цитата
Сообщение от Krjemilek

Как вариант сделать в полях проверку размера полученных списков и если более 32 то слать письмо разработчику письмо типа «Беда в поле XXX». Это если дадут боевой шаблон на время подправить.

Во-первых вряд ли дадут, во вторых куда прописывать проверку? Если поля вычисляеиые особенно

Цитата
Сообщение от Akupaka

я вам еще одну умную вещь скажу…
abbatik, тебе это пригодится в контексте текущей ошибки, когда будете исправлять, то задумайтесь над этим тоже…
так вот… объем информации в summary-полях всего документа не может превышать 64КБ (в реале может колебаться в районе 58-62, т.е. часть тратится на служебные данные), соотв. сохранить документ в котором есть поля с большим кол-вом инфы, не превышающем 32КБ в каждом, но в сумме превышающим 64КБ, тоже НЕ получится

как дети малые ;) а смс не надо слать, что было отправлено письмо? ;)
что за фантазии? а потом получить иск потому что продукт занимается почтовой рассылкой ;)

если подобное делать, то уже не так, а цивильно, как остальные делают — сбор данных, в княпкой, которая формирует отчет в службу поддержки…

Все верно, только все не так страшно ;)
Проблема еще возможна с полями типа диалог бокс, где просто переполняется кол-во справочной информации. Это вовсе не значит, что она вся будет храниться в одном из полей.

Цитата
Сообщение от Krjemilek

Я имел ввиду экстренное нахождение ошибки из серии «бухгалтерия стоит, начальник IT-отдела мылит веревку» — тут не до реверансов. Еще более действенно сделать звонок клиенту пусть под Вашим чутким руководством при возникновении ошибки посмотрит размеры проблемных айтемов в свойствах документа (до сохранения разумеется ну и если не документ нью), накрайняк нарисовать пошаговый гомикс «Ваши действия при возниконовении ошибки >32».

To Akupaka: Спасибо за ликбез про 64К. Проверил. Really.

Я тебя понял, спасибо.

Да я вроде сузил круг полей и терзаю тамошнего админа вопросами, а точнее написал агент, который проверяет интересующие меня виды на кол-во информации (в байтах) в интересующих меня столбцах. Так что, надеюсь, решение не за горами.

Всем спасибо!



0



  • #41

вот прям сейчас вылетело из головы… 32к на документ тоже распространяется в совокупности всех полей или там свое ограничение?

64k — сумма всех summary в доке и одновременно не более 32k для каждого поле summary

  • #42

Регистрирую следующий контакт — клиент позвонил по телефону: «А как там моё письмо?», нахожу историю из тех же ста контактов + предыдущий с письмом.

Тогда я тоже чот не понимаю :)
«Регистрирую следующий контакт«(с), «…нахожу историю из тех же ста контактов + предыдущий с письмом»(с) — значит «следующий контакт» — ответ на предыдущий. Так?
Значит стандартная иерархия.

С лицензиями у нас вроде всё в порядке,

какая-то проблема с эклипсовым клиентом.

Значит для юзанья xpages (в браузере, можно эмбедднутом на форму или в Ж-фрейме) достаточно nhttp.exe c сопутствующими DLL и конфигом, запускать его превентивно (nhttp.exe preview на открытии базы, если уже запущен ничего страшного — будет просто игнор) и можно юзать. Правда, как в терминале будет фунциклировать не знаю.

  • #43

Многие ко многим с xpage и даже с нативным клиентом можно делать с третьей — прокси базой. архитектура которой зависит от взаимосвязей событий. т.е. первичный ключ — ид клиента. вторичный — ид событий. все ключи — многозначные. в пределе кол- во записей == кол во клиентов. в 32к можно дофига ид событий уложить. и основные доки не модифицируются. это кста и с обычным sql практикуют
+ upd
и да — обещают скоро 16 мег суммари полей )

Последнее редактирование модератором: 30.06.2015

garrick


  • #44

Тогда я тоже чот не понимаю :)
«Регистрирую следующий контакт«(с), «…нахожу историю из тех же ста контактов + предыдущий с письмом»(с) — значит «следующий контакт» — ответ на предыдущий. Так?

Нет, все контакты только входящие, никаких ответов нет. Никакой иерархии. Поясняю. Большое кол-во клиентов проявляют сильное нетерпение и шлют запросы по одной и той же теме каждый день. Понятно, что на подготовку ответа нужно какое-то время. Т.к. обработкой запросов могут заниматься разные сотрудники, они будут готовить один и тот же ответ одновременно. В результате по одному вопросу, по десяти запросам будет подготовлено десять ответов. При такой работе эффективность этой службы ниже плинтуса. Одна и та же работа дублируется разными сотрудниками по несколько раз. Следовательно, при получении запроса, сотрудник, занимающийся его обработкой, должен понимать — это уникальный запрос или «дубль», соответственно, принять решение — нужно ли подготовить ответ на этот запрос или подготовить один обобщающий ответ сразу на несколько «дублей». Либо «скинуть» данный запрос сразу в архив, т.к. уже ведётся работа по подготовке ответа по аналогичному предыдущему запросу либо ответ уже был дан, например вчера. Из таблички «история» он видит состояние предыдущих запросов.

З.Ы. База очень большая, с очень богатым функционалом, всё сделано в классическом клиенте Lotus Notes, что-либо переделывать в этой базе под XPage не вариант.

savl


  • #45

у них какая-то проблема с эклипсовым клиентом

Памяти много жрет клиент полный, поэтому и basic, календари не глючат и поддержка JavaUI отсутствует.

Показать в embedded view документы из разных баз не получится. Собрать для этого их обратно все в одну, а нафига мы её тогда на архивы резали? К тому же, надо учитывать, что один «архивный» документ может быть «историей» для нескольких новых контактов. Т.е. получается связь многие-ко-многим. Есть какие-нибудь идеи?

Так.. есть вариант, с вьюхой, но весьма поганый.
Делаем базу, да, еще одну базу.
В ней документы-ссылки.
В документ пишем: UNID-ы контактов, UNID -запроса, путь к базе где лежит запрос, тему запрос.
Один запрос — одна ссылка.
При открытии такой ссылки открывать запрос.
Да, документов в базе будет много, но они мелкие и меняться сильно не будут, только добавляться новые.
Архивы запросов можно так и оставлять в разных базах, путь к базе мы же прописали в ссылку.
Можно делать такую базу на букву алфавита, первая буква фамили контакта, тогда количество документов уменьшится, но будет больше отдельных баз. Тогда еще в сам документ контакта надо будет прописывать документ базы с ссылками на запросы (или механизм определения базы создавать)
Ну и при архивировании запросов надо будет все ссылки пересчитывать.
Проблема с одним запросом на разных клиентов решается созданием еще одной ссылки, но уже для другого контакта.
Идея ясна или слишком сумбурно описал?​

  • #46

Нет, все контакты только входящие, никаких ответов нет. Никакой иерархии. Поясняю. Большое кол-во клиентов проявляют сильное нетерпение и шлют запросы по одной и той же теме каждый день. Понятно, что на подготовку ответа нужно какое-то время. Т.к. обработкой запросов могут заниматься разные сотрудники, они будут готовить один и тот же ответ одновременно. В результате по одному вопросу, по десяти запросам будет подготовлено десять ответов. При такой работе эффективность этой службы ниже плинтуса. Одна и та же работа дублируется разными сотрудниками по несколько раз. Следовательно, при получении запроса, сотрудник, занимающийся его обработкой, должен понимать — это уникальный запрос или «дубль», соответственно, принять решение — нужно ли подготовить ответ на этот запрос или подготовить один обобщающий ответ сразу на несколько «дублей». Либо «скинуть» данный запрос сразу в архив, т.к. уже ведётся работа по подготовке ответа по аналогичному предыдущему запросу либо ответ уже был дан, например вчера. Из таблички «история» он видит состояние предыдущих запросов.

З.Ы. База очень большая, с очень богатым функционалом, всё сделано в классическом клиенте Lotus Notes, что-либо переделывать в этой базе под XPage не вариант.

Опять двадцать пять.
1 Если документ (обработка запроса) предполагает реакцию на предыдущие аналогичные документы, значит иерархия есть (в простейшем случае — временная).
2 Всё таки ведётся обработка актуальных запросов, а они в ОДНОЙ рабочей базе. Архив, кагбэ, побоку — для оперативной работы он не актуален. Значит для контроля «истории»достаточно обычной работы с вью текущей базы.
3 Каким образом сотрудник выходит на нужный список «истории запросов»? Ведь это не одна глобальная таблица. Исходя из контекста?

Тогда напрашивается следующий механизм:
По контексту запроса, автоматом, во время ввода инфы, (см. LiveSearch напр. или что-то похожее) отбираются доки (в оперативной базе и, может быть в архиве, для контроля. Отдельно) и показываются в 2 фолдерах в иерархии респонзов.
Каждый новый сохранённый запрос является родителем (если он самый первый) или делается респонзом к родителю или любому записанному запросу в самой нижней ступени иерархии найденных и связанных по смыслу доков.

Если так интересно, расскажу как показать в обычной вьюшке (фолдере) доки в иерархии «ответответ-на-ответ», БЕЗ парента, для реализации предложенного.

  • #47

Щас придет

лесник

ToxaRat и покрошит в капусту эти архитектурные выверты ))))

lmike

lmike

нет, пердело совершенство


  • #48

Если так интересно, расскажу как показать в обычной вьюшке (фолдере) доки в иерархии «ответответ-на-ответ», БЕЗ парента, для реализации предложенного.

ну это еще на интертрасте рассматривали, когда рефы в список генеряться…

  • #49

ну это еще на интертрасте рассматривали, когда рефы в список генеряться…

К сожалению,

списка

рефов АКА один ко многим в рамках одной вьюшки нет(

proteam


  • #50

Примерно такая же проблема как и у автора темы, есть древнейшая база, с огромным количеством полей. И вот среди них нашлись 3 summary=true поля, в которых хранится инфа следующего типа: SummaryField1 — порядковый номер, SummraryField2 — текст (объемная инфа хранится), SummaryField3 — дата добавления. И все это еще отображается в поле с настройкой ComputedForDisplay. Есть функционал которые в эти поля добавляет/редактирует/удаляет инфу. Все было хорошо, пока поле SummaryField2 не переполнилось. Думаю над решением. Хотел добавить ритч текст поле, но тут проблемка, как программно туда смигрировать значения из этих полей чтобы визуально это было видно? Делаю что то типо такого:

Код:

On Error Goto eh
Dim ws As New NotesUIWorkspace
Dim richTextItem As NotesRichTextItem
Set richTextItem = ws.CurrentDocument.Document.GetFirstItem("Resol")
If richTextItem Is Nothing Then 
Set richTextItem = ws.CurrentDocument.Document.CreateRichTextItem("Resol")
End If
Call richTextItem.AppendText(ws.CurrentDocument.Document.Summary1(0) + " - " + ws.CurrentDocument.Document.Summary2(0))
Call richTextItem.Update()
Goto ex
eh:
Msgbox Error & " on line " & Erl
Resume ex
ex:

Прошу не обращать внимание на название полей и что записываю только 0 элемент из поля. Как я понял, ритч текст не обновляется пока документ открыт. Вот как сделать, чтобы пользователь нажал на кнопку, и инфа оказалась в этом поле не переоткрывая документ?

  • #51

в которых хранится инфа следующего типа: SummaryField1 — порядковый номер, SummraryField2 — текст (объемная инфа хранится), SummaryField3 — дата добавления.

а зачем именно в UI мигрировать?
В бакэнде или в крайнем случае на QueryOpen формы.
Если SummaryFieldNN — NN немного, то можно все слить в РТ таблицу из 3-х колонок…
И программно можно будет обращатся к данным, соотв образом модифицировав функционал.

Eugen


  • #52

Добрый день.

Столкнулся с похожей проблемой: сумма summary полей вылезает за 64к. База древняя, классический веб. У 99% полей стоит флаг «Is Summary». Что-то не догоняю, как его снять правильно…
Вообще где он первоначально выставляется по дефолту? В свойствах поля в дизайнере не нашел такой галки.
Как его теперь правильно снять для всех доков сразу? Только программно, т.е. перебрать все и принудительно конкретному Item’у выставить Issummary = False и сохранить док? Честно говоря, не хотелось, т.к. доков таких под пол мульта.

oshmianski


  • #53

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

Последнее редактирование: 10.07.2018

lmike

lmike

нет, пердело совершенство


  • #54

Вообще где он первоначально выставляется по дефолту? В свойствах поля в дизайнере не нашел такой галки.

нигде

Как его теперь правильно снять для всех доков сразу? Только программно, т.е. перебрать все и принудительно конкретному Item’у выставить Issummary = False и сохранить док? Честно говоря, не хотелось, т.к. доков таких под пол мульта.

да, полмульта — фигня ;)

Eugen


  • #55

Неизвестно сколько таких представлений, где оно может использоваться. В базе помойка, до которой только сейчас руки дошли. Вообще с ошибкой столкнулся первоначально через утилиту scanEZ и только благодаря ей удалось локализовать проблему.

lmike

lmike

нет, пердело совершенство


  • #56

Неизвестно сколько таких представлений, где оно может использоваться.

тогда у вас реальная проблема, но в любом раскладе — 32к в колонках вьюшки, «да за такое убивать надо» :)

Eugen


  • #57

да, полмульта — фигня ;)

погорячился я с полмульта… почти полтора мульта доков и под 40 гигов веса. Одних индексов гигов 10 наверное.

lmike

lmike

нет, пердело совершенство


  • #58

погорячился я с полмульта… почти полтора мульта доков и под 40 гигов веса. Одних индексов гигов 10 наверное.

индексы, «обычно» %;70

Eugen


  • #59

Абсолютно согласен, но что имеем, то имеем, так сказать. Т.е. все таки без массового апдейта доков и ревизии вьюшек никак?
И все таки, все поля по-умолчанию summary, или это как-то рулится?

lmike

lmike

нет, пердело совершенство


  • #60

И все таки, все поля по-умолчанию summary, или это как-то рулится?

да, никак не рулится, и КМК еще и при comouteWithForm вернет обратно
вернее рулится — если создавать изначально вне формы (а на форме таких не создавать)
еще нет у РТ этого флага

У меня есть некоторые документы. Если я пытаюсь открыть документ, он показывает ошибку, например, «поле слишком велико 32 КБ или столбец представления и формулы выбора слишком велики».

Всякий раз, когда я пытаюсь удалить документ, я получаю ту же ошибку. Я не могу удалить.

Хорошо, мы можем попытаться получить документ через серверную часть, но я не могу получить дескриптор документа.

Что бы я ни пытался найти, количество собранных документов равно 0.

Важно: — Я использую Notes 6.5.2.

Заранее спасибо,

5 ответов

Вы можете создать новую реплику базы данных, поврежденные документы не будут скопированы. Также вы можете попробовать использовать инструмент ScanEZ от Ytria.


2

pstr
4 Окт 2012 в 14:08

«Хорошо, мы можем попытаться получить документ через серверную часть, но я не могу получить дескриптор документа».

Не могли бы вы опубликовать код, который вы используете? Я не понимаю, почему следующий код не будет работать:

Dim session As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim doc As NotesDocument
Dim deleteDoc List as NotesDocument

Set db = session.Currentdatabase
'*** Get collection of selected documents
Set col = db.UnprocessedDocuments
'*** Loop through selected documents
Set doc = col.GetFirstDocument
Do Until doc Is Nothing
    '*** Add document to list to delete later
    Set deleteDoc(doc.UniversalID) = doc
    Set doc = col.GetNextDocument(doc)
Loop

'*** Delete all documents in list from database
ForAll d in deleteDoc
    Call d.Remove(True)
End ForAll


1

Karl-Henry Martinsson
4 Окт 2012 в 19:35

Возможно, вы захотите изменить поле, которое вызывает у вас головную боль, на форматированный текст, поскольку ограничение для поля с форматированным текстом немного больше, чем для обычного текстового поля. Предел для файлов с форматированным текстом ограничен только доступным дисковым пространством до 1 ГБ.


1

tikarasha
9 Окт 2012 в 07:04

Вы пытались просто удалить проблемное поле в поврежденном документе, а затем удалить сам документ? Вы можете попробовать сделать следующее:

1- создайте набор агентов для работы с выбранными документами по следующей формуле:

FIELD corruptfield := @DeleteField;

2 — выбрать проблемный документ в представлении и запустить агент

3 — если это не выдает ошибку, попробуйте вручную удалить документ из представления.


0

Ed Schembor
20 Фев 2013 в 06:43

Вот что у меня сработало:

1/ Получите идентификатор заметки документа с помощью DocViewer

Может быть много других способов получить NoteID, но он появился только тогда, когда я попытался отправить документ с помощью DocViewer, хорошо известного бесплатного инструмента
https://www.openntf.org/main .nsf/project.xsp?r=project/Document%20Viewer/summary

2/Удалить документ с помощью Notes C API

Я последовал совету pstr и быстро нашел этот скрипт. http://www.nsftools.com/tips/ApiStublessDelete.lss
Просто направьте его на хорошую базу данных с идентификатором Note, и он сделает свое дело !!

Я попытался изменить сценарий, чтобы не удалять заглушку удаления (я хотел, чтобы удаление реплицировалось в моем кластере и локальной реплике). Но вы возвращаетесь к ошибке 32k! Таким образом, вы должны применить удаление к каждой реплике (или, конечно, воссоздать реплики).


0

Fabrice Papirnyk
31 Мар 2016 в 00:02

When I try to set my signature in IBM Notes 9 on Mac (More > Preferences > Mail > Signature), I’m getting this error message:

Notes error: Field is too large (32K) or View's column & selection formulas are too large

enter image description here

I’ve tried setting all three signature fields (rich text, plain text, html file) to blank but the error still happens.

Is there a different field I need to set to blank? I’m not seeing any other long fields in any of the tabs in this preferences dialog.

When I set a signature and ignore the error, the signature persists until I restart Notes.

None of the Google hits for this error mention setting a signature or running on Mac. I have just migrated from Notes 9 on Windows to Notes 9 on Mac.

Когда я пытаюсь установить свою подпись в IBM Notes 9 на Mac (More > Preferences > Mail > Signature), я получаю следующее сообщение об ошибке:

Notes error: Field is too large (32K) or View's column & selection formulas are too large

введите описание здесь

Я попытался установить все три поля подписи (форматированный текст, простой текст, HTML-файл) пустым, но ошибка все еще происходит.

Есть ли другое поле, которое мне нужно установить пустым? Я не вижу никаких других длинных полей ни на одной из вкладок в этом диалоговом окне настроек.

Когда я устанавливаю подпись и игнорирую ошибку, подпись сохраняется до перезапуска Notes.

Ни одно из обращений Google к этой ошибке не упоминает установку подписи или запуск на Mac. Я только что перешел с Notes 9 в Windows на Notes 9 на Mac.

2014-01-07 15:10

Понравилась статья? Поделить с друзьями:
  • Поле серия содержит ошибку ввода
  • Поле основная страна не заполнено ут 11 ошибка
  • Поларис спортсмен 800 ошибка 41
  • Поларис сплит система ошибка е5
  • Поймал на ошибке мем