Problem solve Get help with specific problems with your technologies, process and projects.

Text field is unusable in the client

Under 5.0.12, it is possible to create a text field that is totally unusable in the client. For example:

Set db = session.CurrentDatabase
a = "Abcdefghijklmnopqrstuvwxyz "
For i = 1 To 7
 a = a & a & a
Print Len(a) 
' Result is 59,049-byte string
Set doc = db.CreateDocument
doc.Form = "CBT"
doc.Demo = a
Print Len(doc.Demo(0)) 
' Result is a 32000-byte string
Call doc.Save(True, False)
The form can have just one field (demo). If you try to open this document, you get "Field is too large (32 KB)" or "View's column and selection formulas are too large." You can't even do a Document Properties on this document (same error).

Obviously, this is just a demonstration record but it's just to show that it's possible to create inaccessible documents in Notes.

I guess the question is: Is there an easy solution when we encounter something like this? I guess if you always knew the name of the field, it would be possible to write LotusScript that took the text field and rewrote it as a Rich Text field, but then it still wouldn't be useful in the form and you'd have to change all of your agents to process Rich Text instead of text.

I suppose the larger question is: Why are you allowed to create invalid documents in LotusScript? R6.0.1 works about the same, except you get the error message as the document is created but it still creates it.
I will certainly suggest to the person who does the LotusScript class support that an error be raised on the assignment of a to doc.Demo. That would prevent the problem entirely.

Until we fix the class, defensive code within your own application would also prevent the issue. As for dealing with documents already created with this problem, another solution would be to split the field into multiple text fields, and having an agent go through and do the work to truncate the data out of it and create fields (names appended with 1, 2, 3, etc.) with the overflow text. If your agent just iterated through all the fields in the document, you would avoid having to do the name.

Dig Deeper on Domino Resources - Part 4

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.




  • iSeries tutorials

    Search400.com's tutorials provide in-depth information on the iSeries. Our iSeries tutorials address areas you need to know about...

  • V6R1 upgrade planning checklist

    When upgrading to V6R1, make sure your software will be supported, your programs will function and the correct PTFs have been ...

  • Connecting multiple iSeries systems through DDM

    Working with databases over multiple iSeries systems can be simple when remotely connecting logical partitions with distributed ...