lotus-dominodomino-designer-eclipsehcl-notesibm-domino

How to set the template version on a Notes (Lotus/IBM/HCL) application master template


I am updating an existing Notes application with some minor changes. When I developed the original application some time ago (>10 years), I originally built a master template and assigned a version to the master template. The standard release practise in the environment is to build in a dev environment, make a template from dev which is then used to refresh the databases in the test environment and then ultimately used to refresh the production environment databases also.

Master Template Version

I don't recall how I was able to set the version text on the master template, nor have I been able to find any information on how this can be done. I recall the process with more of a 'hack' than something that was available as a standard developer feature.

Is anyone familiar with the process to set/update the template version on a master template?


Solution

  • I have an agent with the following code to set the template version. I run the agent manually from the template before refreshing the design of a database based on the template.

    This wasn't originally my code. I found it somewhere on the internet many years ago, and have made only minor changes.

    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim nc As NotesNoteCollection
    Dim doc As NotesDocument
    Dim iCount%,sNoteID$,tmp$
    
    Const ITEM_BUILD = "$TemplateBuild"
    Const ITEM_BUILD_NAME = "$TemplateBuildName"
    Const ITEM_BUILD_DATE = "$TemplateBuildDate"
    
    Set db = session.CurrentDatabase
    Set nc = db.CreateNoteCollection(False)
    
    If Not nc Is Nothing Then
        nc.SelectSharedFields = True
        Call nc.BuildCollection
        
        sNoteID = nc.GetFirstNoteId
        For iCount = 1 To nc.Count
            Set doc = db.GetDocumentByID(sNoteID)
            If Not doc Is Nothing Then
                If doc.HasItem(ITEM_BUILD) Then
                    tmp=Inputbox("Enter the template name...", _
                    "Template Name", doc.GetItemValue(ITEM_BUILD_NAME)(0))
                    If tmp="" Then Exit Sub
                    Call doc.ReplaceItemValue(ITEM_BUILD_NAME, tmp)
                    
                    tmp=Inputbox("Enter the version number...", _
                    "Template Version", doc.GetItemValue(ITEM_BUILD)(0))
                    If tmp="" Then Exit Sub
                    Call doc.ReplaceItemValue(ITEM_BUILD, tmp)
                    
                    tmp=Inputbox("Enter the version date...", _
                    "Template Date", doc.GetItemValue(ITEM_BUILD_DATE)(0))
                    If tmp="" Then Exit Sub
                    If Isdate(tmp) Then Call doc.ReplaceItemValue(ITEM_BUILD_DATE, Cdat(tmp))
                    Call doc.Save(True, False)
                    Exit For
                End If
            End If
            sNoteID = nc.GetNextNoteID(sNoteID)
        Next
    End If