Tuesday, November 11, 2008

Full Text message: Work area overflown due to many hits

Found strange error today in log database
GTR search error for "D:\Domino\data\mydatabase.ft\ftgi": Work area overflown due to many hits. Error-Number = 299: Full text error; see log for more information
The error occurs when I did NotesDatabase.FTSearch(query, 0)
query = (([Form]="AgrAddon") & ( ([AgrDate]=08.07.2005 & [AgrAddonDate]=25.06.2008 & !([AgrAddonNum]=("-" | "/")) )))
I've found that this problem happens because of this part of query: [AgrAddonNum]=("-" | "/")
Actually for some reason (I did not figure why) symbols - , ; : \ are the reasons of error in FTSearch. So I changed query a bit to avoid such situation and it worked well after all.

Wednesday, November 05, 2008

Defer index creation until first use + ENABLE_ON_DEMAND_COLLATIONS=1

In case if we would like to use "Defer index creation until first use" option in columns, we have to remember that it works only in case if Administrator set ENABLE_ON_DEMAND_COLLATIONS=1 in notes.

Thursday, October 23, 2008

Just found the test-exams for Lotus Notes R7

http://dpastov.googlepages.com/

btw, does somebody have free tests for Lotus Notes R8 ? :-)

NotesDocumentCollection.IsSorted where I can use it?

I looked on this method many times and still don't understand where/how I can use it.
I really expected that new method NotesDocumentCollection.Sort(...) would in Lotus Notes later, but it did not happen. So how can I cook it? Can anybody explain me? What I see that we really can't sort collection at all...

Sub Click(Source As Button)

Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Set db = session.CurrentDatabase
Set collection = db.FTSearch( "white wine", 0 )
If collection.IsSorted Then
Messagebox( "This collection is sorted" )
Else
Messagebox( "This collection is unsorted" )
End If
End Sub

Wednesday, October 22, 2008

edit attachment via LS

I don't know good solution for this task, so it would be cool if somebody share better way then this one.
So if you want to emulate editing of attachments via backend you can do next:
1. make edit button,.
- this button "Open attachment" should export attachment to disk and remember/save the path to the file somewhere.
Dim w As New NotesUIWorkspace
Dim s As New NotesSession
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim filename As String

Set doc = w.CurrentDocument.Document
Set rtitem = doc.GetFirstItem("Body")

If doc.HasEmbedded Then
Forall o In rtitem.EmbeddedObjects
filename = "c:\" & o.name
Call o.ExtractFile (filename)
Call doc.ReplaceItemValue("filename", filename)

Call ShellExecute(0, "Open", fileName,"", "C:\", 1)
End Forall
End If


than step #2
you should make some changes and save attachments

step #3
now we have to click on Import button, this button should remove old attachment and import new one. Something like this
Dim w As New NotesUIWorkspace
Dim s As New NotesSession
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim filename As String

Set doc = w.CurrentDocument.Document
Set rtitem = doc.GetFirstItem("Body")

If doc.HasEmbedded Then
Forall o In rtitem.EmbeddedObjects
filename = "c:\" & o.name
Call o.Remove()
Call rtitem.EmbedObject(EMBED_ATTACHMENT, "", doc.GetItemValue("filename")(0))
End Forall
End If
Call doc.ReplaceItemValue("filename", "")
Call doc.Save(True, True)

But if you read comments you will see much better solution, I should say that it is really good way to solve this task.