** UPDATE -- Thanks to Daniel Nashed... Looks like the regression bug is preventing code from running which may not have run properly before. I'm not sure that's really what happened, as it did seem to run properly before, but thank you Daniel.
Meantime, I have updated the product that this "bug" crashed and am using a rich text field and saving the data out then re-importing it later. Ugly, but quick enough.
<from Daniel>
I did some checks. For text items the limit is 64K from API point of view. If you read or write a text item the maxium size is a WORD which is 16bit and that means 64K. So the maximum limit of a text list item is 64k. The purpose of setting it to non-summary ensures that you can have many text fields with a limit of 64k of each without filling up the summary buffer (which has a total limit of 64K).
So it sounds like the code is more strict for checking the error.
|
There are field size limits for summary fields in Lotus Notes. Text Lists are summary fields, as is any field but Rich Text generally. Summary fields allow you to write data to the view. You cannot include non-summary fields in a view.
Keep in mind, 64k is a valid limit --
BUT NOT FOR NON-SUMMARY fields. That's the whole point of the NotesItem.isSummary property.
It used to be -- not quite sure when this problem happened -- that you could create a field, mark it as NON-SUMMARY and lotusscript, and thus exceed the limit. Not any more. I'm exploring the simplest workaround. I can think of several which are a pain the butt.
It used to work. Now you get this error.
Here is simple code that duplicates the problem -- code can be placed in the click even of a button. I will have a workaround shortly.
' get a handle to the current document
Dim doc As notesdocument
Dim ws As New notesuiworkspace
Dim uidoc As notesuidocument
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
' create a really big array of data
Dim a As String
Dim b(7000) As String
Dim x As Integer
a = "0123456789"
For x = 0 To 7000
b(x) = a
Next
' create a new empty field
Dim field As notesitem
Set field = doc.ReplaceItemValue("field1", "")
' set the field to non-summary
field.IsSummary = False
' write the field out.
field.Values = b