现在的位置: 首页 > 综合 > 正文

Document versioning

2011年01月18日 ⁄ 综合 ⁄ 共 967字 ⁄ 字号 评论关闭

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
catch:
    Print "Error " & Err & " in line " & Erl & ": " & Error$
    Resume finally
finally:
End Sub

抱歉!评论已关闭.