Domino 2.0 Rich Internet Applications with IBM Lotus Notes/Domino
You are here: Today » Document versioning
« Document history and compare
Document management »

Document versioning

I needed versioning for my Wiki. The older versions of each WikiPage are stored in a separate database. The version number of the WikiPage is updated each time the page is saved.

The LotusScript

In the following routine, 'OVERFLOW_DB' is a constant with the path of the database to store all the versions. After copying all the items from the original document, I've added two fields containing the original database path and the original UniqueId of the document. After saving the version document, the version number of the original is updated.

Sub makeVersion(doc As notesdocument)
    On Error Goto catch
    Dim s As New notessession
    Dim db As NotesDatabase
    Dim newDoc As NotesDocument
    Set db=s.GetDatabase("", OVERFLOW_DB)
    Set newDoc=db.CreateDocument
    doc.CopyAllItems newDoc
    newDoc.ReplaceItemValue "OrigDb", doc.ParentDatabase.FilePath
    newDoc.ReplaceItemValue "OrigUnid", doc.UniversalID
    newDoc.Save True, False, True
    doc.ReplaceItemValue "version", doc.version(0)+1
    Goto finally
    Print "Error " & Err & " in line " & Erl & ": " & Error$
    Resume finally
End Sub


This was really straightforward, but storing the versions is only one part of the story. Next: displaying the history.

Star rating



To add a comment, log in or register as new user. It's free and safe.